Skip to content
AISARAISAR
Contacts

Contacts

Contact created

contact.created

Fires when a new contact is created. It does not fire for contacts created by a CSV import (`/v1/contact-imports`): the import deliberately sends no such webhook, triggers no automations and does not sync contacts to Bitrix24/amoCRM — to learn that contacts appeared, rely on the `contact_import.completed` realtime event or re-read the list via `GET /v1/contacts`. Note that in this event payload the contact field names are camelCase, and the email list field is spelled emailes. For a family (kids) company, `contact.*` events (webhook and company realtime channel alike) are not sent about contacts the family knows only through 18+ channels.

HTTP request

AISAR sends a signed POST request to your webhook_url:

http
POST {webhook_url}
Content-Type: application/json
X-AISAR-Signature: sha256=...

{
  "event": "contact.created",
  "event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
  "timestamp": "2026-03-26T12:00:00.000000Z",
  "company_id": 1,
  "data": {
    "contact": {
      "id": 10,
      "company_id": 1,
      "displayName": "John Doe",
      "firstName": "John",
      "lastName": "Doe",
      "secondName": null,
      "salutation": null,
      "title": null,
      "company": null,
      "status": "lead",
      "photo": null,
      "comments": null,
      "phones": [{ "phone": "+12025550187", "type": "mobile" }],
      "emailes": [{ "email": "john@example.com", "type": "work" }],
      "contactAccounts": [],
      "tags": [],
      "last_activity_at": null,
      "hidden_from_inbox_at": null,
      "hidden_from_inbox_by_user_id": null,
      "open_deals_count": 0,
      "responsible_user": null,
      "created_at": "2026-03-26T12:00:00.000000Z",
      "updated_at": "2026-03-26T12:00:00.000000Z"
    }
  }
}

The X-AISAR-Signature header carries an HMAC-SHA256 signature of the request body — use it to verify the request came from AISAR.

Example payload

json
{
  "event": "contact.created",
  "event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
  "timestamp": "2026-03-26T12:00:00.000000Z",
  "company_id": 1,
  "data": {
    "contact": {
      "id": 10,
      "company_id": 1,
      "displayName": "John Doe",
      "firstName": "John",
      "lastName": "Doe",
      "secondName": null,
      "salutation": null,
      "title": null,
      "company": null,
      "status": "lead",
      "photo": null,
      "comments": null,
      "phones": [{ "phone": "+12025550187", "type": "mobile" }],
      "emailes": [{ "email": "john@example.com", "type": "work" }],
      "contactAccounts": [],
      "tags": [],
      "last_activity_at": null,
      "hidden_from_inbox_at": null,
      "hidden_from_inbox_by_user_id": null,
      "open_deals_count": 0,
      "responsible_user": null,
      "created_at": "2026-03-26T12:00:00.000000Z",
      "updated_at": "2026-03-26T12:00:00.000000Z"
    }
  }
}

Payload fields

FieldTypeDescription
contact.idintegerInternal contact ID
contact.displayNamestring|nullContact display name
contact.firstNamestring|nullFirst name
contact.lastNamestring|nullLast name
contact.statusstringlead or customer
contact.phonesarrayPhone numbers with phone and type fields
contact.emailesarrayEmail addresses with email and type fields (note: the field name is emailes)
contact.contactAccountsarrayLinked platform accounts
contact.tagsarrayTags assigned to the contact
contact.last_activity_atstring|nullThe contact's last activity (a message or a call in any of its conversations), ISO-8601; null for a contact that was just created
contact.hidden_from_inbox_atstring|nullWhen the contact was hidden from the shared working inbox (ISO-8601); null means it is visible
contact.hidden_from_inbox_by_user_idinteger|nullWho hid the contact from the inbox
contact.open_deals_countintegerNumber of the contact's open deals
contact.responsible_userobject|nullThe responsible manager — {id, name} or null