Create a contact
POST /api/contacts
Create a contact manually. oHallo auto-creates contacts from inbound messages, but you can also create them via the API — for example, when importing from an external CRM.
Authorizations
Section titled “Authorizations ”Request Body
Section titled “Request Body ”object
The workspace to create the contact in.
Example
a1b2c3d4-e5f6-7890-abcd-ef1234567890Full name of the contact.
Example
Henrik LarsenEmail address of the contact.
Example
henrik@example.dkResponses
Section titled “ Responses ”The contact was created.
A contact represents an individual person who has communicated with your organization. Contacts are automatically created when a new sender is detected, and enriched over time with additional information from conversations and account resolution.
object
Unique identifier for the contact.
Example
ct1a2b3c-5678-9abc-def0-1234567890abThe tenant this contact belongs to.
Example
a0b1c2d3-4567-89ab-cdef-0123456789abExternal CRM identifier. Set when this contact is resolved against a CRM system via an MCP server.
Example
CRM-CONTACT-78291How the contact was identified. ‘unresolved’ means no CRM match was found yet. ‘crm_resolved’ means the contact was matched to a CRM record via an MCP server. ‘manually_resolved’ means a human agent linked the contact manually.
Example
crm_resolvedFirst name of the contact.
Example
JanLast name of the contact.
Example
MuellerPrimary email address of the contact.
Example
jan.mueller@acme-customer.dePhone number of the contact in E.164 format.
Example
+4915112345678Company name associated with this contact, derived from email domain or CRM resolution.
Example
Acme Customer GmbHTimestamp when the contact was first detected.
Example
2026-02-10T14:30:00.000ZTimestamp when the contact was last updated.
Example
2026-03-20T09:15:00.000ZValidation error. Required fields are missing or invalid.
Standard error response returned by all endpoints on failure.
object
A human-readable error message describing what went wrong.
Example
Conversation not found