Зачем это нужно
WazzaBee знает, с какого объявления пришёл каждый клиент, но не знает, чем закончился разговор — эта информация живёт в вашей CRM. Передайте нам результат сделки, и в разделе «Реклама» появятся продажи, выручка и средний чек в разрезе каждого объявления: станет видно, какой креатив приносит деньги, а какой только обращения.
Этот же результат позже используется для возврата события о покупке в рекламный кабинет Meta, чтобы реклама оптимизировалась на покупателей.
POST /v1/outcomes
URL
POST https://api.wazzabee.com/api-gateway/v1/outcomes
Заголовки
Authorization: Bearer ВАШ_API_КЛЮЧ
Content-Type: application/json
Параметры тела запроса
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
chatId | string | ✅ Да* | Телефон клиента или его идентификатор в мессенджере. Берём последний диалог этого контакта |
conversationId | string (UUID) | ✅ Да* | Идентификатор диалога, если он у вас сохранён. Точнее, чем chatId |
outcome | string | ✅ Да | sale — продажа, qualified — целевой лид, refused — отказ, no_answer — не отвечает |
amount | number | Для sale | Сумма продажи. Без неё продажу принять не можем: в отчёте по окупаемости нечего будет считать |
currency | string | Нет | Валюта суммы, по умолчанию KZT |
channelId | string (UUID) | Нет | Линия связи. Указывайте, если один и тот же номер пишет вам на несколько линий |
comment | string | Нет | Заметка: что купили, детали. До 500 символов |
* Нужен либо chatId, либо conversationId — хотя бы один.
Пример запроса
curl -X POST "https://api.wazzabee.com/api-gateway/v1/outcomes" \
-H "Authorization: Bearer ВАШ_API_КЛЮЧ" \
-H "Content-Type: application/json" \
-d '{
"chatId": "77071234567",
"outcome": "sale",
"amount": 185000,
"comment": "Виза в Испанию, оплата полностью"
}'
Ответ
{
"success": true,
"conversationId": "uuid",
"outcome": "sale",
"amount": 185000,
"currency": "KZT"
}
Ошибки
| Код | Причина |
|---|---|
| 400 | Не указан outcome или он неизвестен; для продажи не передана amount; не указаны ни chatId, ни conversationId |
| 403 | Линия не привязана к вашей интеграции |
| 404 | Диалог не найден: клиент вам ещё не писал либо номер отличается от того, с которого он обращался |
Как это встроить в свою CRM
Вызывайте метод в момент, когда сделка меняет стадию. Один вызов на переход — этого достаточно.
- Сделка оплачена →
outcome: "sale"и сумма оплаты; - Клиент квалифицирован, но ещё не заплатил →
outcome: "qualified"; - Отказ →
outcome: "refused"; - Не выходит на связь →
outcome: "no_answer".
sale с суммой оплаты. Считаем деньги, а не исход дела.
Повторный вызов по тому же диалогу перезаписывает прежний результат — менеджер может исправить ошибку, и у нас останется актуальное значение. Дублей не будет.
