Контакты
Контакт — карточка человека или компании, с которой ведётся общение: телефоны, email, привязанные аккаунты каналов (contactAccounts — например конкретный WhatsApp-номер или Instagram-username), метки и статус (lead/active/inactive). Один контакт может иметь несколько привязанных аккаунтов и диалогов. API покрывает CRUD, поиск/резолв по идентификаторам, объединение дублей и управление подпиской на рассылки (opt-in/opt-out).
Эндпоинты
| Метод | Путь | Описание |
|---|---|---|
| GET | /v1/contactsСписок контактов компании с пагинацией, поиском и фильтром по статусу. | Список контактов компании с пагинацией, поиском и фильтром по статусу. |
| GET | /v1/contacts/lookupБыстрый поиск контактов по телефону, external_id или username канала. | Быстрый поиск контактов по телефону, external_id или username канала. |
| GET | /v1/contacts/channel-optionsСписок типов каналов, доступных для привязки аккаунта к контакту. | Список типов каналов, доступных для привязки аккаунта к контакту. |
| POST | /v1/contactsСоздать контакт (с телефонами, email и привязанными аккаунтами каналов). | Создать контакт (с телефонами, email и привязанными аккаунтами каналов). |
| POST | /v1/contacts/resolve-identifiersРазрешить пакет идентификаторов (телефон/username/external_id) в id существующих контактов. | Разрешить пакет идентификаторов (телефон/username/external_id) в id существующих контактов. |
| PATCH | /v1/contacts/{contact}Обновить контакт (полностью пересохраняет связанные телефоны/email/аккаунты). | Обновить контакт (полностью пересохраняет связанные телефоны/email/аккаунты). |
| DELETE | /v1/contacts/{contact}Удалить контакт (мягкое удаление). | Удалить контакт (мягкое удаление). |
| POST | /v1/contacts/{contact}/mergeОбъединить контакт с другим (все диалоги и аккаунты переносятся в целевой). | Объединить контакт с другим (все диалоги и аккаунты переносятся в целевой). |
| POST | /v1/contacts/{contact}/tagsСинхронизировать метки контакта (полная замена набора). | Синхронизировать метки контакта (полная замена набора). |
| POST | /v1/contacts/{contact}/opt-outОтписать контакт от рассылок. | Отписать контакт от рассылок. |
| POST | /v1/contacts/{contact}/opt-inВернуть контакт в рассылки (снять opt-out). | Вернуть контакт в рассылки (снять opt-out). |
| GET | /v1/contacts/{contact}/dealsСписок сделок контакта (требует включённый функционал сделок). | Список сделок контакта (требует включённый функционал сделок). |
Примеры
Создание контакта
Запрос
curl -X POST "https://api.aisar.app/v1/contacts" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"firstName": "John",
"lastName": "Doe",
"phones": [{ "phone": "+77001234567", "type": "mobile" }],
"emailes": [{ "email": "john@example.com", "type": "work" }]
}'Ответ
{
"data": {
"id": 45,
"company_id": 1,
"firstName": "John",
"lastName": "Doe",
"displayName": "John Doe",
"status": "lead",
"phones": [{ "phone": "+77001234567", "type": "mobile" }],
"emailes": [{ "email": "john@example.com", "type": "work" }],
"contactAccounts": [],
"merged_into_contact_id": null
}
}Поиск контакта по телефону
Запрос
curl -X GET "https://api.aisar.app/v1/contacts/lookup?q=%2B77001234567" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"Ответ
{
"data": [
{
"id": 45,
"displayName": "John Doe",
"status": "lead",
"phones": [{ "phone": "+77001234567", "type": "mobile" }]
}
]
}