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

Отправлять события в ваши сервисы (вебхуки)

Когда в проекте что-то происходит, AOVA может сразу передать это в другие сервисы: новую заявку - в CRM, передачу диалога - в чат команды, новый диалог - в таблицу. AOVA отправляет подписанное сообщение на адрес, который вы укажете, - из Zapier, Make или n8n либо вашего сервера. Тарифы Pro и выше.

СобытиеКогдаЧто внутри
lead.capturedКлиент оставил контактыимя, телефон, email, что нужно
conversation.startedНовый клиент написал впервыеего имя, если известно
conversation.handoff_requestedАссистент передал диалог вампричина и краткое описание от ассистента

Добавить вебхук​

  1. В Zapier, Make или n8n создайте сценарий, который начинается с вебхука («Catch Hook» в Zapier, «Custom webhook» в Make, «Webhook» в n8n), и скопируйте его адрес.
  2. В AOVA откройте Настройки → Интеграции (для текущего проекта) и нажмите Добавить вебхук.
  3. Дайте название, вставьте адрес (он должен начинаться с https://) и отметьте события.
  4. Нажмите Сохранить. AOVA один раз покажет секрет для подписи - скопируйте его, если ваш сервер проверяет подпись (Zapier, Make и n8n он не нужен).

Страница «Интеграции» с вебхуком и журналом отправок

Нажмите Тестовое событие, чтобы отправить пример данных: большинству сервисов он нужен, чтобы узнать поля. В проекте может быть до 5 вебхуков; менять их могут только те, кто управляет командой (администраторы).

Что приходит​

POST с JSON такого вида:

{
"id": "6e1c2a0f-7d0a-4c1b-9b8e-2f3a4c5d6e7f",
"type": "lead.captured",
"createdAt": "2026-10-26T17:00:00.000Z",
"projectId": "…",
"agentId": "…",
"contactId": "…",
"channel": "WIDGET",
"data": {
"lead": {
"name": "Мария Иванова",
"phone": "+79991234567",
"email": "maria@example.com",
"note": "Хочет первую консультацию",
"capturedAt": "2026-10-26T17:00:00.000Z"
}
}
}

Заголовки: X-AOVA-Event (тип), X-AOVA-Event-Id (то же, что id: если id пришёл дважды, второй раз можно пропустить) и X-AOVA-Signature.

Если сервер не ответил​

Ответьте любым статусом 2xx в течение 5 секунд. Всё остальное - другой статус, таймаут, недоступный адрес - считается ошибкой, и AOVA повторяет через 1 минуту, 5 минут, 15 минут, 30 минут, 1 час, 3 часа, затем каждые 6 часов - до 24 часов. После 5 ошибок подряд вебхук отмечается как Ошибки; первая успешная отправка снимает отметку.

Нажмите Журнал отправок, чтобы увидеть последние попытки: когда, какое событие, какой статус вернул ваш сервер и сколько это заняло. Журнал хранится 30 дней и не сохраняет содержимое.

Проверка подписи (ваш сервер)​

X-AOVA-Signature выглядит так: t=1793000000,v1=5f2b…. v1 - HMAC-SHA256 в hex от <t>.<тело запроса как есть> с вашим секретом. Отклоняйте сообщение, если подпись не совпала или t старше 5 минут.

import { createHmac, timingSafeEqual } from 'node:crypto';

function isFromAova(rawBody, header, secret) {
const parts = Object.fromEntries(header.split(',').map((p) => p.split('=')));
if (Math.abs(Date.now() / 1000 - Number(parts.t)) > 300) return false;
const expected = createHmac('sha256', secret)
.update(`${parts.t}.${rawBody}`)
.digest();
const given = Buffer.from(parts.v1 ?? '', 'hex');
return given.length === expected.length && timingSafeEqual(given, expected);
}

Потеряли секрет? Нажмите Новый секрет - старый сразу перестанет работать.

Секрет для подписи, показывается один раз