Все вебхуки
ИИ-агенты
ИИ-подсказка создана
ai.suggestion.createdСрабатывает, когда ИИ-копилот генерирует подсказку ответа для диалога. Подсказка — это черновик текста, который оператор может принять (отправится как исходящее сообщение, при необходимости с правками) или отклонить через эндпоинты `/v1/conversations/{conversation}/ai-suggestions/{suggestion}/accept` и `/reject`.
HTTP-запрос
AISAR отправляет подписанный POST-запрос на ваш webhook_url:
http
POST {webhook_url}
Content-Type: application/json
X-AISAR-Signature: sha256=...
{
"event": "ai.suggestion.created",
"event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
"timestamp": "2026-03-26T12:00:00.000000Z",
"company_id": 1,
"data": {
"suggestion": {
"id": 5821,
"instance_id": 12,
"conversation_id": 3344,
"message_id": 99812,
"suggested_text": "Здравствуйте! Доставка по городу занимает 1-2 дня.",
"status": "pending",
"accepted_by": null,
"final_text": null,
"tokens_used": 184,
"created_at": "2026-03-26T12:00:00.000000Z",
"updated_at": "2026-03-26T12:00:00.000000Z"
}
}
}Заголовок X-AISAR-Signature содержит HMAC-SHA256 подпись тела запроса — используйте её, чтобы убедиться, что запрос пришёл от AISAR.
Пример payload
json
{
"event": "ai.suggestion.created",
"event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
"timestamp": "2026-03-26T12:00:00.000000Z",
"company_id": 1,
"data": {
"suggestion": {
"id": 5821,
"instance_id": 12,
"conversation_id": 3344,
"message_id": 99812,
"suggested_text": "Здравствуйте! Доставка по городу занимает 1-2 дня.",
"status": "pending",
"accepted_by": null,
"final_text": null,
"tokens_used": 184,
"created_at": "2026-03-26T12:00:00.000000Z",
"updated_at": "2026-03-26T12:00:00.000000Z"
}
}
}Поля payload
| Поле | Тип | Описание |
|---|---|---|
suggestion.id | integer | ID подсказки |
suggestion.instance_id | integer | Экземпляр ИИ-агента, сгенерировавший подсказку |
suggestion.conversation_id | integer | Целевой диалог |
suggestion.message_id | integer|null | Входящее сообщение, вызвавшее генерацию подсказки |
suggestion.suggested_text | string | Черновик текста ответа |
suggestion.status | string | `pending`, `accepted`, `rejected`, `expired` |
suggestion.accepted_by | integer|null | ID пользователя, принявшего подсказку (заполняется при принятии) |
suggestion.final_text | string|null | Фактически отправленный текст (может отличаться от `suggested_text`, если оператор его отредактировал) |
suggestion.tokens_used | integer | Количество израсходованных LLM-токенов |