readyDocs Open the appOpen the app

Update and delete contacts

#Update a contact

Changes only the fields you send. Use PUT: PATCH isn’t supported. Unknown fields are ignored with a 200; ignored_fields lists them, so check the spelling against the fields below. Needs the edit_contacts permission.

Parameters

idinteger · pathRequired
The contact id.
More parameters
first_name, last_name, emailstring
tagsstring[]
An array that replaces the whole list.
Clearing and mergingA plain string, null or "" is 400 invalid_field; send [] to clear. Send tags_base (the list you started from) too, and only your changes are applied.
pipeline_stagestring
Free text. Use a stage id from List stages.
statusstring
Any text is stored: there is no list of allowed values, so check your spelling. Setting opted_out, blocked, wrong_number or deceased turns texting off (it sets dnd_sms to 1). Check before you send one.
Undoing a statusOnly blocked can be undone over the API: send {"status": "active", "dnd_sms": 0}. That works only if the contact wasn’t already opted out when it was blocked and hasn’t opted out since; otherwise it’s refused with 403 opted_out. The other three can’t be undone over the API. Changing their status later leaves texting off, and setting dnd_sms back to 0 is refused (403 opted_out). You can’t move a contact off opted_out.
dnd_smsinteger
1 opts the contact out of texts.
Opting back inYou can’t set it back to 0 on an opted-out contact (403). A STOP-locked contact (opt_out_locked) can opt back in by texting START, unless the lock is a do-not-call or GoHighLevel DND match; a START doesn’t lift other opt-outs.
custom_fieldsobject
Merged key by key. null for a key deletes it.
phonestring
Can’t be changed: create a new contact instead. The same number in another format is fine.
dnd_email, dnd_callsinteger
notesstring
Free text kept on the contact. The Notes tab doesn’t show it; to add a note your team will see, use Create a note.
scoreinteger
0 to 100. A decimal is rounded, and a number outside the range is clamped to it. A reply from the contact recalculates the score, so a value set here lasts until their next reply. A value that isn’t a number returns 400 invalid_field with field: "score".
source, company_name, timezonestring
address1, address2, city, state, postal_code, countrystring
assigned_tointeger
inbound_blockedinteger
website, date_of_birth, genderstring
auto_reply_suppressedinteger
Send 0 to resume texting a contact Ready paused for sending repeated auto-replies. It can only clear the pause: 1 is ignored.

Returns the updated Contact object in data. ignored_fields lists any field you sent that we did not recognise and did not save; it is left out when there are none.

Errors
HTTPCodeWhen
400INVALID_CONTACT_IDNot a contact id (for example a phone number).
400PHONE_NOT_EDITABLEYou sent a different phone number.
400invalid_fieldWrong type, such as non-list tags or a score that isn’t a number.
400ASSIGNEE_NOT_ON_ACCOUNTassigned_to isn’t on your account.
400CONTACT_UPDATE_FAILEDA value can’t be saved (500 if the save failed).
403opt_out_lockedRe-enabling texting on a STOP-locked contact. code is CONTACT_OPT_OUT_LOCKED; error_code is opt_out_locked.
403opted_outSame, for other opt-outs such as Do Not Disturb. code is CONTACT_OPTED_OUT; error_code is opted_out.
403CONTACT_NOT_ASSIGNEDYour key belongs to a team member who sees only their assigned contacts, and this contact is assigned to someone else.
404CONTACT_NOT_FOUNDNo contact with this id.
409CONTACT_CHANGEDThe contact opted out mid-save.
500CUSTOM_FIELD_NOT_SAVEDA custom field didn’t save. Retry.

#Delete a contact

Permanently removes the contact, its conversation history, notes, tasks and call recordings. If you add the number again, the new contact comes in opted out, because Ready keeps the opt-out on the number: see Keeping your own copy. Needs the edit_contacts permission.

Calls and recordings

The contact’s outbound dialer calls are removed too. Inbound calls, recording disclosure records and GoHighLevel dial pad calls stay, unlinked from the contact, as billing and consent records. Recordings and transcripts of every call with the contact, inbound, outbound, GoHighLevel dial pad and FaceTime, are deleted too and can’t be recovered. Export any you need first.

Parameters

idinteger · pathRequired
The contact id, not its phone number.

Returns { "success": true }.

Errors
HTTPCodeWhen
400INVALID_CONTACT_IDNot a contact id (for example a phone number).
403CONTACT_NOT_ASSIGNEDYour key belongs to a team member who sees only their assigned contacts, and this contact is assigned to someone else.
404CONTACT_NOT_FOUNDNo such contact, or already deleted.
423LITIGATION_HOLDUnder a legal hold.