AISARAISAR

Типы данных: 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.

json
{
  "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.

json
{
  "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.

json
{
  "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, см. ниже).

json
{
  "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 — его временные рамки.

json
{
  "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-группе «Шаблоны сообщений».

json
{
  "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

Автоматизации используют идентификаторы-UUID и camelCase-имена полей (в отличие от большинства типов CRM со snake_case). activeVersionId/latestVersionId разделяют опубликованную и последнюю редакции сценария.

status отражает состояние автоматизации (например draft), healthStatus — её работоспособность (например ok). executionsCount и lastRunAt описывают историю запусков; createdBy/updatedBy — авторов изменений.

json
{
  "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"
}