Покрокова інструкція
Markdown статтіПовідомити про помилку

Як налаштувати 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: Налаштуйте обробку на вашому сервісі

Ваш сервіс повинен:

  1. Приймати POST запити на вказаний URL
  2. Перевіряти автентичність запиту (якщо необхідно)
  3. Обробляти різні типи подій
  4. Повертати статус код 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": "[email protected]"
  },
  "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 для безпеки

Пов'язані статті

Працюєте з власним ШІ-агентом?Встановіть відкритий skill, щоб ваш ШІ-агент працював з актуальною офіційною документацією ConnectiveOne.Отримати skillПотрібна підтримка?Не знайшли відповідь або потрібна допомога команди ConnectiveOne? Створіть запит у Client Portal.Створити запит