Contacts

Create contacts

Creates CRM contacts in bulk, scoped to your organization. Deduplicates on email by default — both against contacts already in your CRM and within the submitted batch.

Every field on a contact is optional, but a contact needs something to be named by. When display_name is omitted it is derived from first + last name, then company, then email. A contact with none of those returns 400, and rejects the whole batch rather than writing part of it.

Deduplicated contacts are not returned. Skipped rows are counted in skipped but their IDs are absent from contact_ids. If you chain straight into list membership, existing contacts silently drop out of the flow — look them up by email instead when re-syncing a source.

Contacts without an email are always inserted, dedupe or not. A source with blank emails will duplicate on every run.

post/v1/contacts

Request

  • Base URL: https://api.automatedclientacquisition.com
  • URL: https://api.automatedclientacquisition.com/v1/contacts
  • Auth: HTTP bearer

Request body

dedupe_on_emailboolean

Skip contacts whose email already exists in the organization.

sourcestring

Attribution applied to rows without their own source.

log_activityboolean

Write a contact_created activity row per contact.

Example request

{
  "contacts": [
    {
      "display_name": "Jane Doe",
      "primary_email": "jane@acme.com"
    }
  ],
  "source": "n8n"
}

Response

Contacts processed.

successboolean
createdinteger

Contacts inserted.

skippedinteger

Contacts skipped as duplicates.

total_submittedinteger
contact_idsstring[]

IDs of created contacts only — skipped duplicates are absent.

Example response

{
  "success": true,
  "created": 1,
  "total_submitted": 1
}

Changes

No recorded changes to this operation across all 1 revision of this API.