Отправка заявок с сайта в Telegram с помощью Яндекс Тег Менеджера

13 мая, 2026

Сегодня вы познакомитесь с нестандартными возможностями Яндекс Тег Менеджера и узнаете, как решить нетривиальную задачу - отправлять заявки с сайта в Telegram своими руками.

Это руководство - адаптированный материал другой моей статьи в блоге, которая вышла осенью 2020 года и была посвящена Google Tag Manager.

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

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

 

Пользователь заходит к вам на сайт, оставляет заявку, и вы сразу получаете ее в Telegram. Реализовать это можно самостоятельно, без каких-либо финансовых затрат, используя только возможности Telegram и Яндекс Тег Менеджера.

Какой практический смысл этой настройки?

  • продемонстрировать нестандартные возможности работы с Яндекс Тег Менеджером;
  • иметь запасной вариант приема обращений (дополнение к CRM-системе, e-mail и т.д.);
  • потому что это бесплатно и просто, а значит каждый может попробовать настроить;
  • забавы ради.

Как настроить отправку заявок с сайта в Telegram с помощью Яндекс Тег Менеджера? Последовательность сводится к нескольким простым шагам:

  • создание Telegram-бота;
  • получение токена;
  • активация бота;
  • получение chat id;
  • настройка извлечения данных из полей формы в Яндекс Тег Менеджере;
  • отправка заявок с сайта в Telegram;
  • проверка настроек (отладка).

Давайте рассмотрим каждый шаг подробнее.

Создание Telegram-бота

Рекомендация: для удобства работы и тестирования установите десктопную версию Telegram.

Чтобы создать бота в Telegram, в поиске вам необходимо найти самого главного - @botfather (с галочкой):

Главный бот BotFather

Нажмите на кнопку Start или введите /start:

Команда Start

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

Команды для бота

В списке есть команда /newbot. Данная функция позволяет создать нового бота. Вы можете прописать эту команду вручную в поле отправки сообщения или просто нажать на эту команду в списке:

Команда /newbot

Придумайте имя для бота и нажмите Enter (например - telegramleads):

Название Telegram-бота

На следующем шаге выберите логин (username) для вашего бота. Он должен заканчиваться на bot. Например: TetrisBot или tetris_bot (в моем примере - tg_lbot):

Логин (username) Telegram-бота

Если логин занят, вам придет уведомление: Sorry, this username is already taken. Please try something different. Вам нужно будет придумать другой username для своего бота.

Сохраните токен, который бот пришлет в ответном сообщении. Он понадобится вам в дальнейшем:

Токен

Затем следует активировать бота. Чтобы это сделать, вам нужно найти его в поиске Telegram и нажать на Start:

Активация Telegram-бота

Дополнительно можете в чат отправить какой-нибудь текст. Так вы точно активируйте работу Telegram-бота.

Теперь необходимо получить chat id. Вставьте в браузер ссылку:

, где XXXXXXXXXXXXXXXXXX – ваш токен.

Результат в браузере должен быть примерно такой:

Получение chat id

Сохраните chat id (в моем примере - 49472219). Он понадобится вам в дальнейшем. На этом настройка Telegram-бота завершена.

Активация пользовательского HTML-тега

Первым делом вам необходимо активировать опцию Пользовательский HTML в настройках счетчика Яндекс Метрики. Для этого перейдите в раздел Настройки - Счетчик:

Настройки - Счетчик

И включите функцию Пользовательский HTML:

Активация пользовательского HTML

Пользовательский HTML в Yandex Tag Manager (YTM) - это тип тега, который позволяет добавлять на сайт произвольный HTML-код, JavaScript или другие скрипты, которые не поддерживаются стандартными тегами и которых нет в каталоге шаблонов. Код будет выполняться при срабатывании триггера, в нем также можно использовать переменные для динамической подстановки нужных значений.

Сохраните изменения.

Настройка извлечения данных из полей формы

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

Поскольку в Яндекс Тег Менеджере на момент написания этого руководства нет пользовательской переменной Собственный код JavaScript (в отличие от Google Tag Manager, где такая переменная есть), то и извлечь значения из полей формы таким способом мы не можем. В шаблонах переменных тоже пока нет соответствующего метода API. Но есть иное решение. Оно основано на том, что мы используем специальный JavaScript-код в теге типа Пользовательский HTML, который отслеживает заполнение значения в поле формы (по CSS-селектору) и отправляет событие в dataLayer.

Пример скрипта для отслеживания одного поля формы:

, где вместо CSS-селектор вы задаете CSS-селектор вашего HTML-поля формы.

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

Или на Rutube:

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

Примечание: материалы и видеоурок посвящены диспетчеру тегов Google, но информация также актуальна и для Яндекс Тег Менеджера.

Пример скрипта для отслеживания нескольких полей формы:

, где вместо СSS-селектор вам необходимо вставить CSS-селектор не конкретного поля формы, а самой формы.

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

Как определить CSS-селектор формы? В браузере откройте консоль разработчика (клавиша F12 для Google Chrome и Mozilla Firefox). Найдите в структуре DOM-дерева тег <form> (в HTML формы размечаются именно этим тегом). Выделив его, нажмите правой кнопкой мыши и выберите пункт Copy - Copy selector (Копировать - Копировать селектор):

Копирование селектора формы

Скопируйте это значение к себе в блокнот. Вернитесь в Яндекс Тег Менеджер, откройте раздел Теги и создайте тег типа Пользовательский HTML. Вставьте в него нижеприведенный код:

В строке:

Вместо selector вставьте значение селектора своей формы, которое вы скопировали на предыдущем шаге:

Вставка селектора вашей формы

Больше никаких изменений в коде не требуется. Вы можете проверить код на ошибки, нажав на кнопку Проверить код под редактором HTML. Их быть не должно.

В качестве триггера активации укажите Просмотр страницы. Задайте тегу название (например - HTML - Отправка формы с полями) и сохраните его.

Представленный выше код - это универсальный скрипт для автоматического сбора данных с любых веб-форм и отправки их с использованием уровня данных (dataLayer). Он не требует наличия атрибута name у полей, так как автоматически определяет их имена по id, тексту связанной метки (label) или placeholder. Скрипт самостоятельно находит форму по указанному вами CSS-селектору, корректно обрабатывает все типы полей (текст, чекбоксы, радио-кнопки, выпадающие списки), проверяет валидность формы, защищает от повторной отправки и в случае успеха (или ошибки валидации) отправляет в dataLayer структурированные данные о заполненных полях, включая мета-информацию о форме (ID, класс, метод отправки).

Теперь перейдите в раздел Триггеры и создайте триггер типа Специальное событие. Задайте ему следующие настройки:

  • Название события - form_submission_data|form_validation_failed (именно так, как здесь!)
  • Поставьте галочку Использовать регулярные выражения

Триггер специального события

Задайте триггеру название (например - Отправка формы с полями) и сохраните его.

15 апреля 2026 года Яндекс Тег Менеджер в очередной раз обновил режим отладки, добавил новый функционал и обновил интерфейс панели. В связи с этим скриншоты в других моих статьях блога могут быть неактуальны.

Теперь вы можете воспользоваться режимом предварительного просмотра, чтобы проверить выполнение кода и корректное извлечения значений из полей формы. Для этого запустите режим отладки Яндекс Тег Менеджера и отправьте тестовую заявку на своем сайте. Если вы все сделали правильно, то на шкале событий должно появиться событие form_submission_data:

Событие form_submission_data

Нажав на него, перейдите на вкладку DataLayer. Там вы должны увидеть данные по всей формы, включая значения заполненных полей:

Вкладка "DataLayer" - данные по всей формы, включая значения полей

Если это так, ты вы все сделали правильно. Если код не сработал, попробуйте доработать его под свой проект с помощью больших языковых моделей (ChatGPT, Gemini, DeepSeek, Qwen и др.).

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

  • formData.name
  • formData.email
  • formData.message

Так нужно сделать для каждого поля вашей формы, поскольку в Google Таблицах у нас каждый столбец - это отдельное поле формы. В моем примере используется три поля: ИмяEmail и Сообщение. У вас может быть другое количество.

Переменные уровня данных

Задайте каждой переменной название и сохраните ее (их).

Повторно откройте режим отладки Яндекс Тег Менеджера и еще раз отправьте тестовую заявку. Выберите событие form_submission_data на временной шкале и перейдите на вкладку Переменные. Там напротив каждой созданной переменной вы должны увидеть возвращенное значение:

Каждая переменная уровня данных вернуло нужное значение из поля формы

Поздравляю вас! Мы с вами завершили предварительную подготовку к отправке данных в Telegram.

Итоговый тег отправки заявок в Telegram

Мы с вами:

  • создали бота Telegram;
  • получили токен и chat id;
  • настроили переменные для извлечения полей формы и триггер.

Все, что осталось сделать - создать итоговый тег отправки данных о заявках в Telegram. Для этого перейдите в Яндекс Тег Менеджер и создайте тег типа Пользовательский HTML. Вставьте в него нижеприведенный код:

Чтобы код заработал, вам нужно внести изменения в трех местах:

  1. заменить токен бота в переменной botToken = 'ВАШ_ТОКЕН_БОТА' на реальный ключ, который вы получили от @BotFather при создании бота. Кавычки по бокам должны остаться;
  2. заменить ID чата в переменной chatId = 'ВАШ_CHAT_ID' на идентификатор группы, куда должны приходить уведомления. Ее вы получили на шаге ранее (см. chat id);
  3. замените {{ Переменная }} на ваши переменные Яндекс Тег Менеджера, которые извлекают значения из полей формы. Поскольку ваша форма может отличаться от моего примера, как по составу полей, так и по их количеству, вам потребуется скорректировать формат сообщения под себя.

Таким образом, этот код представляет собой легковесный скрипт для автоматизации уведомлений. Он перехватывает данные из заполненной формы на сайте через Яндекс Тег Менеджер и мгновенно отправляет их в бота Telegram. Скрипт собирает значения заданных переменных (имя, телефон, e-mail и другие поля, которые вы добавите), формирует из них структурированное HTML-сообщение и передает его в чат с помощью метода fetch. Использование параметра keepalive гарантирует доставку уведомления, даже если пользователь закроет страницу сразу после отправки формы.

В качестве триггера задайте триггер специального события, созданный на предыдущем шаге. Итоговый тег отправки заявок в Telegram в Яндекс Тег Менеджере это будет выглядеть так:

Итоговый тег отправки заявок в Telegram

Проверка настроек

Перейдите в режим предварительного просмотра Яндекс Тег Менеджера и повторно отправьте заявку. Если вы все настроили верно, то после ее отправки данные должны прийти в Telegram:

Заявки с сайта в Telegram

Вот и все! Мы с вами настроили Telegram-бота, который отправляет данные по заявкам только вам. В Telegram вместе с заявкой можно передавать не только сами поля формы, но еще и дополнительную информацию, включая город пользователя, IP-адрес посетителя, источник трафика, utm_метки, Client ID, точную дату обращения и многое другое.

Заявка с дополнительными параметрами

Примечание: о том, как отправлять уведомления в Telegram о 404 ошибках на вашем сайте, читайте в этой статье.

Если у вас в команде несколько человек, и вы хотите, чтобы информация по лидам приходила всем в Telegram, то настройка чуть отличается, а именно:

  • после активации бота необходимо создать группу в Telegram;
  • вы должны пригласить Telegram-бота в эту группу;
  • напишите в группе какое-нибудь сообщение.

Далее настройка аналогична -> переходите к шагу получения chat id (будет другим) через:

И продолжаете по этому руководству.

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

🔥 Новый онлайн-курс «n8n для маркетологов». Старт 1 июля!
ПОДРОБНЕЕ