Перейти к основному содержимому

Массовый импорт и поиск лидов

Цель: создать лидов массово и затем находить их по богатым фильтрам.

Импорт

Создавайте каждого лида (при необходимости с контактами) через POST /v1/leads/with-contacts — см. Создать лида. Помечайте группу импорта общим batch_name, чтобы потом находить их или работать с ними вместе:

curl -s https://api.ru.sance.ai/v1/leads/with-contacts \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{
"lead": { "product_id": 42, "stage_id": 7, "batch_name": "q3-import",
"crm_fields": { "industry": "manufacturing", "budget": "50000" } },
"contacts": [ { "contact": "+15551234567", "contact_type": "phone", "is_main": true } ]
}'

Поиск

Простой GET /v1/leads/ поддерживает базовые фильтры (этап, имя, активность/тест, теги, одно CRM-поле). Для запросов с несколькими условиями используйте POST /v1/leads/search — он добавляет несколько этапов, несколько идентификаторов и составные условия по CRM-полям:

curl -s https://api.ru.sance.ai/v1/leads/search \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{
"product_id": 42,
"stage_ids": [7, 8],
"is_active": true,
"crm_fields_conditions": {
"operator": "AND",
"conditions": [
{ "field": "industry", "operator": "EQUALS", "value": "manufacturing" },
{ "field": "budget", "operator": "IS_NOT_EMPTY" }
]
},
"page": 1, "limit": 50
}'

Значения operator для каждого условия: EQUALS, NOT_EQUALS, IN, NOT_IN, STARTS_WITH, ENDS_WITH, CONTAINS, EXISTS, NOT_EXISTS, IS_EMPTY, IS_NOT_EMPTY; верхнеуровневый operator объединяет их через AND или OR. GET /v1/leads/count возвращает только общее число по простым фильтрам.

См.: POST /v1/leads/with-contacts, GET /v1/leads/, POST /v1/leads/search, GET /v1/leads/count.