Заявку из Telegram в n8n принимает узел Telegram Trigger: он получает сообщение, отдаёт его сценарию, а ответ пользователю и сообщение оператору отправляет узел Telegram. Связка работает на токене бота от BotFather и вебхуке, поэтому сначала стоит проверить сетевую часть, а затем писать сценарий. Для заявок и передачи диалога человеку этого хватает, для сложных диалоговых деревьев удобнее специализированные конструкторы ботов.
Заявка из чата
Telegram Trigger принимает события бота: сообщения, нажатия на кнопки, правки и посты в каналах. Узел Telegram отправляет ответы, редактирует и удаляет сообщения, работает с файлами. Доступ даёт токен бота от BotFather, а запуск требует публичного адреса с HTTPS.
Цепочка для заявки выглядит так: человек пишет боту, триггер ловит сообщение, сценарий задаёт уточняющие вопросы, сохраняет данные и сообщает оператору. Каждое звено проверяется отдельно, и сбой одного звена обязан оставлять остальные рабочими.
О платформе в целом рассказывает статья что такое n8n и зачем он бизнесу, а о запуске на своём сервере материал про локальный n8n. Для вебхука Telegram нужен адрес, доступный снаружи, поэтому вопрос размещения решается до первого теста.
Перечень операций и событий уточняйте в справке: узел Telegram в документации n8n обновляется вместе с платформой.
Сбор полей
Заявка полезна, когда в ней есть всё, что нужно оператору: имя, способ связи, суть запроса. Бот собирает поля по шагам, а сценарий хранит состояние диалога между сообщениями, потому что каждое сообщение приходит как отдельное событие.
- Создайте бота через BotFather, сохраните токен в учётных данных n8n и добавьте узел Telegram Trigger на событие сообщения.
- Определите состояние диалога: какого поля сейчас ждёте. Его хранят в таблице или базе по идентификатору чата.
- После каждого сообщения проверьте формат: телефон с цифрами, электронная почта с собакой, текст запроса длиннее одного слова.
- При некорректном ответе повторите вопрос с пояснением и счётчиком попыток, чтобы диалог завершился за разумное число шагов.
- Когда поля собраны, запишите заявку в таблицу или CRM и отправьте пользователю подтверждение с кратким пересказом.
Небольшая клиника принимает заявки на запись. Бот спрашивает имя, телефон, услугу и желаемый день, проверяет телефон по формату и сохраняет заявку в таблицу. Администратор получает карточку в служебный чат и звонит клиенту. Первая версия собирается быстро, а настоящая работа начинается, когда нужно решить, что делать с дублями, повторными обращениями и просьбами перенести запись.
Клавиатуры с кнопками снижают число ошибок: нажатие приходит как обратный вызов (callback), и для него в триггере есть отдельное событие. Выбор из списка надёжнее свободного текста там, где вариантов немного: тема обращения, удобное время, город.
Передача человеку
Бот решает типовые вопросы, а нестандартные должен отдать человеку без потери контекста. Передача состоит из условия, уведомления и закрепления диалога за оператором.
| Когда передаём | Что получает оператор | Что видит клиент |
|---|---|---|
| Клиент просит человека словами или кнопкой | Карточка с полями и последними сообщениями | Сообщение о передаче и ожидаемом времени ответа |
| Бот трижды переспросил без результата | Те же данные и пометка о затруднении | Извинение и переход к оператору |
| Тема из списка чувствительных | Карточка с темой и приоритетом | Нейтральное сообщение о передаче специалисту |
| Вне рабочего времени | Заявка в очереди на утро | Честное сообщение, когда ответят |
Следите и за обратным направлением: клиент должен иметь возможность вернуться к боту после разговора с человеком. Пометка «диалог закрыт оператором» в карточке возвращает автоматику в нормальный режим, а без неё бот продолжит отвечать поверх живой переписки или замолчит навсегда. Состояние диалога хранится в той же таблице, где лежит текущий шаг.
Оператору отправляйте сообщение в служебный чат или личное сообщение с карточкой и кнопкой «беру в работу»: нажатие фиксирует ответственного и защищает от ситуации, когда двое отвечают одному клиенту. Подробнее о разделении ответственности между ботом и человеком мы писали в статье про голосового бота в Telegram, схема передачи там такая же.
Какие заявки вы принимаете в Telegram сейчас?
Сравнение с Make
Для Telegram есть несколько способов: n8n, Make, конструкторы ботов. Выбор определяется тем, кто будет поддерживать решение и где должны лежать данные.
- n8n выигрывает, когда нужен свой сервер, гибкая логика и контроль над данными заявок. Цена выбора — настройка сети и обновлений на вашей стороне.
- Make удобен, когда нужна быстрая сборка без сервера и готовые шаблоны. Пример связки бота с таблицей разобран в статье про Make и Google Таблицы, а общее сравнение платформ — в материале n8n или Make.
- Конструкторы ботов подходят, когда нужно дерево диалога с кнопками и минимум интеграций, а сложной логики нет.
Выбор определяют три вопроса: где хранятся заявки, кто чинит сбой ночью, насколько сложна логика. Если ответы приводят к собственному серверу и интеграциям с внутренними системами, n8n оправдан. Если нужен простой бот с анкетой, достаточно более лёгкого инструмента.
Подводные камни
Заведите и тестовую среду: отдельный бот, отдельная таблица и отдельный служебный чат. Тогда эксперименты со сценарием остаются вдали от клиентов, а каждое изменение сначала проходит на тестовых заявках. Привычка кажется лишней ровно до того дня, когда тестовая запись попадает в рабочий список и оператор звонит несуществующему клиенту.
Отправьте боту тестовое сообщение сразу после настройки триггера и убедитесь, что выполнение появилось в списке запусков. Нет запуска — ищите причину в адресе вебхука, HTTPS и сетевых настройках сервера, а сценарий пока оставьте в покое.
Документация n8n называет три частые проблемы. Первая: ошибка о необходимости HTTPS-адреса вебхука. Она возникает за обратным шлюзом без заданной переменной WEBHOOK_URL с публичным адресом, а для Telegram адрес обязан начинаться с https. Вторая: сценарий работает то в тесте, то в рабочем режиме. Telegram допускает один вебхук на бота, и каждое переключение между тестовым и рабочим адресом перезаписывает регистрацию. Решение — отдельный бот для тестов либо временное отключение рабочего сценария.
Третья проблема — вечное ожидание события при тестировании. Она часто связана с отсутствием поддержки веб-сокетов в настройках шлюза перед n8n. Проверьте конфигурацию Nginx, Caddy или другого сервера и включите проксирование веб-сокетов.
Закройте и вопрос злоупотреблений. Публичный бот получает спам и повторные сообщения, поэтому в сценарий добавляют ограничение частоты по идентификатору чата, проверку длины текста и чёрный список. Для заявок полезно сверять новую запись с недавними: одинаковый телефон и тема за последний час означают дубль, и оператору достаточно одной карточки.
Напоследок о данных: переписка с клиентами содержит персональные данные, поэтому определите срок хранения, доступ операторов и место, где лежат заявки. Построение такого процесса с регламентом мы описываем на странице про чат-боты для бизнеса.