AISARAISAR

Типы данных: платформа

Справочник платформенных типов данных: интеграции и системные события, команды/компания/пользователь и очередь исходящих сообщений.

Ниже — форма JSON-объектов платформенного домена, которые возвращают соответствующие /v1-эндпоинты. Каждый заголовок — точное имя типа; поля, помеченные "...", — вложенные объекты той же или связанной формы.

Интеграции и события

Integration (IntegrationInstance)

Полное представление подключённой интеграции. health — последний успех/сбой доставки (last_success_at, last_failure_at, last_error) и счётчик подряд идущих сбоев (consecutive_failures); settings — конфигурация (URL, выбранные события, ретраи, фильтр каналов); credential.secrets — секреты по форме IntegrationSecrets; external_entities/mappings/funnel_mappings — сопоставления с внешней системой.

json
{
  "id": 1,
  "type": "webhook",
  "name": "n8n Production",
  "status": "active",
  "health": {
    "last_success_at": "2026-02-01T12:00:00Z",
    "last_failure_at": null,
    "last_error": null,
    "consecutive_failures": 0
  },
  "settings": {
    "url": "https://example.com/webhook",
    "description": "Production automation",
    "signatureHeader": "X-AISAR-Signature",
    "authType": "basic",
    "selectedEventKeys": ["message.created", "conversation.created"],
    "channelFilter": "all",
    "timeoutSeconds": 30,
    "retryEnabled": true,
    "maxAttempts": 6,
    "concurrency": 4
  },
  "credential": {
    "secrets": { "...IntegrationSecrets" },
    "expires_at": null,
    "last_refreshed_at": null,
    "rotated_at": null,
    "created_at": "2026-02-04T12:00:00Z",
    "updated_at": "2026-02-04T12:00:00Z"
  },
  "external_entities": [{ "..." }],
  "mappings": [{ "..." }],
  "funnel_mappings": [{ "..." }],
  "created_at": "2026-02-01T12:00:00Z",
  "updated_at": "2026-02-04T12:00:00Z"
}

IntegrationListItem

Облегчённое представление интеграции для списков — без health, секретов и сопоставлений.

json
{
  "id": 1,
  "type": "webhook",
  "name": "n8n Production",
  "status": "active",
  "settings": { "url": "https://example.com/webhook" },
  "created_at": "2026-02-01T12:00:00Z",
  "updated_at": "2026-02-04T12:00:00Z"
}

IntegrationSecrets

Форма блока секретов интеграции. Набор полей зависит от authType. Значения ниже — плейсхолдеры; передавайте реальные секреты только при создании или ротации интеграции.

Не размещайте реальные секреты в примерах, логах или тикетах. В примере ниже все значения — заведомо синтетические плейсхолдеры.
json
{
  "signingSecret": "whsec_xxx_EXAMPLE",
  "bearerToken": "YOUR_BEARER_TOKEN",
  "basicUsername": "api_user",
  "basicPassword": "YOUR_PASSWORD"
}

IntegrationLog

Запись журнала интеграции. context содержит детали доставки события: ключ события, статус, код ответа, длительность, тела запроса и ответа.

json
{
  "id": 1,
  "level": "info",
  "code": "webhook.delivery",
  "message": "Webhook delivered.",
  "context": {
    "event_key": "message.created",
    "status": "success",
    "status_code": 200,
    "duration_ms": 420,
    "request": { "url": "...", "method": "POST", "body": {} },
    "response": { "status_code": 200, "body": { "ok": true } }
  },
  "created_at": "2026-02-04T12:00:00Z"
}

IntegrationProvider

Каталожная запись провайдера интеграции (например webhook). Опубликованные провайдеры (is_published: true) доступны для подключения.

json
{
  "id": 1,
  "key": "webhook",
  "name": "Webhook",
  "description": "Outbound webhook integration",
  "is_published": true,
  "created_at": "2026-02-04T12:00:00Z",
  "updated_at": "2026-02-04T12:00:00Z"
}

SystemEvent

Запись каталога системных событий — источник событий вебхуков. key — канонический ключ (например message.created), group — группировка для интерфейса. Полный каталог событий с полями полезной нагрузки описан в гайде «Вебхуки».

json
{
  "id": 1,
  "key": "message.created",
  "type": "message",
  "name": "Message created",
  "description": "A new message is created in a conversation.",
  "group": "Messages",
  "metadata": {},
  "created_at": "2026-02-04T12:00:00Z",
  "updated_at": "2026-02-04T12:00:00Z"
}

Команды, компания и пользователь

Team

Команда внутри компании. channel_access задаёт доступ команды к каналам: modeall или custom, channel_ids — список каналов для режима custom.

json
{
  "id": 1,
  "company_id": 1,
  "name": "Support",
  "description": "Customer success team",
  "channel_access": { "mode": "all|custom", "channel_ids": [1, 2] },
  "member_ids": [1, 2, 3],
  "created_at": "2024-01-01T00:00:00Z",
  "updated_at": "2024-01-01T00:00:00Z"
}

Company

Профиль компании: реквизиты, локаль (country_code/timezone) и рабочее расписание work_schedule_days (по одному объекту на день недели).

json
{
  "id": 1,
  "name": "Acme",
  "registration_number": "...",
  "website": "https://...",
  "industry_code": "...",
  "logo_url": "...",
  "country_code": "US",
  "timezone": "UTC",
  "address_line": "...",
  "postal_code": "...",
  "phone": "+77000000000",
  "respect_holidays": true,
  "work_schedule_days": [
    { "weekday": "monday", "enabled": true, "start_time": "09:00", "end_time": "18:00" }
  ]
}

CompanyMember

Участник компании: вложенный account, роль и статус приглашения. row_key — стабильный ключ строки для интерфейса.

json
{
  "account": {
    "id": 1,
    "name": "John",
    "lastname": "Doe",
    "email": "john@example.com",
    "photo": "...",
    "last_login_at": "2024-01-01T00:00:00Z"
  },
  "role": "admin",
  "invitation_status": "accepted",
  "row_key": "user:1"
}

UserProfile

Профиль текущего пользователя (возвращается GET /me): контакты, активная компания current_company_id, роли и права в ней, список членств и ожидающие приглашения.

json
{
  "id": 1,
  "name": "John",
  "lastname": "Doe",
  "email": "john@example.com",
  "email_verified": true,
  "phone": "+77000000000",
  "photo": "...",
  "country_code": "US",
  "language": "en",
  "timezone": "UTC",
  "current_company_id": 1,
  "roles": ["admin"],
  "permissions": ["company.view"],
  "company": { "...Company" },
  "memberships": [
    { "company_id": 1, "company_name": "Acme", "roles": ["admin"], "status": "active" }
  ],
  "pending_invitations": [
    {
      "guid": "...",
      "company_id": 1,
      "company_name": "Acme",
      "role": "manager",
      "invited_by_name": "Jane Doe",
      "expires_at": "2024-01-01T00:00:00Z"
    }
  ]
}

Очередь исходящих

OutboundQueueItem

Элемент очереди исходящих сообщений.

json
{
  "id": 10,
  "company_id": 1,
  "conversation_id": 1,
  "thread_id": 2,
  "message_id": 1001,
  "channel_id": 3,
  "provider": "baileys",
  "direction": "outbound",
  "status": "queued",
  "priority": 100,
  "attempt": 0,
  "max_attempts": 5,
  "next_retry_at": null,
  "locked_at": null,
  "locked_by": null,
  "processed_at": null,
  "sent_at": null,
  "last_error": null,
  "payload": {},
  "created_by_user_id": 7,
  "created_at": "2026-02-09T18:00:00Z",
  "updated_at": "2026-02-09T18:00:00Z"
}
ПолеЗначения
directionoutbound \| system
statusqueued \| processing \| sent \| failed \| canceled