Як налаштувати webhook панелі оператора
Webhook панелі оператора дозволяє отримувати події з операторської панелі (створення чату, підключення оператора, закриття чату) на ваш зовнішній сервіс. Це корисно для синхронізації статусів діалогів з CRM системою або логування подій.
Коли використовувати webhook панелі оператора?
Webhook панелі оператора підходить для таких кейсів:
- Потрібно відстежувати події в операторській панелі (створення чату, підключення оператора)
- Потрібно синхронізувати статуси діалогів з вашою CRM системою
- Потрібно логувати події операторської панелі в зовнішню систему
- Потрібно інтегрувати з системою аналітики
Налаштування
Крок 1: Вкажіть webhook URL в action
У action operator_panel__connect_to_operator_with_msg вкажіть параметр event_webhook_url.
Приклад конфігурації:
{
"auto_connect_operator": true,
"subject_alias": "support",
"event_webhook_url": "https://your-service.com/webhook/operator-events"
}
Крок 2: Налаштуйте обробку на вашому сервісі
Ваш сервіс повинен:
- Приймати POST запити на вказаний URL
- Перевіряти автентичність запиту (якщо необхідно)
- Обробляти різні типи подій
- Повертати статус код 200 для успішної обробки
Приклад обробки (Node.js):
app.post('/webhook/operator-events', (req, res) => {
const event = req.body;
switch (event.event_name) {
case 'chat_created':
// Обробка створення чату
console.log('Chat created:', event.chat_id);
break;
case 'operator_connected':
// Обробка підключення оператора
console.log('Operator connected:', event.operator.id);
break;
case 'chat_closed':
// Обробка закриття чату
console.log('Chat closed:', event.chat_id);
break;
}
res.status(200).json({ status: 'ok' });
});
Типи подій
На вказану URL адресу будуть пересилатися наступні події:
chat_created— чат створеноauto_connected— авто-під'єднання оператораoperator_connected— оператор під'єднавсяoperator_disconnected— оператор від'єднавсяchat_closed_by_operator— чат закрито операторомchat_closed— чат закритоchat_closed_by_timeout— чат закрито за таймаутомconnection_timeout— таймаут з'єднанняdelegate_chat_on_skill_group— передача діалогу до іншої скіл-групиchat_transferred_to_operator— передача діалогу іншому оператору
Формат подій
Формат подій такий самий як у Custom Channel. Всі події містять поля text та event_name.
Приклад події chat_created
{
"reply_markup": {
"remove_keyboard": false
},
"chat_id": "34122",
"text": "Chat created",
"event_name": "chat_created",
"client": {
"id": 572338,
"first_name": "Test",
"last_name": "Surname",
"username": "testuername",
"language_code": "uk",
"phone": "+380505776464",
"channel": "telegram"
},
"id": "83317aa1-8ea4-4c05-afed-d7437ff88fbf",
"from": "bot",
"bot_id": 4,
"type": "text"
}
Приклад події operator_connected
{
"reply_markup": {
"remove_keyboard": true
},
"chat_id": "34122",
"text": "Operator connected",
"event_name": "operator_connected",
"client": {
"id": 572338,
"first_name": "Test",
"last_name": "Surname",
"username": "testuername",
"language_code": "uk",
"phone": "+380505776464",
"channel": "telegram"
},
"operator": {
"id": 25,
"first_name": "Root",
"last_name": "Admin",
"avatar_img": "https://example.com/avatar.png",
"role": "admin",
"kw_user.email": "operator@example.com"
},
"id": "baebdeec-e7b7-4188-bd1d-409f4133507f",
"from": "bot",
"bot_id": 4,
"type": "text"
}
Відмінності від Custom Channel
Webhook панелі оператора:
- Налаштовується безпосередньо в action
operator_panel__connect_to_operator_with_msg - Відправляє тільки події з операторської панелі
- Не потребує окремого налаштування каналу
Custom Channel:
- Потребує налаштування каналу в налаштуваннях бота
- Відправляє всі повідомлення та події
- Більш гнучкий для повноцінної інтеграції
Обмеження
- URL повинен бути доступним з сервера ConnectiveOne
- Підтримуються тільки HTTP та HTTPS протоколи
- Timeout запиту залежить від налаштувань системи
- Рекомендується використовувати HTTPS для безпеки
Пов'язані статті
- Інтеграція через Custom Channel
- Що таке інтеграції
- Підключення чату з оператором — налаштування підключення до оператора