Автоматическая обработка заявок из Telegram в Google Sheets через n8n

n8n — автоматизация

Эй, кто тут опять притащил в мастерскую чат-бота, таблицу и кипу заявок? Заходи, сейчас покажу, как я это собираю так, чтобы менеджер не ловил клиентов сачком по перепискам.

Если коротко, автоматическая обработка заявок из Telegram в Google Sheets через n8n нужна, когда хочется перестать копировать сообщения руками. Клиент пишет в бота, данные сразу летят в таблицу, новая строка получает статус, менеджер видит контакт, а дальше можно подключить уведомления, дедупликацию, сортировку по источнику и даже умную классификацию.

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

Быстрый ответ

  • Принимаем сообщение или контакт в Telegram-боте.
  • В n8n вытаскиваем имя, username, телефон, текст заявки, дату и служебный идентификатор.
  • Проверяем, не существует ли уже такая заявка по телефону, username или lead_id.
  • Если запись новая, добавляем строку в Google Sheets. Если старая, обновляем статус или комментарий.
  • Параллельно отправляем уведомление менеджеру и ставим контрольный статус: «новая», «в работе», «закрыта».
Как было рукамиКак работает через n8n
Открываешь Telegram, копируешь имя и текстTelegram Trigger ловит событие сразу после сообщения
Вставляешь данные в таблицу и молишься, чтобы не промахнуться строкойGoogle Sheets сам получает подготовленные поля в нужные колонки
Путаешь дубли и теряешь историюWorkflow проверяет совпадение по ключу и обновляет существующую запись
Менеджер замечает новую заявку, когда уже поздноБот или внутренний чат получает уведомление сразу после записи

Оглавление

  1. Где эта связка реально экономит время
  2. Какая схема работает у меня чаще всего
  3. Какие поля стоит хранить в Google Sheets
  4. Какие узлы понадобятся в n8n
  5. Пошаговая сборка сценария
  6. Как не плодить дубли
  7. Как добавить статусы и уведомления
  8. Когда стоит подключать ИИ
  9. Частые косяки на старте
  10. Чек-лист перед запуском
  11. FAQ

Где эта связка реально экономит время

Я чаще всего ставлю такую автоматизацию там, где заявки прилетают в мессенджер быстрее, чем кто-то успевает открыть CRM. Это студии, ремонт, локальные услуги, производство под заказ, онлайн-школы, консультации, запись на демо, мелкая розница с доставкой. Пока человек пишет в Telegram, бизнес уже хочет видеть заявку в таблице, отмечать ответственного и не забывать созвон.

Google Sheets тут заходит как понятный всем экран. Менеджер видит строки, владелец смотрит статусы, а я со своей стороны спокойно докручиваю логику в n8n. Для меня n8n — автоматизация, которую удобно растить вместе с процессом: сегодня у тебя одна таблица и один менеджер, а завтра уже статусы, дедупликация, напоминания и отдельный поток ошибок.

Промежуточный вывод: если у вас заявки уже живут в Telegram, а учёт до сих пор держится на памяти менеджера, такая связка окупается очень быстро.

Какая схема работает у меня чаще всего

Мой базовый маршрут обычно выглядит так: человек пишет боту, Telegram Trigger подхватывает событие, дальше Edit Fields собирает чистую структуру данных, IF фильтрует мусор и служебные команды, Google Sheets ищет совпадение по ключу, а потом либо добавляет новую строку, либо обновляет старую. Финальным узлом я почти всегда ставлю уведомление менеджеру в Telegram или отдельный внутренний чат.

Схема в одну строчку выглядит так:

Telegram Trigger → Edit Fields → IF → Google Sheets Lookup → IF → Append / Update → Telegram Notification

Если проект уже оброс мясом, я добавляю ещё два слоя. Первый — отдельный поток ошибок через Error Trigger, чтобы не узнавать о поломке спустя три дня. Второй — маленький блок нормализации: привести телефон к одному формату, обрезать пустые хвосты у текста, проставить created_at и источник заявки.

Какие поля стоит хранить в Google Sheets

Не надо превращать лист в музей случайных колонок. Для нормальной обработки заявок я обычно оставляю такой набор:

  • lead_id — внутренний идентификатор заявки;
  • created_at — дата и время создания;
  • username — username пользователя, если он есть;
  • name — имя или подпись контакта;
  • phone — номер, если бот попросил контакт;
  • message — сам текст заявки;
  • source — откуда пришёл человек: бот, реклама, канал, форма;
  • status — новая, в работе, ждём ответ, закрыта;
  • manager_comment — короткая заметка для команды.

Если хочется чуть больше порядка, можно добавить city, tag, priority и last_update. Но я бы не пытался в первый же вечер собрать суперкомбайн. Чем стройнее таблица на старте, тем проще потом жить.

Какие узлы понадобятся в n8n

УзелЧто делаетЗачем нужен в заявках
Telegram TriggerЛовит входящие события от ботаСтартует workflow сразу после нового сообщения
Edit FieldsСобирает и переименовывает нужные поляДелает данные аккуратными перед записью в таблицу
IFРазветвляет логикуОтделяет новую заявку от дубля или пустого события
Google SheetsЧитает, добавляет и обновляет строкиХранит заявки и статусы в одном месте
TelegramОтправляет сообщенияШлёт уведомления менеджеру или ответ клиенту
Error TriggerЛовит ошибки другого workflowПомогает не прозевать падение сценария

Пошаговая сборка сценария

1. Создаём бота и подключаем его к n8n

Сначала поднимаем Telegram-бота и добавляем токен в credentials. Тут важен один практический момент: пока тестируете цепочку, не перепутайте тестовый и боевой режим workflow. Это один из тех приколов, из-за которых люди полчаса смотрят на пустой canvas и думают, что бот умер.

2. Готовим таблицу

В Google Sheets заранее создаём первую строку с заголовками колонок. Я обычно делаю лист под названием Leads и сразу задаю понятные поля. В n8n первая строка воспринимается как заголовок, так что названия колонок лучше продумать заранее и не менять по десять раз уже после запуска.

3. Нормализуем входящие данные

После Telegram Trigger я ставлю Edit Fields и собираю структуру руками: имя, username, текст, номер телефона, дата, lead_id. Если в боте есть кнопка «Поделиться контактом», телефон приходит куда чище, чем когда пользователь печатает его сам в свободной форме. Для текста заявки я ещё люблю делать trim, чтобы убрать мусор по краям.

4. Проверяем дубли

Вот тут начинается взрослая жизнь. Если просто писать каждое сообщение в новую строку, через неделю таблица станет похожа на гараж после переезда. Я обычно ищу дубль по одному главному ключу и одному запасному: например, по телефону и username, либо по lead_id и телефону. Дальше IF решает, куда вести поток: в append или update.

5. Пишем строку или обновляем существующую

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

6. Уведомляем менеджера

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

Промежуточный вывод: основной секрет тут не в красоте workflow, а в том, чтобы на входе привести данные к одному виду и сразу решить судьбу дублей.

Как не плодить дубли

Если честно, дубли — это самая частая головная боль в такой автоматизации. И лечится она не героизмом менеджера, а нормальной логикой. Вот что реально работает:

  • держите уникальный ключ заявки;
  • приводите телефон к одному формату;
  • не создавайте пустые строки после удалённых записей в таблице;
  • для повторного обращения обновляйте запись, а не клонируйте её;
  • добавьте колонку last_update, чтобы видеть последнее касание.

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

Как добавить статусы и уведомления

Голая запись в таблицу — это ещё не обработка заявок. Нужен маршрут после попадания строки в лист. Я обычно делаю три простых статуса: «новая», «в работе», «закрыта». Иногда добавляю «перезвонить» и «ждём ответ клиента».

Дальше можно пойти двумя дорогами:

  • либо менеджер меняет статус руками в Google Sheets;
  • либо n8n сам двигает статус по событиям, например после ответа клиенту или внутреннего уведомления.

Тут же удобно прикрутить напоминания. Если заявка висит в статусе «новая» дольше нужного времени, workflow шлёт пинок в Telegram. Когда команда небольшая, такой пинок экономит кучу нервов и не даёт горячим лидам остыть.

Когда стоит подключать ИИ

Я не сторонник лепить нейросеть на каждый винтик. Но в этой теме ИИ действительно полезен, когда входящие заявки приходят в свободной форме и надо быстро понять смысл текста. Например, модель может вытащить город, тип услуги, желаемую дату, бюджет и срочность, а потом положить это в отдельные колонки.

Ещё один удачный сценарий — короткое summary для менеджера. Вместо огромного полотна текста он получает пару внятных строк: что хочет клиент, насколько срочно и кому это лучше отдать. Для небольшого отдела продаж это прям приятный апгрейд.

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

Частые косяки на старте

  • Бот молчит. Чаще всего проблема в режиме теста, webhook или токене.
  • Данные пишутся криво. Обычно виноват этап нормализации: разные форматы телефона, пустые поля, неверные названия колонок.
  • Один лид попадает в лист несколько раз. Значит, логика поиска дубля либо слабая, либо ключ выбран неудачно.
  • Уведомление не уходит. Проверьте chat_id и форматирование текста сообщения.
  • При наплыве заявок всё тормозит. Тут уже надо смотреть на очередь, лимиты и поведение production-исполнений.

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

Чек-лист перед запуском

  1. У бота есть токен и он отвечает на стартовую команду.
  2. В n8n заведены credentials для Telegram и Google Sheets.
  3. В таблице создан лист с заголовками колонок.
  4. В Edit Fields собраны только нужные поля.
  5. Настроена проверка дублей.
  6. Есть ветка append и ветка update.
  7. После записи летит уведомление менеджеру.
  8. Подключён Error Trigger или отдельное сообщение об ошибке.
  9. Вы проверили сценарий на новых и повторных заявках.

FAQ

Подойдёт ли такая схема вместо CRM?

Для малого потока заявок — вполне. Если команда растёт, появляются воронки, отчёты и несколько отделов, тогда уже логично думать о CRM. Но на старте Google Sheets плюс n8n часто закрывают задачу очень достойно.

Можно ли обойтись одним Telegram и таблицей?

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

Что лучше брать как уникальный ключ?

Идеально — свой lead_id. На практике ещё помогают телефон, username и связка из нескольких полей. Главное, чтобы правило совпадения было стабильным.

Нужно ли писать код?

В простом сценарии часто хватает стандартных узлов. Код пригодится, если захотите сложную нормализацию, хитрую дедупликацию или нестандартную маршрутизацию.

Можно ли писать не только текст, но и файлы?

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

Подходит ли это для нескольких менеджеров?

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

Вывод

Если смотреть по-ремесленному, вся идея тут простая: заявка не должна жить только в чате. Её надо превратить в запись, назначить ей статус, сохранить историю и дать команде быстрый доступ. Связка Telegram, Google Sheets и n8n делает именно это.

Я бы запускал такую систему в три захода. Сначала приём и запись. Потом проверка дублей и статусы. Потом уведомления, напоминания и, если нужно, ИИ-блок для классификации. Такой путь работает спокойно, предсказуемо и с понятным результатом уже на первом этапе.

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

Оцените статью
Добавить комментарий

Мы используем cookie-файлы для наилучшего представления нашего сайта. Продолжая использовать этот сайт, вы соглашаетесь с использованием cookie-файлов.
Пофиг
Политика конфиденциальности