Связка тильда телеграм - самая частая интеграция, которую я настраиваю клиентам сразу после запуска сайта. Задача обычно одна и та же: заявка с формы должна сразу попасть в рабочий чат, а не ждать, пока кто-то откроет почту. Дальше начинаются нюансы: кому-то хватает уведомления о новой заявке, кому-то нужен бот с кнопками, разными чатами под разные отделы и связкой с CRM. Ниже - как устроена штатная интеграция Tilda с Telegram, когда её достаточно и что делать, если нужна своя логика.
По теме статьи
Готовое решение
Массовое изменение цен в каталоге Tilda
Скрипт поднимает или снижает цены товаров и вариантов в каталоге Tilda на заданный процент. Сначала показывает таблицу «было / станет», меняет только после подтверждения.
от1 000 ₽
Кастомный скрипт
Когда стандартных блоков не хватает
Доработка сайтов на Тильде: скрипты для корзины, промокоды, зоны доставки, интеграции с CRM и Telegram. Простой скрипт от 3 000
от3 000 ₽
Уведомления о заявках в Telegram через настройки Tilda
В блоках «Форма» и «Заказ» на Tilda есть вкладка «Уведомления», где среди готовых интеграций стоит Telegram наравне с email, amoCRM, Bitrix24 и вебхуком. Подключение простое: вставляете токен бота и chat_id, включаете переключатель у нужного блока формы. После сохранения каждая заявка с этой формы уходит отдельным сообщением в чат: заполненные поля, время отправки, а для блока «Корзина» ещё и состав заказа. Кода писать не нужно, и для большинства сайтов на Tilda этого достаточно, будь то лендинг с одной формой захвата или магазин с уведомлением о новом заказе.
Важный момент: переключатель Telegram настраивается для каждого блока формы отдельно. Если на странице три формы, например «Обратный звонок», «Оставить заявку» и корзина, интеграцию нужно включить в каждой. Иначе часть заявок будет уходить только на почту, а в чате их не окажется.
Бот через BotFather: с чего начинается любая интеграция
Прежде чем что-то подключать в Tilda, бота нужно создать.
- Открываете Telegram, находите @BotFather.
- Команда /newbot, дальше вводите имя бота и юзернейм, который обязательно заканчивается на «bot».
- BotFather выдаёт токен вида 123456:ABC-DEF… Это единственный ключ доступа к боту, его нельзя публиковать в открытом репозитории или пересылать незашифрованным текстом в общий чат.
- Бота добавляете в нужную группу или канал вручную, как обычного участника.
- Для канала бота нужно назначить администратором, иначе он не сможет публиковать сообщения.
Для простых уведомлений боту не требуется читать чужие переписки в группе, он только отправляет сообщения, поэтому режим приватности по умолчанию (privacy mode) можно не трогать.
Как узнать chat_id для группы, канала и личного чата
chat_id личного диалога с ботом - положительное число. У обычной группы он отрицательный, у супергруппы начинается с «-100». Проще всего узнать его так: отправляете любое сообщение в чат, где уже есть бот, затем открываете в браузере адрес вида https://api.telegram.org/bot ТОКЕН /getUpdates и ищете в ответе значение chat.id. Для каналов через getUpdates обычные сообщения не видны, если у бота нет прав администратора, поэтому права нужно выдать заранее и отправить тестовый пост.
Частая ловушка: Telegram сам конвертирует обычную группу в супергруппу, когда у неё появляется несколько администраторов или включаются определённые настройки, и при этом меняется chat_id. Если после такого апгрейда не обновить id в настройках Tilda, уведомления просто перестают приходить, без какой-либо ошибки на стороне сайта.
Бесплатный материал
🎁 Полезный скрипт в подарок
Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.
Без спама. Отписка в 1 клик.
Свой обработчик, когда штатной интеграции мало
Штатная связка закрывает уведомления в один чат в одном формате. Свой код нужен, когда требуется другой формат сообщения, разделение заявок по чатам в зависимости от значения поля (например, город или тип товара), или когда бот должен не просто уведомлять, а отвечать клиенту.
Для этого в той же вкладке «Уведомления» в Tilda есть пункт «Webhook»: при отправке формы Tilda делает POST-запрос с JSON на указанный вами URL. Дальше нужен свой скрипт, который принимает этот запрос и вызывает Telegram Bot API. Поскольку сайт на Tilda уже работает на обычном хостинге, для приёма одного вебхука отдельный сервер не нужен, хватает PHP-обработчика на том же хостинге:
<?php
$payload = file_get_contents('php://input');
$data = json_decode($payload, true) ?: [];
$lines = ['Новая заявка с Tilda:'];
foreach ($data as $key => $value) {
if (is_string($value) && $value !== '') {
$lines[] = "{$key}: {$value}";
}
}
$text = implode("\n", $lines);
$token = 'ВАШ_ТОКЕН_БОТА';
$chatId = 'ВАШ_CHAT_ID';
$ch = curl_init("https://api.telegram.org/bot{$token}/sendMessage");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'chat_id' => $chatId,
'text' => $text,
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
curl_close($ch);
http_response_code(200);
Если нужно развести заявки по чатам, в этом же скрипте добавляется условие: проверяете значение конкретного поля из $data и выбираете подходящий $chatId под нужный отдел. Отдельный момент: скрипт обязательно должен ответить кодом 200, иначе Tilda может посчитать, что вебхук не сработал.
Если бот должен ещё и отвечать пользователю, кнопки, диалоги, разные сценарии, это уже другая механика: Telegram сам присылает обновления на ваш webhook-адрес (регистрируется через setWebhook), и такой обработчик тоже спокойно работает на обычном хостинге, потому что инициатором запроса выступает Telegram, а не ваш сервер. А вот когда сценарий разрастается до очередей, отложенных сообщений и разбора длинных диалогов, обычно беру aiogram на Python, но тогда это уже отдельный постоянно работающий процесс, которому нужен VPS с systemd, обновлениями и ежемесячной оплатой, для одной кнопки «написать нам» это избыточно. Такую разработку Telegram-бота с собственной логикой обычно веду отдельным проектом, от 30 000 ₽; доработка вебхука под конкретную форму Tilda укладывается в кастомный скрипт, от 3 000 ₽.
Автоматизация и разные чаты под отделы через n8n
Когда логика разрастается, несколько форм, несколько CRM, фильтрация по сумме заказа, проще не плодить PHP-скрипты, а собрать сценарий в n8n. Тот же вебхук Tilda подключается как триггер, дальше узел If разводит заявки по условию, узел Telegram отправляет в нужный чат, узел CRM создаёт сделку. Поменять условие или добавить новый чат можно прямо в интерфейсе, без правок кода.
Отдельно про хранение данных: контакты клиентов, телефон, имя, email из заявки не стоит дублировать в Google Таблицы или другие иностранные облачные сервисы, по 152-ФЗ персональные данные российских клиентов должны обрабатываться на серверах в РФ. В сценарии n8n для контактов используйте CRM или базу на своём хостинге, а во внешние таблицы выгружайте только обезличенные данные вроде товара, суммы и даты.
Ещё нюанс с сервером: n8n можно поднять на собственном VPS, тогда это отдельная машина, которую нужно обновлять и оплачивать помесячно, либо воспользоваться облачной версией сервиса, где сервер обслуживает сама компания. Для одного-двух сценариев разворачивать собственный сервер обычно смысла нет. Автоматизацию в n8n делаю от 25 000 ₽, а комплексную интеграцию для Tilda под ключ, CRM, эквайринг, СДЭК, от 40 000 ₽.
Сравнение способов подключить Telegram к Tilda
| Способ | Что умеет | Нужен отдельный сервер | Когда достаточно |
|---|---|---|---|
| Штатная интеграция форм | Уведомление о заявке в один чат | Нет | Лендинг, простой магазин |
| Webhook и свой PHP-скрипт | Кастомный формат, разделение по чатам | Нет, хватает хостинга сайта | Несколько отделов, своя логика сообщения |
| Сценарий в n8n | Ветвление, CRM, несколько сервисов | Нет для облачной версии, да для self-hosted | Много условий, часто меняющаяся логика |
| Бот на aiogram с диалогами | Кнопки, ответы, очереди сообщений | Да, постоянный процесс | Полноценный сценарий общения с пользователем |
Частые ошибки при подключении Tilda и Telegram
- Забыли включить интеграцию отдельно на каждой форме страницы, а не только на первой.
- chat_id не обновили после того, как Telegram превратил обычную группу в супергруппу.
- Бота не назначили администратором канала, из-за чего сообщения просто не доходят без видимой ошибки на стороне Tilda.
- Токен бота хранится в открытом виде в публичном репозитории или пересылается в общий чат.
- Вебхук-скрипт не возвращает код 200, из-за чего заявка выглядит потерянной.
Условия и возможности Тильды и Telegram меняются, поэтому перед запуском я уточняю их у самих сервисов.
Частые вопросы
Можно ли подключить Telegram-уведомления в Tilda без программиста?
Да, штатная интеграция в настройках формы, токен бота и chat_id, не требует кода, это можно сделать самостоятельно меньше чем за час по инструкции BotFather. Код нужен только если требуется своя логика: разделение по чатам, кастомный формат сообщения или бот с ответами.
Почему бот не отправляет уведомления в групповой чат?
Чаще всего дело в двух вещах: бота не добавили в группу или канал явным образом, либо изменился chat_id после того как Telegram автоматически преобразовал обычную группу в супергруппу, это происходит, например, при выдаче прав администратора кому-то из участников. В таком случае старый id из настроек Tilda нужно заменить на новый.
Как разделить заявки по разным Telegram-чатам для разных менеджеров?
Штатная интеграция Tilda отправляет все заявки с формы в один чат. Для разделения по условию, город, товар, сумма заказа, нужен свой обработчик вебхука на PHP или сценарий в n8n с веткой If, который проверяет значение поля и выбирает подходящий chat_id.
Нужен ли отдельный сервер, чтобы подключить Telegram-бота к сайту на Tilda?
Для уведомлений и вебхук-скрипта хватает обычного хостинга, на котором уже стоит сайт: PHP-обработчик, принимающий вебхук и отправляющий сообщение через Telegram Bot API, не требует ничего сверх этого. Отдельный сервер нужен, только если бот должен вести диалог, хранить очередь сообщений или работать через постоянный long-polling процесс.