POST …/contacts/create-with-ai
The recommended endpoint for messy or unstructured data — obituaries, scraped listings, form submissions, notes. Goliath’s AI extracts name, phone, email, and address from the text and creates or updates the contact automatically.
This endpoint is asynchronous. It enqueues the work and returns immediately. The contact may not exist yet when you receive the response.
Request
Body fields
| Field | Type | Required | Description |
|---|---|---|---|
unstructured_text | string or string[] | Yes | The raw text for AI extraction. Arrays are joined with newlines. Non-string items are dropped. |
full_name | string | No | Overrides the AI-resolved name |
phone_number | string | No | Overrides the AI-resolved phone |
contact_email | string | No | Overrides the AI-resolved email |
contact_address | string | No | Overrides the AI-resolved address |
note | string | No | Additional context passed into the AI flow |
tags | string[] | No | Applied to the contact after creation |
source | string | No | Defaults to Webhook if omitted |
contributors | string[] | No | Full names of org users to assign as contributors |
first_name and last_name are supported but deprecated on create flows. Use full_name instead.Responses
New eventDuplicate detection is based on a hash of the payload. If a duplicate is detected, the response is still
200 but eventId is omitted. No duplicate contact is created.Deprecated alias
POST …/contacts/unstructured is a deprecated alias for this endpoint. It behaves identically but should not be used in new integrations.