Заявку из Telegram в n8n принимает узел Telegram Trigger: он получает сообщение, отдаёт его сценарию, а ответ пользователю и сообщение оператору отправляет узел Telegram. Связка работает на токене бота от BotFather и вебхуке, поэтому сначала стоит проверить сетевую часть, а затем писать сценарий. Для заявок и передачи диалога человеку этого хватает, для сложных диалоговых деревьев удобнее специализированные конструкторы ботов.

Заявка из чата

TL;DR

Telegram Trigger принимает события бота: сообщения, нажатия на кнопки, правки и посты в каналах. Узел Telegram отправляет ответы, редактирует и удаляет сообщения, работает с файлами. Доступ даёт токен бота от BotFather, а запуск требует публичного адреса с HTTPS.

Цепочка для заявки выглядит так: человек пишет боту, триггер ловит сообщение, сценарий задаёт уточняющие вопросы, сохраняет данные и сообщает оператору. Каждое звено проверяется отдельно, и сбой одного звена обязан оставлять остальные рабочими.

О платформе в целом рассказывает статья что такое n8n и зачем он бизнесу, а о запуске на своём сервере материал про локальный n8n. Для вебхука Telegram нужен адрес, доступный снаружи, поэтому вопрос размещения решается до первого теста.

Перечень операций и событий уточняйте в справке: узел Telegram в документации n8n обновляется вместе с платформой.

Сбор полей

Заявка полезна, когда в ней есть всё, что нужно оператору: имя, способ связи, суть запроса. Бот собирает поля по шагам, а сценарий хранит состояние диалога между сообщениями, потому что каждое сообщение приходит как отдельное событие.

  1. Создайте бота через BotFather, сохраните токен в учётных данных n8n и добавьте узел Telegram Trigger на событие сообщения.
  2. Определите состояние диалога: какого поля сейчас ждёте. Его хранят в таблице или базе по идентификатору чата.
  3. После каждого сообщения проверьте формат: телефон с цифрами, электронная почта с собакой, текст запроса длиннее одного слова.
  4. При некорректном ответе повторите вопрос с пояснением и счётчиком попыток, чтобы диалог завершился за разумное число шагов.
  5. Когда поля собраны, запишите заявку в таблицу или CRM и отправьте пользователю подтверждение с кратким пересказом.

Небольшая клиника принимает заявки на запись. Бот спрашивает имя, телефон, услугу и желаемый день, проверяет телефон по формату и сохраняет заявку в таблицу. Администратор получает карточку в служебный чат и звонит клиенту. Первая версия собирается быстро, а настоящая работа начинается, когда нужно решить, что делать с дублями, повторными обращениями и просьбами перенести запись.

Клавиатуры с кнопками снижают число ошибок: нажатие приходит как обратный вызов (callback), и для него в триггере есть отдельное событие. Выбор из списка надёжнее свободного текста там, где вариантов немного: тема обращения, удобное время, город.

Передача человеку

Бот решает типовые вопросы, а нестандартные должен отдать человеку без потери контекста. Передача состоит из условия, уведомления и закрепления диалога за оператором.

Когда передаёмЧто получает операторЧто видит клиент
Клиент просит человека словами или кнопкойКарточка с полями и последними сообщениямиСообщение о передаче и ожидаемом времени ответа
Бот трижды переспросил без результатаТе же данные и пометка о затрудненииИзвинение и переход к оператору
Тема из списка чувствительныхКарточка с темой и приоритетомНейтральное сообщение о передаче специалисту
Вне рабочего времениЗаявка в очереди на утроЧестное сообщение, когда ответят

Следите и за обратным направлением: клиент должен иметь возможность вернуться к боту после разговора с человеком. Пометка «диалог закрыт оператором» в карточке возвращает автоматику в нормальный режим, а без неё бот продолжит отвечать поверх живой переписки или замолчит навсегда. Состояние диалога хранится в той же таблице, где лежит текущий шаг.

Оператору отправляйте сообщение в служебный чат или личное сообщение с карточкой и кнопкой «беру в работу»: нажатие фиксирует ответственного и защищает от ситуации, когда двое отвечают одному клиенту. Подробнее о разделении ответственности между ботом и человеком мы писали в статье про голосового бота в Telegram, схема передачи там такая же.

● Discovery · 1 час · бесплатно

Какие заявки вы принимаете в Telegram сейчас?

Прийти на Discovery →

Сравнение с Make

Для Telegram есть несколько способов: n8n, Make, конструкторы ботов. Выбор определяется тем, кто будет поддерживать решение и где должны лежать данные.

  • n8n выигрывает, когда нужен свой сервер, гибкая логика и контроль над данными заявок. Цена выбора — настройка сети и обновлений на вашей стороне.
  • Make удобен, когда нужна быстрая сборка без сервера и готовые шаблоны. Пример связки бота с таблицей разобран в статье про Make и Google Таблицы, а общее сравнение платформ — в материале n8n или Make.
  • Конструкторы ботов подходят, когда нужно дерево диалога с кнопками и минимум интеграций, а сложной логики нет.

Выбор определяют три вопроса: где хранятся заявки, кто чинит сбой ночью, насколько сложна логика. Если ответы приводят к собственному серверу и интеграциям с внутренними системами, n8n оправдан. Если нужен простой бот с анкетой, достаточно более лёгкого инструмента.

Подводные камни

Заведите и тестовую среду: отдельный бот, отдельная таблица и отдельный служебный чат. Тогда эксперименты со сценарием остаются вдали от клиентов, а каждое изменение сначала проходит на тестовых заявках. Привычка кажется лишней ровно до того дня, когда тестовая запись попадает в рабочий список и оператор звонит несуществующему клиенту.

// первая проверка

Отправьте боту тестовое сообщение сразу после настройки триггера и убедитесь, что выполнение появилось в списке запусков. Нет запуска — ищите причину в адресе вебхука, HTTPS и сетевых настройках сервера, а сценарий пока оставьте в покое.

Документация n8n называет три частые проблемы. Первая: ошибка о необходимости HTTPS-адреса вебхука. Она возникает за обратным шлюзом без заданной переменной WEBHOOK_URL с публичным адресом, а для Telegram адрес обязан начинаться с https. Вторая: сценарий работает то в тесте, то в рабочем режиме. Telegram допускает один вебхук на бота, и каждое переключение между тестовым и рабочим адресом перезаписывает регистрацию. Решение — отдельный бот для тестов либо временное отключение рабочего сценария.

Третья проблема — вечное ожидание события при тестировании. Она часто связана с отсутствием поддержки веб-сокетов в настройках шлюза перед n8n. Проверьте конфигурацию Nginx, Caddy или другого сервера и включите проксирование веб-сокетов.

Закройте и вопрос злоупотреблений. Публичный бот получает спам и повторные сообщения, поэтому в сценарий добавляют ограничение частоты по идентификатору чата, проверку длины текста и чёрный список. Для заявок полезно сверять новую запись с недавними: одинаковый телефон и тема за последний час означают дубль, и оператору достаточно одной карточки.

Напоследок о данных: переписка с клиентами содержит персональные данные, поэтому определите срок хранения, доступ операторов и место, где лежат заявки. Построение такого процесса с регламентом мы описываем на странице про чат-боты для бизнеса.

Частые вопросы

Как подключить Telegram к n8n?
Создайте бота в BotFather, сохраните токен в учётных данных n8n, добавьте узел Telegram Trigger для приёма сообщений и узел Telegram для ответов. Вебхуку нужен публичный адрес с HTTPS.
Почему Telegram Trigger в n8n требует HTTPS?
Telegram принимает адрес вебхука только по HTTPS. За обратным шлюзом задайте переменную WEBHOOK_URL с публичным адресом экземпляра и настройте TLS, иначе регистрация вебхука завершится ошибкой.
Почему бот работает только в тесте или только в рабочем режиме?
Telegram допускает один вебхук на бота, и переключение между тестовым и рабочим адресом перезаписывает регистрацию. Заведите отдельного бота для тестов или отключайте рабочий сценарий на время проверки.
Как передать диалог оператору?
Задайте условия передачи, отправьте оператору карточку с полями и последними сообщениями, добавьте кнопку принятия в работу и сообщите клиенту о передаче. Так ответственность фиксируется за одним человеком.
Что выбрать для Telegram-бота: n8n или Make?
n8n подходит для своего сервера, гибкой логики и контроля над данными, Make для быстрой сборки без сервера. Решает вопрос, где хранятся заявки и кто поддерживает решение.