Продолжая заниматься развитием ТГ-канала, я столкнулся с необходимостью подключить к нему чат-бота, который выдает некий подарочек. В Инете есть готовые решения, но как-то боязно отдавать данные подписчиков боту, у которого непонятно что под капотом. Тем более, что в планах развития нашей CRM-системы есть создание нейропроджекта – это такой бот, который будет выдавать клиентам всю инфу по их задачам и принимать правки. Так что я решил попробовать сделать чат-бота самостоятельно.
Как-то я уже делал бота, который шлет мне сообщения, когда в магазине на Woocommerce что-то покупают. Там всего несколько строк кода, так что не скажу, что получил много опыта на нем. Но в этот раз решил попробовать для этого n8n.
В итоге за 3 часа удалось создать сделать бота, который:
• стартует, как любой другой по команде strat,
• при нажатии на кнопку “Получить подарок”, проверяет подписку на канал,
• далее выбирает один из 2 вариантов: подписка есть или нет,
• если есть, то шлет фотку, потом ссылку на скачивание,
• если нет, то шлет предложение подписаться.
Не сложный функционал и на самом деле готов он был за 1,5 часа, но потом я решил вместо команд вставить кнопки и тут началось…
Для разработки я использовал ChatGPT. Начал с 4.1, которая считается лучшей для кода. Но тут у нас кода почти нет, поэтому она конкретно тупила, предлагая опции, которых нет вообще. Потом перешел на 4.о, дело пошло получше, но все равно без результата. Нейронка упорно доказывала, что нельзя сделать 2 триггера в одном потоке (это реально так), поэтому нельзя сделать старт по команде и получение нажатия кнопки. А вот это уже звучало как бред.
__В итоге методом проб и ошибок я выяснил, что и триггер “получение сообщения (команды)” и триггер “получение call-back (кнопка)” – это одно и то же в n8n, просто внутри ноды есть выбор, что именно получать. И потом оказалось, что в одном триггере можно выбрать и то и другое. __ Надеюсь, кому-то это сэкономит 2 часа жизни. Особенно с полной схемой на картинке. 😁
Ну а сам подарочек для подписчиков выложу следующим постом, чтобы его можно было добавить в закреп.
