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
emailfull_namecreated_afterupdated_aftersort_by=created_at|updated_at|first_name|last_name|emailsort_direction=asc|descinclude=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.