Согласно политики мессенджеров, боты не могут отправлять сообщения первыми. Чтобы пользователь мог получать нотификации из бота, он должен как-то повзаимодействовать с ботом, и отправить ему хоть какое-то начальное сообщение.

Самый простой способ такое сделать, это на стороне сайта/приложения нужно создать кнопочку "хочу получать уведомления в мессенджер" (или "следить за статусом заказа в мессенджер", "выбрать канал поддержки" и так далее), которую человек будет нажимать и инициировать контакт с ботом.

В этой кнопке стартовый параметр может содержать customer_id клиента в вашей CRM/ERP и обратно бот будет возвращать chat_id и выбранный клиентом канал коммуникации для того чтобы вы и дальше могли отправлять ему нотификации. Бот по этому сценарию не делает ничего кроме того что говорит "Отлично, теперь я буду сообщать вам все новости по вашему заказу, если хотите помощи - нажмите "соединить с оператором"

Передача стартового параметра (deeplink)

В мессенджерах существуют механизмы, которые позволяют передавать в бот входные параметры. Эти механизмы называются deeplink и представляют собой способ зашить параметр в ссылку которая откроет бот.

В стартовый параметр можно передавать id клиента, заказа, и так далее. В общем что угодно, что позволит вам потом сопоставить данные из вашего сайта/приложения с парой chat_id + канал из бота.

Таким образом вам нужно сформировать ссылки на свои боты с указанием входящего параметра и просить пользователя нажать на ссылку и начать общение с ботом.

Если вам не нужно использовать в боте id пользователя во внешней системе (например идентифицировать), вы можете не передавать никаких параметров а просто отправлять пользователя в бот делать первые шаги и сохранять chat_id + канал в CRM/приложении.

<aside> ⚠️ При использовании deeplink'а Facebook, Viber передается команда start. Учтите это если вы используете ветвление сценария с помощью action'а get_command

</aside>

Получение стартового параметра для использования в сценарии

Если вы хотите использовать в сценарии стартовый параметр, используйте действие get_command

Он обработает команду вида /commandname или переданную через deeplink, если передан параметр, устанавливает константу {{messenger_input_param}}

Возврат chat_id и канала обратно в приложение

После первого же сообщения от пользователя, например нажатия кнопки "Начать" в Telegram, бот должен вернуть обратно в приложение (сайт, CRM, и тп) пару параметров, а именно