Как интегрировать Telegram с Google Sheets
Интеграция Telegram с Google Sheets позволяет автоматически сохранять сообщения, отслеживать рост подписчиков, собирать данные из форм и управлять контентом канала через привычные таблицы. Самые популярные способы — использование Telegram Bot API совместно с Google Apps Script, платформы автоматизации вроде Make или Zapier, а также готовые боты-коннекторы.
Зачем связывать Telegram и Google Sheets
Google Sheets — это бесплатная «база данных» с удобным интерфейсом, совместным доступом и встроенными формулами для аналитики. Для администраторов Telegram-каналов и владельцев бизнесов такая связка открывает массу возможностей:
- Автоматическое логирование сообщений из каналов и групп
- Отслеживание динамики подписчиков — ежедневные, еженедельные графики роста
- Сбор заявок и анкет через Telegram-ботов с записью в таблицу
- Управление контент-планом — публикация постов по расписанию прямо из таблицы
- Хранение заказов из Telegram-магазинов и сервисных ботов
- Формирование отчётов по взаимодействиям с ботом без написания серверного кода
Например, администратор канала «Рецепты от Марины» с 15 000 подписчиков может автоматически сохранять все входящие сообщения в бот обратной связи, а владелец интернет-магазина в Telegram — фиксировать каждый заказ в таблице, доступной менеджерам.
Способ 1: Google Apps Script + Telegram Bot API
Самый гибкий и полностью бесплатный метод. Вы создаёте собственного бота и подключаете его к Google-таблице через встроенный редактор скриптов.
Шаг 1: Создайте Telegram-бота
- Откройте Telegram и найдите @BotFather
- Отправьте команду
/newbot - Выберите имя (например, «Логгер в Таблицу») и username (например,
sheet_logger_bot) - Скопируйте полученный API-токен — он понадобится на следующих этапах
Шаг 2: Подготовьте Google-таблицу
- Создайте новую таблицу на sheets.google.com
- Переименуйте первый лист в
TelegramMessages - В первой строке добавьте заголовки:
Дата,Пользователь,User ID,Сообщение,Chat ID
Шаг 3: Напишите скрипт
- В таблице перейдите в Расширения → Apps Script
- Удалите весь существующий код и вставьте скрипт обработки вебхука:
function doPost(e) {
var data = JSON.parse(e.postData.contents);
var message = data.message;
var sheet = SpreadsheetApp.getActiveSpreadsheet()
.getSheetByName("TelegramMessages");
sheet.appendRow([
new Date(message.date * 1000),
message.from.first_name,
message.from.id,
message.text || message.caption || "[медиа без текста]",
message.chat.id
]);
return ContentService.createTextOutput("OK");
}
- Сохраните проект, задав ему понятное имя — например, «TG-Sheet Connector»
Шаг 4: Разверните как веб-приложение
- Нажмите Развернуть → Новое развёртывание
- Тип: Веб-приложение
- «Запуск от имени» — Я, «Кто имеет доступ» — Все
- Нажмите Развернуть и скопируйте сгенерированный URL
Шаг 5: Установите вебхук Telegram
Откройте в браузере или выполните через curl:
https://api.telegram.org/bot<ВАШ_ТОКЕН>/setWebhook?url=<URL_ВЕБ_ПРИЛОЖЕНИЯ>
В ответе должно быть "result": true. С этого момента каждое сообщение, отправленное боту, автоматически записывается в таблицу.
Способ 2: Платформа Make (бывший Integromat)
Make — визуальный конструктор автоматизаций без программирования. Отлично подходит тем, кто не хочет разбираться в скриптах.
Шаг 1: Зарегистрируйтесь на make.com
Бесплатный тариф включает 1 000 операций в месяц — этого достаточно для небольших и средних каналов.
Шаг 2: Создайте сценарий
- Нажмите Create a new scenario
- Добавьте модуль Telegram Bot → выберите Watch Updates
- Подключите бота, введя API-токен от BotFather
- Добавьте модуль Google Sheets → выберите Add a Row
- Подключите Google-аккаунт, выберите нужную таблицу
- Сопоставьте поля: текст сообщения, имя отправителя, дату — с колонками таблицы
Шаг 3: Активируйте и проверьте
- Переключите сценарий в состояние ON
- Отправьте тестовое сообщение боту
- Убедитесь, что данные появились в таблице в течение нескольких секунд
Make автоматически обрабатывает ошибки, повторные попытки и расписание. Вы можете добавить фильтры — например, логировать только сообщения с определённым хештегом или от конкретных пользователей.
Способ 3: Zapier
Zapier работает по аналогичному принципу с моделью «Zap»-автоматизаций:
- Создайте новый Zap с триггером Telegram Bot → New Message
- Добавьте действие Google Sheets → Create Spreadsheet Row
- Сопоставьте поля и активируйте
Бесплатный тариф Zapier ограничен 100 задачами в месяц. Для активных каналов с сотнями сообщений в день потребуется платный план (от ~$20/мес). Для русскоязычных пользователей стоит также обратить внимание на Albato — российскую платформу автоматизации с нативной поддержкой Telegram и Google Sheets.
Способ 4: Готовые боты и self-hosted решения
- n8n — бесплатная self-hosted альтернатива Make/Zapier с готовым Telegram-нодом. Разворачивается на VPS за 10–15 минут
- IFTTT — поддерживает базовые триггеры Telegram и действия Google Sheets
- Albato — российская платформа интеграций, удобная для работы с кириллицей и российскими сервисами
Важно: если канал обрабатывает чувствительные данные (персональная информация, заказы), self-hosted решения вроде n8n обеспечат полный контроль над данными — они хранятся на вашем сервере, а не на сторонних платформах.
Продвинутые сценарии использования
Мониторинг роста подписчиков
Создайте в Google Apps Script триггер по расписанию (через меню Триггеры), который каждый час вызывает метод getChatMemberCount Telegram Bot API и записывает количество подписчиков в отдельный лист. За несколько недель у вас соберётся детальный график роста, на основе которого легко строить диаграммы средствами Google Sheets.
Контент-план и автопостинг
Создайте таблицу с колонками: Дата, Время, Текст поста, URL медиа, Статус. Скрипт на Google Apps Script проверяет по расписанию, есть ли строки с наступившим временем публикации, и отправляет их в канал через метод sendMessage или sendPhoto. После публикации статус меняется на «Опубликовано».
Сбор заявок через бота
Бот последовательно задаёт пользователю вопросы (имя, город, телефон, описание заказа). Каждая завершённая анкета записывается новой строкой в таблицу. Такой подход часто используют каналы с активным сообществом — для сбора отзывов, регистрации на мероприятия, приёма заказов.
Логирование постов канала
Добавьте бота администратором канала. Настройте вебхук на обработку channel_post вместо обычных message. Это позволит сохранять каждый опубликованный пост с текстом, датой, количеством просмотров и метаданными медиа — полезно для аудита контента и анализа эффективности. Если ваш канал дополнительно представлен на tgchannel.space, данные о публикациях из таблицы удобно сопоставлять с веб-метриками, чтобы видеть полную картину охватов.
Советы и лайфхаки
- Разделяйте данные по листам. Сообщения, статистика подписчиков, логи ошибок — всё на отдельных листах. Так проще анализировать и не путаться.
-
Оберните
doPostвtry-catch. Запишите ошибки на отдельный лист «Errors». Самая частая проблема кастомных интеграций — тихие падения без логов. -
Учитывайте лимиты. Telegram Bot API допускает ~30 запросов в секунду, Google Sheets API — 300 запросов в минуту. Для каналов с 10 000+ сообщений в день используйте пакетную запись через
setValues()вместоappendRow(). -
Храните токен безопасно. Используйте
PropertiesService.getScriptProperties()в Apps Script вместо того, чтобы вписывать токен прямо в код. -
Конвертируйте временные зоны. Telegram отдаёт Unix-время в UTC. Добавьте в скрипт смещение для московского времени (
+3) или используйте формулу в таблице. - Автоматизируйте архивацию. Google Sheets поддерживает до 10 миллионов ячеек. При активном логировании настройте ежемесячный экспорт старых данных в CSV и очистку основного листа.
Частые ошибки
Ошибка 1: Забыли переразвернуть скрипт после изменений
Почему это проблема: Google Apps Script выполняет развёрнутую версию, а не текущую в редакторе. Изменения в коде не применяются, пока вы не создадите новое развёртывание.
Как избежать: после каждого изменения кода идите в Развернуть → Управление развёртываниями → Изменить → Новая версия → Развернуть.
Ошибка 2: Не обрабатываете медиа-сообщения
Почему это проблема: сообщения с фото, видео или документами могут не содержать поля text — скрипт упадёт или запишет пустую строку.
Как избежать: проверяйте message.text, message.caption, message.photo и обрабатывайте каждый тип отдельно. Используйте конструкцию message.text || message.caption || "[медиа]".
Ошибка 3: Используете личный Google-аккаунт для продакшена
Почему это проблема: при превышении квот или блокировке аккаунта вся интеграция остановится, а вместе с ней — сбор данных.
Как избежать: создайте отдельный аккаунт Google Workspace или используйте сервисный аккаунт для продакшен-интеграций.
Ошибка 4: Не валидируете входящие данные
Почему это проблема: URL вебхука доступен публично. Без проверки любой может отправить поддельные данные в вашу таблицу.
Как избежать: проверяйте структуру update на соответствие формату Telegram. Добавьте секретный токен в URL вебхука через параметр secret_token при вызове setWebhook.
Часто задаваемые вопросы
Можно ли отправлять сообщения из Google Sheets в Telegram?
Да. Используйте Google Apps Script для вызова метода sendMessage Telegram Bot API. Отправку можно привязать к расписанию, ручному запуску или изменению значения в ячейке — идеально для контент-планов и автоматических уведомлений.
Метод через Google Apps Script действительно бесплатный?
Полностью. Google Apps Script работает на инфраструктуре Google без оплаты. Ограничения: время выполнения одного запуска — 6 минут, дневная квота — около 20 000 вызовов UrlFetch. Для большинства каналов этого более чем достаточно.
Можно ли логировать сообщения из группы, а не только из бота?
Да, но бот должен быть участником группы. Добавьте бота в группу, затем отключите Privacy Mode через BotFather (команда /setprivacy → Disable). После этого бот будет получать все сообщения группы.
Что делать, если таблица переполнится?
Google Sheets поддерживает до 10 миллионов ячеек (примерно 200 000 строк при 50 колонках). Для каналов с высоким трафиком настройте автоматическую архивацию — ежемесячный перенос старых строк в отдельную таблицу или экспорт в CSV.
Какой способ выбрать новичку?
Если вы не боитесь кода — Google Apps Script: бесплатно, гибко, без зависимости от сторонних сервисов. Если хотите настроить всё за 10 минут без программирования — начните с Make (Integromat), его визуальный интерфейс интуитивно понятен.