Agiled Docs
Developers

Create a Contact with the API

Create CRM contacts from an external system.

Use POST /public/v1/contacts to create a CRM contact from a trusted server-side integration.

Create contacts from a backend job, migration script, or server-side integration that can store API tokens securely. Do not create contacts directly from a browser form with a public API token.

Example Request

curl "$AGILED_API_BASE_URL/public/v1/contacts" \
  -X POST \
  -H "Authorization: Bearer $AGILED_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: contact-avery-stone" \
  -d '{
    "first_name": "Avery",
    "last_name": "Stone",
    "email": "avery@example.com",
    "phone": "+1 555 0100"
  }'

List Contacts

curl "$AGILED_API_BASE_URL/public/v1/contacts?email=avery@example.com&include=accounts,assigned_user" \
  -H "Authorization: Bearer $AGILED_API_TOKEN"

Search before creating when your external system may already have sent the contact. Use a stable idempotency key based on the external contact ID, import row ID, or source-system event ID so retries do not create duplicates.

Useful Query Parameters

  • email
  • full_name
  • created_after
  • updated_after
  • sort_by=created_at|updated_at|first_name|last_name|email
  • sort_direction=asc|desc
  • include=accounts,assigned_user,assigned_users

After Creating

Open the created contact in Agiled and verify name, email, phone, owner, account relationship, and custom fields before running a large import. If workflows trigger from new contacts, test with one safe record first.

Duplicate Prevention

Use the source system's stable contact ID in the idempotency key. Also search by email before creating when the external system can send the same person through multiple jobs, forms, or events.

If your integration creates accounts and contacts together, create or resolve the account first, then attach the contact. This keeps imports from creating orphan contacts that need manual cleanup later.

Field Mapping Review

Before a large contact import, document where each source field lands in Agiled: name, email, phone, company, owner, assigned users, tags, custom fields, and communication consent if your process tracks it.

Run a sample import with contacts that include missing email, duplicate email, multiple accounts, and long names. This exposes mapping gaps before the import creates cleanup work for the sales or support team.

On this page