Автоматизация процессов в n8n: Практика с Telegram

Практический курс по освоению low-code платформы n8n с упором на создание функциональных ботов. Вы научитесь настраивать рабочие процессы, обрабатывать данные и интегрировать Telegram с внешними сервисами.

1. Введение в n8n: установка, обзор интерфейса и архитектура рабочих процессов

Введение в n8n: установка, обзор интерфейса и архитектура рабочих процессов

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

В этой первой статье мы разберем фундамент: что такое n8n, как его запустить и как устроен его «мозг». Даже если вы никогда не писали код, к концу этого урока вы будете понимать, как строятся логические цепочки автоматизации.

Что такое n8n и почему это выбор профессионалов?

n8n (произносится как «n-eight-n») — это инструмент для автоматизации рабочих процессов, который позволяет связывать различные приложения между собой. Представьте, что это цифровой клей, который соединяет Telegram, Google Таблицы, CRM-системы, почту и тысячи других сервисов.

В отличие от популярных аналогов (например, Zapier или Make), n8n обладает уникальной особенностью — это fair-code продукт. Это означает, что вы можете:

  • Использовать облачную версию (SaaS) для быстрого старта.
  • Установить n8n на свой собственный сервер бесплатно и не зависеть от лимитов на количество операций.
  • !n8n выступает в роли центрального хаба, объединяющего различные сервисы в единую экосистему.

    Почему мы фокусируемся на Telegram?

    Telegram в связке с n8n превращается из простого мессенджера в мощный пульт управления бизнесом или личными делами. Вы сможете:

    * Получать уведомления о заказах. * Управлять серверами через чат-ботов. * Собирать заявки и автоматически отправлять их в базу данных. * Создавать сложные воронки продаж.

    Установка n8n: Первые шаги

    Чтобы начать работать, нам нужна среда. Существует три основных способа запуска n8n:

  • n8n Cloud: Самый простой способ. Вы регистрируетесь на официальном сайте, платите подписку и сразу получаете готовый инструмент. Идеально для тех, кто не хочет возиться с серверами.
  • Desktop App: Приложение для Windows или Mac. Отлично подходит для обучения и тестирования локально, но не подходит для круглосуточной работы ботов (так как компьютер должен быть включен).
  • Self-hosted (Docker): Золотой стандарт для профессионалов. Вы арендуете недорогой VPS-сервер и разворачиваете n8n там. Это дает полный контроль над данными и отсутствие лишних затрат.
  • Для целей нашего курса мы будем рассматривать интерфейс, который идентичен во всех версиях. Однако, если вы хотите попробовать прямо сейчас бесплатно и без сервера, рекомендую скачать Desktop-версию или использовать команду Docker, если у вас установлен Docker Desktop:

    После запуска интерфейс будет доступен в браузере по адресу http://localhost:5678.

    Обзор интерфейса: Ваша мастерская

    Когда вы впервые открываете n8n, вы видите рабочее пространство, похожее на чистый лист бумаги в клеточку. Давайте разберем основные элементы управления.

    !Интерфейс редактора n8n с выделенными ключевыми зонами управления.

    1. Холст (Canvas)

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

    2. Панель узлов (Nodes Panel)

    Нажав на кнопку + или кликнув правой кнопкой мыши по холсту, вы открываете библиотеку узлов. Здесь находятся интеграции с сервисами (например, Telegram, Google Sheets) и вспомогательные инструменты (If, Merge, Set).

    3. Панель управления (Workflow Controls)

    Находится сверху или сбоку (в зависимости от версии). Главные кнопки: * Execute Workflow: Запустить процесс один раз для теста. * Active: Переключатель, который переводит ваш сценарий в боевой режим (он начинает слушать события постоянно).

    Архитектура рабочего процесса (Workflow)

    Любой процесс автоматизации в n8n состоит из двух базовых сущностей: Узлов (Nodes) и Соединений (Connections).

    Узлы (Nodes)

    Узел — это шаг в вашем алгоритме. Каждый узел выполняет конкретное действие. Узлы делятся на два типа:

  • Триггеры (Triggers): Это то, что запускает процесс. У них обычно нет входа слева, только выход справа.
  • Пример:* Telegram Trigger — срабатывает, когда боту пишут сообщение. Пример:* Schedule Trigger — срабатывает по расписанию (например, каждое утро в 9:00).

  • Действия (Actions): Это то, что происходит после запуска. Они обрабатывают данные.
  • Пример:* Google Sheets — записать строку в таблицу. Пример:* Telegram — отправить ответное сообщение.

    Соединения (Connections)

    Это линии, соединяющие узлы. Они показывают, в каком порядке выполняются действия и как передаются данные. Данные в n8n текут слева направо.

    !Простейшая архитектура: Триггер запускает Действие, передавая данные по соединению.

    Данные в n8n: Понимаем JSON

    Самый важный концепт, который нужно усвоить: n8n общается на языке JSON.

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

    Почему это важно?

    Потому что следующий узел (например, запись в таблицу) должен знать, какую именно часть этого сообщения взять. Вы не просто говорите «запиши сообщение», вы настраиваете: «возьми значение из поля text и запиши в колонку А, а значение from.username запиши в колонку B».

    В интерфейсе n8n это делается визуально (drag-and-drop), но понимание того, что под капотом лежит JSON-структура, критически важно для создания сложных ботов.

    Практический пример логики: Эхо-бот

    Давайте представим архитектуру простейшего Telegram-бота, которого мы создадим в следующих уроках. Его задача — повторять то, что написал пользователь.

    Логическая цепочка будет выглядеть так:

  • Start: Пользователь пишет боту.
  • Telegram Trigger Node: Ловит это событие. На выходе он выдает JSON с текстом сообщения и ID чата пользователя.
  • Telegram Node (Action): Получает данные от триггера. В настройках этого узла мы указываем:
  • Chat ID*: взять из предыдущего узла (чтобы знать, кому отвечать). Text*: взять текст сообщения из предыдущего узла.

    Это и есть суть автоматизации в n8n: Получить данные -> Обработать -> Передать дальше.

    Заключение

    Сегодня мы познакомились с n8n, узнали, как его установить, и разобрали анатомию рабочего процесса. Мы выяснили, что магия автоматизации строится на простых блоках-узлах, соединенных линиями, по которым текут данные в формате JSON.

    В следующей статье мы перейдем от теории к практике: создадим вашего первого Telegram-бота, получим API-токен от BotFather и настроим первый реальный триггер в n8n.

    2. Базовые узлы и манипуляция данными: работа с JSON, выражениями и логикой IF

    Базовые узлы и манипуляция данными: работа с JSON, выражениями и логикой IF

    В предыдущей статье мы установили n8n и познакомились с его интерфейсом. Мы узнали, что данные в системе передаются в формате JSON. Но просто передавать данные от триггера к действию — это лишь верхушка айсберга. Настоящая магия автоматизации начинается тогда, когда вы учите своего бота принимать решения и изменять данные на лету.

    Сегодня мы превратим нашего простого «Эхо-бота» в умного помощника. Мы разберем, как фильтровать сообщения, как создавать переменные и как использовать самый мощный инструмент n8n — Выражения (Expressions).

    Поток данных: Как n8n «видит» информацию

    Прежде чем мы начнем добавлять узлы, важно закрепить понимание структуры данных. В n8n данные всегда перемещаются в виде массива объектов JSON.

    Даже если Telegram прислал всего одно сообщение, n8n видит его как список, состоящий из одного элемента. Это выглядит примерно так:

    Почему это важно? Потому что любой узел, который вы добавляете в схему, будет пытаться обработать каждый элемент этого списка по очереди. Если на вход узлу придет список из 100 строк таблицы Google Sheets, узел выполнится 100 раз.

    !Визуализация того, как массив JSON-объектов проходит через узел обработки.

    Выражения (Expressions): Сердце динамики

    Представьте, что вы хотите, чтобы бот здоровался с пользователем по имени. Вы не можете просто написать в настройках узла «Привет, Иван», потому что следующим может написать «Мария».

    Вам нужен динамический заполнитель. В n8n это называется Expression.

    Почти любое поле в настройках любого узла можно превратить в выражение. Это делается нажатием на иконку шестеренки рядом с полем или переключением тумблера Fixed / Expression.

    Как создать выражение?

    Самый простой способ — Drag-and-Drop (перетаскивание):

  • Откройте настройки узла (например, Telegram Action).
  • Слева вы увидите панель Input Data (Входящие данные). Это данные, пришедшие из предыдущего шага.
  • Найдите нужное поле (например, first_name внутри объекта from).
  • Просто перетащите это поле мышкой в текстовое поле настроек.
  • В поле появится конструкция вида:

    Или отформатировать его в привычный вид:

    Это особенно полезно, если вы ведете логи в Google Таблицах или планируете отложенные сообщения.

    Заключение

    Сегодня мы освоили фундамент логики в n8n:

  • JSON — это контейнер, в котором путешествуют ваши данные.
  • Expressions (Выражения) — это способ достать данные из контейнера и использовать их.
  • Set — помогает навести порядок в данных.
  • If — позволяет создавать сценарии с ветвлением.
  • Этих инструментов уже достаточно, чтобы создавать чат-ботов поддержки, простые автоответчики и системы сортировки заявок.

    В следующей статье мы выйдем за пределы Telegram и научимся подключать Google Таблицы, чтобы сохранять историю переписки и создавать базы данных пользователей.

    3. Подключение Telegram: создание бота через BotFather и настройка учетных данных

    Подключение Telegram: создание бота через BotFather и настройка учетных данных

    Мы прошли важный путь: установили n8n, изучили интерфейс, разобрались с JSON и научились строить логические ветвления с помощью IF. Но пока наши знания остаются теоретическими, запертыми внутри локального сервера. Пришло время открыть дверь в реальный мир.

    В этой статье мы создадим вашего первого Telegram-бота. Мы не будем писать код на Python или JavaScript — всю тяжелую работу возьмет на себя n8n. Однако, чтобы n8n мог управлять ботом, ему нужны «ключи». Сегодня мы получим эти ключи у «Отца всех ботов» и научим n8n ими пользоваться.

    Что такое Telegram-бот с технической точки зрения?

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

    Когда вы пишете сообщение боту, оно улетает на серверы Telegram. Серверы Telegram «видят», что сообщение адресовано боту, и пересылают это сообщение на тот адрес, который мы укажем (в нашем случае — в n8n).

    Чтобы серверы Telegram знали, что именно вы (а не хакер) имеете право управлять этим ботом, используется специальный секретный ключ — API Token.

    !Схематичное изображение того, как API Token служит пропуском для передачи сообщений от серверов Telegram в вашу систему n8n.

    Шаг 1: Визит к BotFather

    В Telegram существует иерархия. Чтобы создать нового бота, нужно обратиться к главному боту — BotFather. Это официальный инструмент Telegram для регистрации и настройки ботов.

    Поиск BotFather

  • Откройте Telegram.
  • В строке поиска введите @BotFather.
  • Важно: Убедитесь, что у найденного аккаунта стоит синяя галочка верификации. Существует много подделок, которые пытаются украсть данные.
  • Создание нового бота

    Нажмите кнопку Start (или «Запустить»), чтобы начать диалог. BotFather пришлет список доступных команд. Нас интересует команда создания нового бота.

    Введите или выберите из списка команду:

    BotFather задаст вам два вопроса. Здесь новички часто путаются, поэтому разберем их подробно.

    #### 1. Имя бота (Name) BotFather спросит: "Alright, a new bot. How are we going to call it? Please choose a name for your bot."

    Это то имя, которое будет отображаться в списке чатов и в заголовке диалога. * Можно использовать русский язык. * Можно использовать пробелы и эмодзи. * Это имя можно изменить в любой момент.

    Пример: Мой Умный Помощник 🤖

    #### 2. Юзернейм бота (Username) BotFather спросит: "Good. Now let's choose a username for your bot. It must end in bot. Like this, for example: TetrisBot or tetris_bot."

    Это уникальный идентификатор бота (ссылка на него). * Только латиница, цифры и подчеркивания. * Никаких пробелов. * Обязательно должно заканчиваться на bot. * Должно быть уникальным на весь Telegram (если имя занято, придется придумать другое).

    Пример: my_n8n_course_test_bot

    !Скриншот или макет диалога с BotFather, демонстрирующий процесс создания бота и получение токена.

    Получение Токена

    Если вы все сделали правильно, BotFather поздравит вас и пришлет длинное сообщение. В нем будет строка, которая выглядит примерно так:

    123456789:ABCdefGHIjklMNOpqrsTUVwxyz

    Это и есть ваш API Token.

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

    Скопируйте этот токен. Он понадобится нам через минуту.

    Шаг 2: Учетные данные (Credentials) в n8n

    Теперь переходим в интерфейс n8n. Одной из лучших функций n8n является система управления доступами, которая называется Credentials.

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

    Настройка Credentials

  • Откройте n8n.
  • В левом меню найдите иконку ключа или раздел Credentials.
  • Нажмите кнопку Add Credential (Добавить учетные данные).
  • В строке поиска введите Telegram.
  • Выберите Telegram API.
  • Откроется окно настройки. Обычно n8n предлагает несколько вариантов подключения, но для Telegram все просто.

    * Name: Вы можете оставить стандартное название или написать свое, например, My Test Bot. Это полезно, если у вас будет несколько ботов. * Access Token: Вставьте сюда тот самый токен, который вы скопировали у BotFather.

    Нажмите кнопку Save (Сохранить).

    Если токен верный, n8n может показать уведомление "Connection tested successfully" (в зависимости от версии). Теперь ваш n8n имеет официальное право управлять этим ботом.

    !Окно добавления новых учетных данных в n8n, куда вставляется API Token.

    Шаг 3: Проверка связи

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

  • Создайте новый Workflow (рабочий процесс).
  • Нажмите + и добавьте узел Telegram Trigger.
  • В настройках узла найдите поле Credential to connect with.
  • В выпадающем списке выберите то название, которое вы создали на предыдущем шаге (My Test Bot).
  • В поле Updates выберите Message (мы хотим реагировать на сообщения).
  • Теперь самое интересное:

  • Нажмите кнопку Listen for Test Event (Слушать тестовое событие) в окне узла.
  • Откройте Telegram, найдите своего бота (по юзернейму, который вы придумали) и нажмите Start или напишите ему «Привет».
  • Вернитесь в n8n.
  • Если все настроено верно, через секунду окно ожидания исчезнет, и вы увидите зеленый индикатор успеха. В правой части окна появятся данные в формате JSON:

    Поздравляю! Вы только что «поймали» свое первое событие из внешнего мира.

    Частые ошибки и их решение

    Иногда связь не устанавливается с первого раза. Вот список самых популярных проблем:

  • Неверный токен: Вы могли случайно скопировать пробел в начале или в конце токена. Проверьте поле Credentials, удалите лишние пробелы.
  • Бот уже используется: Один токен может использоваться только одной системой одновременно для получения обновлений (Long Polling). Если вы запустили этого бота в другой программе или другом экземпляре n8n, текущий экземпляр может конфликтовать.
  • Privacy Mode: По умолчанию боты не видят сообщения в групповых чатах, если к ним не обращаются напрямую. Если вы тестируете бота в группе, убедитесь, что дали ему права администратора или отключили Privacy Mode через BotFather (команда /setprivacy).
  • Безопасность и лучшие практики

    Работа с API-токенами требует дисциплины. Вот несколько правил, которые спасут вас от проблем в будущем:

    * Разделяйте среды: Если вы делаете серьезный проект, создайте двух ботов: MyProjectBot (для клиентов) и MyProject_DevBot (для тестов). В n8n создайте два Credential. Тестируйте логику на тестовом боте, и только когда все работает идеально, переключайте на основного. * Регулярная смена токенов: Если вы подозреваете, что ваш токен узнал кто-то посторонний, зайдите в BotFather и используйте команду /revoke. Старый токен перестанет работать, и вам выдадут новый. Не забудьте обновить его в n8n!

    Заключение

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

    Мы научились:

  • Регистрировать ботов через BotFather.
  • Понимать разницу между именем и юзернеймом.
  • Безопасно сохранять API-токены в системе Credentials n8n.
  • Получать первые данные от живого пользователя.
  • Теперь у нас есть всё необходимое: понимание JSON, умение строить логику IF и работающее подключение к мессенджеру. В следующей статье мы объединим эти знания и создадим полноценного бота, который будет не просто слушать, но и выполнять полезную работу — например, сохранять заметки или пересылать важные уведомления.

    4. Продвинутая работа с Telegram: вебхуки, обработка команд и создание интерактивных кнопок

    Продвинутая работа с Telegram: вебхуки, обработка команд и создание интерактивных кнопок

    В предыдущих статьях мы прошли путь от установки n8n до подключения вашего первого бота. Вы уже умеете получать сообщения и отправлять простые текстовые ответы. Но современные боты — это не просто автоответчики. Это полноценные приложения с меню, кнопками и сложной навигацией.

    Сегодня мы превратим вашего линейного бота в интерактивный инструмент. Мы разберем, как научить n8n различать команды (например, /start и /help), как создавать красивые кнопки прямо под сообщениями и, самое главное, как обрабатывать нажатия на эти кнопки.

    Архитектура интерактивного бота

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

    Когда пользователь пишет текст, бот должен понять: это команда? Это ответ на вопрос? Или просто флуд?

    !Логическая схема маршрутизации входящих событий через узел Switch.

    Чтобы реализовать такую логику, нам понадобятся два ключевых концепта:

  • Маршрутизация (Routing): Разделение потока данных в зависимости от того, что именно прислал пользователь.
  • Интерактивность (Interactivity): Использование кнопок (Inline Keyboards) для управления действиями, вместо ввода текста вручную.
  • Обработка команд и узел Switch

    В прошлой статье мы использовали узел If, чтобы проверить, написал ли пользователь /start. Но что, если у нас пять команд: /start, /help, /settings, /buy, /contact? Строить лесенку из пяти узлов If — это долго и некрасиво.

    Для таких задач в n8n существует узел Switch (Переключатель).

    Как работает Switch?

    Узел Switch работает как сортировочная станция. У него есть один вход и много выходов. Вы задаете правила, и данные улетают в тот выход, которому они соответствуют.

    Настройка маршрутизации команд:

  • Добавьте узел Switch после Telegram Trigger.
  • В поле Data Type выберите String (Строка).
  • В поле Value 1 (Значение для проверки) используйте выражение: {{ json.message.text.
  • * Если это кнопка: данные лежат в json.callback_query }}. * True (Это кнопка): Идем обрабатывать нажатие. * False (Это текст): Идем обрабатывать команды (/start и т.д.).

    В ветке обработки кнопок мы снова ставим Switch, который смотрит на {{ json.callback_query.id }}.

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

    Вебхуки (Webhooks) и Production Mode

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

    Когда вы нажимаете кнопку Listen for Test Event (Слушать тестовое событие) в редакторе n8n, система временно подключается к Telegram методом Long Polling (постоянно спрашивает: «Есть новые письма?»).

    Но когда вы хотите, чтобы бот работал 24/7 без открытого редактора, вы должны активировать рабочий процесс (переключатель Active в правом верхнем углу).

    В этот момент n8n автоматически регистрирует Webhook в Telegram. Вебхук — это просьба: «Telegram, как только тебе придет сообщение для моего бота, мгновенно отправь его по этому адресу».

    Вам не нужно настраивать вебхуки вручную (как это делается при программировании на Python/PHP), n8n делает это за вас. Но важно помнить:

    * Для работы вебхуков ваш n8n должен быть доступен из интернета (иметь публичный адрес). * Если вы используете локальную версию (localhost), вебхуки работать не будут без туннелирования.

    Практическое задание: Собираем меню

    Давайте объединим всё в единую схему.

    Задача: Бот должен по команде /start выдавать меню с двумя кнопками. При нажатии на кнопки он должен присылать разный текст.

    Пошаговая схема:

  • Telegram Trigger: Включены updates Message и Callback Query.
  • If (Проверка типа): Есть ли callback_query?
  • * NO (Текст): Идем в Switch (Команды). * Если /start -> Telegram Action: Отправить сообщение «Выберите действие» с Inline-кнопками (btn_1, btn_2). * YES (Кнопка): 1. Telegram Action: Answer Callback Query (снимаем загрузку). 2. Switch (Кнопки): Проверяем callback_query.data. * Если btn_1 -> Отправить текст «Вы нажали кнопку 1». * Если btn_2 -> Отправить текст «Вы нажали кнопку 2».

    !Итоговая архитектура бота с меню и обработкой нажатий.

    Заключение

    Поздравляю! Вы перешли из лиги новичков в лигу разработчиков интерфейсов. Теперь ваши боты могут не просто болтать, а предоставлять удобный сервис через кнопки и меню.

    Мы изучили:

  • Как маршрутизировать потоки данных через узел Switch.
  • Как создавать Inline-кнопки с невидимыми данными (callback_data).
  • Как настраивать триггер на прием кликов и правильно отвечать на них.
  • В следующей статье мы займемся памятью бота. Мы подключим Google Таблицы, чтобы записывать туда заказы пользователей и вести учет заявок.

    5. Реальный кейс: создание системы сбора заявок из Telegram в Google Таблицы

    Реальный кейс: создание системы сбора заявок из Telegram в Google Таблицы

    Мы прошли большой путь: от установки n8n до создания интерактивного меню с кнопками. Теперь ваш бот умеет красиво выглядеть и реагировать на нажатия. Но пока у него есть один существенный недостаток — у него «короткая память». Как только сообщение исчезает из чата, данные о нем пропадают.

    В этой статье мы превратим вашего бота в полноценный бизнес-инструмент. Мы создадим систему, которая автоматически собирает заявки от пользователей и аккуратно складывает их в Google Таблицу. Это база для любой CRM, системы поддержки или интернет-магазина.

    Почему Google Таблицы?

    Для начинающих автоматизаторов Google Sheets (Google Таблицы) — это идеальная база данных.

  • Бесплатно и доступно: Вам не нужно разворачивать SQL-сервер.
  • Визуально: Вы всегда можете зайти в таблицу и поправить данные руками.
  • Интегрируемо: n8n имеет великолепную встроенную поддержку Google Sheets.
  • !Общая схема движения данных от пользователя к таблице через n8n.

    Подготовка плацдарма: Создаем таблицу

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

  • Зайдите в Google Таблицы и создайте новую таблицу. Назовем её Telegram_Leads.
  • В первой строке (заголовки) создайте следующие колонки:
  • * A: Date (Дата заявки) * B: User ID (ID пользователя) * C: Name (Имя клиента) * D: Username (Никнейм) * E: Request (Текст заявки)

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

    Настройка доступа: Credentials для Google

    Это самый технически сложный момент урока, но его нужно сделать один раз.

  • В n8n добавьте новый узел Google Sheets.
  • В настройках узла найдите поле Credential to connect with.
  • Выберите Create New.
  • Выберите тип аутентификации. Самый простой для старта — Sign in with Google (OAuth2).
  • Следуйте инструкциям n8n. Вам нужно будет войти в свой Google-аккаунт и разрешить n8n доступ к редактированию таблиц.
  • После успешного подключения вы увидите надпись Connection tested successfully.

    Строим логику: От сообщения к строке в таблице

    Вспомним нашу архитектуру из прошлой статьи. У нас есть узел Switch, который отделяет команды (например, /start) от обычного текста.

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

    Шаг 1: Настройка узла Google Sheets

    Подключите узел Google Sheets к выходу вашего Switch (или If), который отвечает за «Обычный текст» (ветка Default или False).

    Настроим параметры узла:

    * Resource: Sheet (Работаем с листом). * Operation: Append (Добавить строку). Это критически важно: мы хотим добавлять новые заявки вниз, а не перезаписывать старые. * Document: Найдите вашу таблицу Telegram_Leads в списке (или вставьте её ID из адресной строки браузера). * Sheet: Выберите лист (обычно Лист1 или Sheet1).

    Шаг 2: Маппинг данных (Mapping)

    Теперь самое интересное. n8n загрузит заголовки вашей таблицы и покажет их как поля для заполнения. Нам нужно перетащить данные из Telegram в эти поля.

    Внизу настроек узла вы увидите раздел Columns (или Mapping).

  • Date: Нажмите на шестеренку -> Expression. Введите формулу для текущего времени:
  • ``javascript {{ json.message.from.id }}

  • Name: Перетащите message.from.first_name.
  • Выражение: {{ json.message.from.username }}

  • Request: Перетащите сам текст сообщения message.text.
  • Выражение: {{ json.message.from.id }} (обратите внимание, данные могут пробрасываться через узлы, но надежнее брать ID из исходного триггера или использовать ссылки на предыдущие узлы).
  • Text: Напишите что-то вроде:
  • > «Спасибо, {{ node["Google Sheets"].json["rowNumber"] }}. Мы свяжемся с вами скоро.»

    Обратите внимание на переменную rowNumber. Узел Google Sheets после выполнения выдает номер строки, в которую он записал данные. Это отличный способ дать клиенту номер его заказа.

    Тестирование системы

    Теперь проверим, как это работает в сборе.

  • Нажмите Execute Workflow (или активируйте рабочий процесс).
  • Откройте Telegram и напишите боту: «Хочу заказать консультацию по автоматизации».
  • Смотрите в n8n: поток должен пройти через Switch -> Google Sheets -> Telegram Reply.
  • Откройте вашу Google Таблицу. Там должна появиться новая строка с вашим именем, датой и текстом сообщения.
  • В Telegram должно прийти подтверждение.
  • Обработка ошибок (Error Handling)

    В реальном мире таблицы иногда удаляют, или у Google заканчиваются лимиты API. Хороший тон — предусмотреть это.

    В настройках узла Google Sheets (в самом низу) есть опция On Error -> Continue. Если вы выберете её, то даже если запись не удастся, процесс не упадет.

    Однако лучше использовать специальный выход Error Output (доступен в настройках узла). Если запись не удалась, вы можете отправить сообщение администратору (себе) в Telegram: «Внимание! Заявка не записалась в таблицу!».

    Расширение функционала: Статусы заявок

    Вы можете пойти дальше. Поскольку Google Таблицы — это двусторонняя связь, вы можете создать отдельный сценарий n8n, который:

  • Следит за изменениями в Таблице (триггер Google Sheets Trigger).
  • Если вы меняете в таблице статус заявки с «Новая» на «В работе»,
  • Бот автоматически пишет пользователю: «Ваш заказ передан в работу».
  • Это превращает простую таблицу в настоящую панель управления заказами.

    Заключение

    Сегодня мы сделали огромный шаг вперед. Ваш бот перестал быть игрушкой и стал инструментом сбора данных.

    Мы научились:

  • Подключать Google Sheets к n8n.
  • Использовать операцию Append для добавления строк.
  • Маппить (связывать) JSON-данные с колонками таблицы.
  • Форматировать дату с помощью Luxon.
  • Возвращать пользователю номер созданной заявки.
  • В следующей статье мы разберем еще более мощную тему: HTTP Request. Мы научимся подключать сервисы, для которых в n8n нет готовых узлов, используя их API напрямую. Это откроет вам доступ к погоде, курсам валют и нейросетям.