Первые интеграции: создание Telegram-ботов, вебхуки и работа с Google Sheets
В предыдущей статье мы подготовили плацдарм: ваш собственный сервер с n8n. Теперь пришло время превратить его из «пустой коробки» в центр управления бизнесом. Мы не будем начинать с абстрактной теории. Мы сразу построим классическую связку, на которой держится половина автоматизаций малого и среднего бизнеса: Мессенджер + База Данных.
В этой статье мы научимся принимать данные от пользователей через Telegram, обрабатывать их с помощью универсальных вебхуков и сохранять в Google Sheets. Это «Hello World» в мире автоматизации, но именно на этой архитектуре строятся сложные CRM-системы и чат-боты.
Telegram-бот: Ваши глаза и уши
Telegram — идеальный интерфейс для ввода данных. Он быстрый, мобильный и бесплатный. Для n8n Telegram — это просто источник входящих JSON-объектов.
Регистрация бота
Прежде чем настраивать n8n, нам нужно создать сущность бота в самом Telegram. Это делается через отца всех ботов — BotFather.
Откройте Telegram и найдите @BotFather.
Отправьте команду /newbot.
Придумайте имя (как бот будет подписан в списке чатов) и username (уникальный идентификатор, заканчивающийся на bot).
В ответ вы получите API Token. Это длинная строка символов. Никому её не показывайте. Тот, у кого есть токен, управляет ботом.Настройка Telegram Trigger в n8n
Вернемся в интерфейс n8n. Нам нужен узел, который будет «слушать» сообщения.
Нажмите + (Add Node) и найдите Telegram Trigger.
В поле Credential to connect with выберите Create New.
Вставьте ваш API Token, полученный от BotFather.
В поле Updates выберите Message (мы хотим реагировать на любые сообщения).Теперь нажмите кнопку Listen for Test Event. Откройте своего бота в Telegram и напишите ему «Привет, мир!». В n8n вы увидите, что узел «поймал» событие. Раскройте полученный JSON. Вы увидите chat_id, text, имя пользователя и дату.
> n8n позволяет быстро собрать телеграм бота с ИИ под капотом. Да еще с возможностью подключения к собственным данным.
>
> habr.com
Polling vs Webhook: Выбор архитектора
Здесь важно сделать архитектурное отступление. Существует два способа получения данных от Telegram:
Polling (Опрос): n8n каждые несколько секунд спрашивает Telegram: «Есть новые сообщения?». Это создает лишнюю нагрузку и задержку.
Webhook (Вебхук): Telegram сам «стучится» к вам на сервер, как только приходит сообщение. Это происходит мгновенно.Узел Telegram Trigger в n8n автоматически настраивает Webhook, если вы используете production-режим, или Polling при тестировании. Для архитектора важно понимать эффективность вебхука через формулу задержки (latency):
где — общая задержка реакции бота, — время прохождения сигнала по сети (обычно 50–100 мс), — время обработки сценария сервером. В случае с Polling к этой формуле добавляется половина интервала опроса (в среднем), что может составлять секунды. Вебхуки сводят задержку к минимуму.
Вебхуки (Webhook): Универсальный приемник
Telegram — это частный случай. Но что, если вы хотите получать данные с сайта (Tilda, WordPress), платежной системы (Stripe) или CRM? Для этого используется узел Webhook.
Вебхук — это просто ссылка на ваш сервер. Когда кто-то переходит по этой ссылке (или отправляет на неё данные), n8n запускает сценарий.
Настройка узла Webhook
Добавьте узел Webhook.
Выберите HTTP Method: POST (если вы принимаете данные форм) или GET (если просто хотите запустить процесс по ссылке).
Path: придумайте уникальный путь, например new-lead.Теперь ваша ссылка для приема данных выглядит так:
https://ваш-домен.com/webhook/new-lead
Любой сервис, умеющий отправлять HTTP-запросы, теперь может запустить вашу автоматизацию. Это фундамент интеграции разрозненных систем.
Google Sheets: Ваша первая база данных
Почему Google Sheets? Потому что это самый простой способ структурировать данные, доступный каждому сотруднику. Для n8n это полноценная база данных, куда можно писать (Write), откуда можно читать (Read) и где можно искать (Lookup).
Сложности авторизации (OAuth2)
В отличие от Telegram, Google требует более сложной настройки безопасности. Простого токена недостаточно. Нам нужно настроить OAuth2 через Google Cloud Console. Это часто пугает новичков, но это стандарт промышленной безопасности.
Согласно neurokartashov.ru, процесс выглядит следующим образом:
Google Cloud Console: Создайте новый проект.
APIs & Services: Включите Google Sheets API и Google Drive API.
OAuth Consent Screen: Настройте экран доступа (выберите External и добавьте свой email в тестеры).
Credentials: Создайте OAuth Client ID. Выберите тип Web application.Самый важный момент — Authorized redirect URIs. Сюда нужно вставить ссылку, которую вам покажет n8n при создании Credentials (обычно это https://ваш-домен/rest/oauth2-credential/callback).
После создания вы получите Client ID и Client Secret. Вставьте их в n8n, и система попросит вас войти в Google-аккаунт для подтверждения прав.
Запись данных в таблицу
Представим задачу: мы хотим сохранять все сообщения из Telegram в Google Таблицу.
Создайте таблицу в Google Sheets. Назовите колонки: Date, User, Message.
В n8n после узла Telegram Trigger добавьте узел Google Sheets.
Выберите действие (Operation): Append or Update Row (Добавить или обновить строку).
Укажите ID таблицы (его можно взять из URL самой таблицы).
В разделе Mapping Column свяжите колонки таблицы с данными из Telegram:
*
Date ← перетащите
message.date из Telegram.
*
User ← перетащите
message.from.first_name.
*
Message ← перетащите
message.text.
Собираем всё вместе: Логика эхо-бота с логированием
Давайте построим завершенный сценарий. Пользователь пишет боту, бот сохраняет сообщение в таблицу и отвечает пользователю: «Сообщение сохранено».
Схема (Workflow):
Telegram Trigger: Получает сообщение.
Google Sheets: Записывает данные.
Telegram (Action): Отправляет ответ.Важный нюанс: Асинхронность и порядок
В n8n узлы выполняются строго по очереди. Если Google Sheets выдаст ошибку (например, истек токен), сообщение пользователю не уйдет. Это называется синхронным выполнением.
Для расчета пропускной способности такой цепочки можно использовать упрощенную формулу:
где — количество запросов в секунду (Requests Per Second), — время получения входящего сигнала, — время ответа API Google (обычно самое медленное звено, около 300-500 мс), — время отправки ответа.
Если сек, то ваш бот не сможет обрабатывать быстрее 2 сообщений в секунду в одном потоке. Для архитектора это сигнал: при высоких нагрузках запись в таблицу нужно выносить в отдельный, независимый процесс (но об этом в следующих модулях).
Финальная настройка узла Telegram Action
Чтобы ответить пользователю, добавьте узел Telegram (не Trigger, а обычный).
* Resource: Message
* Operation: Send Message
* Chat ID: Перетащите Chat ID из первого узла (Trigger). Это критически важно: бот должен знать, кому отвечать.
* Text: «Спасибо, [Имя], ваше сообщение записано!».
Итоги
Мы создали первую реальную автоматизацию. Теперь ваш сервер не просто потребляет электричество, а выполняет бизнес-функцию: сбор данных.
Telegram Trigger позволяет мгновенно получать данные от пользователей через вебхуки, минуя задержки Polling-метода.
Webhooks — это универсальный стандарт приема данных от любых внешних систем (сайтов, CRM, платежных шлюзов).
Google Sheets в связке с n8n превращается в гибкую базу данных, но требует внимательной настройки OAuth2 авторизации.
Последовательность узлов определяет логику: ошибка на этапе записи в таблицу прервет цепочку, и пользователь не получит ответ (если не настроить обработку ошибок).В следующей статье мы углубимся в манипуляцию данными: научимся фильтровать заявки, форматировать даты и использовать JavaScript внутри узлов Code для сложной логики.