Endpoints
A POST on a number you already have updates that person and answers
200; a new person answers 201. A CRM that syncs the same lead twice must
not double your list, so the number is the identity.Fields
string
required
Required on create. E.164 with or without the
+; spaces are fine. Normalised
the way the importer normalises, so +91 98765 43210 and 9876543210 are one
person.string | null
Up to 120 characters.
string | null
Lower-cased.
string | null
Your CRM’s id for this person, unique in your workspace.
GET /contacts?externalId= finds them by it; the same id on a second person is a
409.string[]
Up to 20, normalised the way the console normalises them: lower case, spaces
to hyphens. Replaces the list.
string | null
Which language to write to them in — one the console offers — or
null.string | null
Free text, up to 2,000 characters.
object
{ "status": "granted" | "withdrawn" | "unknown", "source": "…" }.source is required for granted and withdrawn — where they agreed or
refused, in a sentence. It is recorded with the time, because “where did they
consent” is what a regulator asks and “the CRM said so” is not an answer.
Sending a contact is not consent; only granted with a source is.A contact marked withdrawn is never rung, messaged or included in a
campaign, whichever channel they said it on.Responses
object
The contact.
201 for a new one, 200 for one the POST updated.object
A field that does not follow the rules above.
object
Not one of your contacts.
object
Another contact already has that
externalId (or, on a PATCH, that phone).Related
- Place a call — a call to a number that is not yet
a contact creates one, with the
nameandsourceyou send. - Report an event — also creates the contact if needed, and can enrol them in a sequence.