Згідно політики месенджерів, боти не можуть відправляти повідомлення першими. Для того, щоб користувач міг отримувати нотифікації із боту, він повинен якось повзаємодіяти з ботом, та відправити йому будь-яке початкове повідомлення.
Найпростіший спосіб так зробити, це на стороні сайту/застосунку потрібно створити кнопку "хочу отримувати повідомлення в месенджер" (або "слідкувати за статусом замовлення в месенджері", "вибрати канал підтримку" тощо), яку людина буде натискати і ініціювати контакт з ботом.
В цій кнопці стартовий параметр може містити customer_id клієнта у вашій CRM/ERP і назад бот буде повертати chat_id та вибраний клієнтом канал комунікації для того, щоб ви й надалі могли відправляти йому нотифікації. Бот за цим сценарієм не робить нічого крім того, що говорить "Чудово, тепер я буду повідомляти вам всі новини за вашим замовленням, якщо потрібна допомога - натисніть “з’єднати з оператором”
До стартового параметру можна передавати id клієнта, замовлення тощо. Загалом що завгодно, що дозволить вам потім співставити дані з вашого сайту/застосунку з парою chat_id + канал з боту.
Таким чином вам потрібно сформувати посилання на свої боти з зазначенням вхідного параметру та просити користувача натиснути на посилання і почати спілкування з ботом.
Якщо вам не потрібно використовувати в боті id користувача в зовнішній системі (наприклад ідентифікувати), ви можете не передавати ніяких параметрів, а просто відправляти користувача в бот робити перші кроки та зберігати chat_id + канал в CRM/застосунку.
<aside>
⚠️ При використанні deeplink'а Facebook, Viber передаеться команда start
. Враховуйте це якщо ви використовуєте розгалуження сценарію з допомогою action'а get_command
</aside>
Вже після першого повідомлення від користувача, наприклад натискання кнопки "Почати" в Telegram, бот повинен повернути назад в в застосунок (сайт, CRM, тощо) пару параметрів, а саме
chat_id
- унікальний в межах месенджеру id чата. Зазвичай це букво-символьна строка.channel
- назва каналу (telegram, viber, facebook и так далее)В Kwizbot для цього існує спеціальний action send_me
В налаштуваннях цієї дії прописується:
url
- адреса на яку відправити запитmethod
- метод відправлення запиту (get, post)data
- додаткові параметри для відправки, можуть містити плейсхолдери, наприклад {{messenger_input_param}}
, крім цього будуть завжди відправлені ще 2 параметри chat_id
та channel