Create a contact. The phone is stored as country code + national number (send E.164, or national with countryCode) and identifies the person: a contact with the same number — in any format — or, without a phone, the same email, is a duplicate, handled by onDuplicate (error → 409 with its contactId, return, or update). 201 when created, 200 when an existing contact was returned or updated (created: false, duplicate: true). Fires the contact.created webhook.
Security:
- The
organisationIdin the URL must match the organisation your JWT was issued for — requests for a different organisation fail with 401. - Requires
CRM_ADMIN,ACCOUNT_OWNER, orCRM_BOTrole; other roles receive 403.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
200Duplicate returned or updated (onDuplicate: return | update)
400Bad request — missing firstName, invalid phone/email, or custom field validation failed
401Unauthorized — invalid/expired JWT or organisation ID does not match the token
403Forbidden — role not permitted
409Duplicate (onDuplicate: error) — body carries the existing contactId
429Too many requests
