
Счёт-бот изначально жил в MAX и Telegram на общем ядре. Теперь к ним добавился WhatsApp — тот же сценарий, тот же результат в Odoo, только другой мессенджер.
Одно ядро, три адаптера
Вся логика диалога и работа с Odoo лежат в общем ядре, а под каждый мессенджер — тонкий адаптер. Добавить новый канал — значит написать адаптер, а не переписывать бота. WhatsApp стал третьим после MAX и Telegram.
Как устроен WhatsApp-мост
Удобного бот-API под этот сценарий у WhatsApp нет, поэтому подключение идёт через мост: небольшой сервис держит WhatsApp-сессию вашего номера (вход по QR-коду, как «связанное устройство»), а бот общается с ним по внутренней сети. Наружу ничего публиковать не нужно, сессия сохраняется — QR сканируется один раз.
Кнопок нет — есть номера
Инлайн-кнопки в WhatsApp ненадёжны, поэтому меню здесь — нумерованные списки: бот показывает варианты, клиент отправляет номер нужного. Сценарий тот же, просто ввод чуть иначе.
Честно о канале
WhatsApp здесь подключён неофициальным способом, поэтому как основной боевой канал он подходит хуже, чем MAX или Telegram: сессию иногда приходится восстанавливать. Как быстрый способ дать клиентам привычный мессенджер — вполне рабочий вариант; для нагруженной эксплуатации есть официальный API.
Итог
Один сценарий — три мессенджера. Клиент оформляет счёт там, где ему привычнее, а на выходе всё то же коммерческое предложение в Odoo.