Як налаштувати підписку користувача на нотифікації
Згідно політики месенджерів, боти не можуть відправляти повідомлення першими. Для того, щоб користувач міг отримувати нотифікації із боту, він повинен спочатку взаємодіяти з ботом та відправити йому будь-яке початкове повідомлення.
Як працює підписка?
- Користувач натискає кнопку на сайті/в застосунку "хочу отримувати повідомлення в месенджер"
- Відкривається посилання на бота з параметрами (deeplink)
- Користувач натискає "Почати" в месенджері
- Бот повертає
chat_idтаchannelназад в застосунок через actionsend_me - Тепер можна відправляти нотифікації користувачу через API
call_node
Створення кнопки підписки
На стороні сайту/застосунку створіть кнопку "хочу отримувати повідомлення в месенджер" (або "слідкувати за статусом замовлення в месенджері", "вибрати канал підтримки" тощо).
В цій кнопці стартовий параметр може містити:
customer_idклієнта у вашій CRM/ERP- ID замовлення
- Інші дані для ідентифікації
📖 Документація: Детальніше про deeplink читайте в Запуск сценарію через deeplink.
Повернення chat_id та channel
Після першого повідомлення від користувача (наприклад, натискання кнопки "Почати" в Telegram), бот повинен повернути назад в застосунок (сайт, CRM, тощо) пару параметрів:
chat_id— унікальний в межах месенджера ID чату (зазвичай букво-символьна строка)channel— назва каналу (telegram, viber, facebook тощо)
В ConnectiveOne для цього існує спеціальний action send_me.
Конфігурація action send_me
В налаштуваннях цієї дії прописується:
url— адреса на яку відправити запитmethod— метод відправлення запиту (GET, POST)data— додаткові параметри для відправки, можуть містити плейсхолдери, наприклад{{messenger_input_param}}headers— заголовки запиту
Автоматичні параметри
Action send_me автоматично додає до даних запиту:
chat_id— ідентифікатор чату користувачаchannel— канал комунікації (telegram, viber, facebook тощо)
Ці параметри не потрібно вказувати в конфігурації — вони додаються автоматично.
Приклад конфігурації
{
"url": "https://your-crm.com/api/webhook/chat-registered",
"method": "POST",
"data": {
"customer_id": "{{messenger_input_param}}",
"user_name": "{{user_name}}"
},
"headers": {
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json"
}
}
Результат запиту:
{
"customer_id": "12345",
"user_name": "Іван",
"chat_id": "398866372",
"channel": "telegram"
}
Можливі варіанти розгалуження подіями
"ok"— запит успішно відправлено"not_ok"— помилка при відправці запиту
Обробка помилок
Якщо запит завершився помилкою, action повертає "not_ok". В сценарії можна обробити цю подію для:
- Повторної спроби
- Відправки повідомлення користувачу
- Логування помилки
Відправка нотифікацій після підписки
Після того, як ви отримали chat_id та channel, ви можете відправляти нотифікації користувачу через API call_node.
📖 Документація: Детальніше читайте в Запуск сценарію через API call_node.
Обмеження
- URL повинен бути доступним з сервера ConnectiveOne
- Підтримуються тільки HTTP та HTTPS протоколи
- Timeout запиту залежить від налаштувань системи
Важливі примітки
⚠️ Примітка: При використанні deeplink'а Facebook, Viber передається команда
start. Враховуйте це, якщо ви використовуєте розгалуження сценарію з допомогою action'аget_command.
Якщо вам не потрібно використовувати в боті ID користувача в зовнішній системі (наприклад ідентифікувати), ви можете не передавати ніяких параметрів, а просто відправляти користувача в бот робити перші кроки та зберігати chat_id + канал в CRM/застосунку.