Типы данных: CRM
Справочник объектов CRM: воронки, быстрые ответы, сегменты, рассылки, шаблоны сообщений и автоматизации.
Здесь описаны формы объектов CRM-домена, которые возвращает API. Поведение эндпоинтов (создание, обновление, запуск) — в соответствующих REST-группах: funnels, snippets, segments, broadcasts, templates, deals и automations.
Воронки и быстрые ответы
Funnel
Воронка группирует стадии (stages), по которым продвигаются сделки. Поле status отражает состояние воронки (например draft), steps — число стадий. Каждая стадия несёт type (new, in_progress, success или failed), порядковый order и цвет color.
{
"id": 1,
"company_id": 1,
"name": "Support",
"slug": "support",
"description": "...",
"status": "draft",
"steps": 3,
"updated_at": "2024-01-01T00:00:00Z",
"stages": [
{
"id": 1,
"funnel_id": 1,
"name": "New",
"type": "new",
"order": 1,
"color": "#00FF00",
"stale_after_days": null,
"wip_limit": null
}
]
}Snippet
Быстрый ответ — переиспользуемый текст (message) с необязательными вложениями (files); каждый файл несёт name, size, MIME-type и download_url.
{
"id": 1,
"company_id": 1,
"name": "Greeting",
"message": "Hello",
"files": [
{
"id": 1,
"name": "file.pdf",
"size": 1234,
"type": "application/pdf",
"download_url": "..."
}
],
"updated_at": "2024-01-01T00:00:00Z"
}Сегменты и рассылки
Segment
Сегмент — сохранённый набор условий (conditions), отбирающий контакты. Условия комбинируются логикой group_logic (and/or); conditions_summary — человекочитаемое резюме. estimated_count — динамически вычисляемая оценка размера аудитории; contacts_count — материализованное число участников для статических сегментов (type = static), иначе null.
{
"id": "1",
"name": "New leads",
"slug": "new-leads",
"type": "dynamic",
"description": "Contacts with recent inbound activity",
"conditions": [
{ "group": 0, "type": "tag", "operator": "has_any", "value": [1, 2], "field_name": null },
{ "group": 0, "type": "channel", "operator": "in", "value": [5], "field_name": null }
],
"conditions_summary": "Last inbound <= 7 days",
"estimated_count": 120,
"contacts_count": null,
"members": null,
"created_at": "2026-02-09T18:00:00Z",
"updated_at": "2026-02-09T18:00:00Z"
}Broadcast
Массовая рассылка адресуется аудитории (audience — те же условия, что и в сегменте) по одному или нескольким channels заданным content. schedule задаёт разовую отправку (mode = now/…), recurring_schedule — повторяющуюся. Поле runs содержит массив запусков (объекты BroadcastRun, см. ниже).
{
"id": 1,
"company_id": 1,
"name": "Promo Feb",
"status": "scheduled",
"audience": {
"conditions": [{ "type": "tag", "operator": "has_any", "value": [1, 2] }],
"group_logic": "and"
},
"channels": [],
"content": [],
"schedule": { "mode": "now", "scheduledAt": null },
"recurring_schedule": null,
"runs": [],
"created_at": "2026-02-09T18:00:00Z",
"updated_at": "2026-02-09T18:00:00Z"
}BroadcastRun
Один запуск рассылки со счётчиками доставки: total (адресатов), sent, failed, delivered, read. status отражает состояние запуска (например completed), started_at/completed_at — его временные рамки.
{
"id": 1,
"broadcast_id": 1,
"status": "completed",
"total": 120,
"sent": 115,
"failed": 5,
"delivered": 100,
"read": 42,
"started_at": "2026-03-17T10:00:00Z",
"completed_at": "2026-03-17T10:05:00Z",
"created_at": "2026-03-17T10:00:00Z"
}Шаблоны и автоматизации
MessageTemplate
Шаблон сообщения привязан к типу канала (channel_type) и языку (language). status отражает состояние модерации (например draft), body содержит текст с переменными {{name}}. Флаги header_enabled/footer_enabled/buttons_enabled включают соответствующие блоки; parameters описывают переменные (имя, type, sample_value, position), buttons — кнопки, uses_count — число использований. Показан базовый shape одного экземпляра шаблона; полная логическая модель WhatsApp Business (агрегат logical_template, группировка по template_group_id, per-channel meta_status/meta_status_reason/last_synced_at, синхронизация с Meta) описана в REST-группе «Шаблоны сообщений».
{
"id": 1,
"company_id": 1,
"template_group_id": null,
"channel_type_id": 4,
"channel_type": { "id": 4, "key": "whatsapp_business", "name": "WhatsApp Business" },
"channel": null,
"name": "Welcome",
"slug": "welcome_v1",
"status": "draft",
"meta_status": null,
"meta_status_reason": null,
"last_synced_at": null,
"language": "en",
"category": "utility",
"description": null,
"body": "Hello, {{first_name}}",
"header_enabled": false,
"header_type": null,
"header_text": null,
"header_media_url": null,
"footer_enabled": false,
"footer_text": null,
"buttons_enabled": false,
"auth_config": null,
"labels": ["onboarding"],
"parameters": [
{ "id": 1, "name": "first_name", "type": "text", "sample_value": "John", "position": 1 }
],
"buttons": [],
"uses_count": 0,
"created_at": "2026-02-09T18:00:00Z",
"updated_at": "2026-02-09T18:00:00Z"
}Automation
camelCase-имена полей (в отличие от большинства типов CRM со snake_case). activeVersionId/latestVersionId разделяют опубликованную и последнюю редакции сценария.status отражает состояние автоматизации (например draft), healthStatus — её работоспособность (например ok). executionsCount и lastRunAt описывают историю запусков; createdBy/updatedBy — авторов изменений.
{
"id": "a1b2c3d4-0000-4000-8000-000000000001",
"companyId": "1",
"name": "Welcome automation",
"description": null,
"status": "draft",
"healthStatus": "ok",
"activeVersionId": null,
"latestVersionId": null,
"templateId": null,
"executionsCount": 0,
"lastRunAt": null,
"createdAt": "2026-02-09T18:00:00Z",
"updatedAt": "2026-02-09T18:00:00Z",
"createdBy": "1",
"updatedBy": "1"
}