Получение статистики Яндекс Метрики в Telegram с помощью n8n

30 июля, 2026

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

Этот материал был специально подготовлен для онлайн-курса «n8n для маркетологов».

Перед тем, как повторять нижеприведенные шаги, вы должны использовать экземпляр n8n в n8n Cloud или же установить n8n на своем собственном сервере. Подробнее о том, как это сделать, читайте в этом руководстве. В нем я использовал решение selfhost-ai (ex. n8n-install, Автор - Yury Kossakovsky) - готовый инсталлятор для развертывания n8n Community Edition и целого набора дополнительных сервисов на собственном сервере под управлением Docker Compose.

Основные этапы настройки автоматизации, которые вам предстоит выполнить, следующие:

  1. создать бота в Telegram;
  2. получить токен доступа для работы с API Яндекс Метрики;
  3. создать рабочий процесс в n8n.

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

Импорт шаблона n8n

Скачать итоговый шаблон n8n из этого руководства вы можете на моей образовательной платформе edu.osipenkov.ru, в разделе Материалы.

СКАЧАТЬ WORKFLOW

 

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

Подробнее про создание бота в Telegram и получение токена читайте здесь.

2. Получение токена для Яндекс Метрики

Для этого используйте инструкции:

3. Создание рабочего процесса n8n

Создав бота в Telegram и сохранив его chat_id и токен, а также создав приложение Яндекса и получив токен доступа для работы с счетчиками Яндекс Метрики, мы наконец можем перейти к основной части - созданию workflow в n8n.

Для этого перейдите в интерфейс своего инстанса (экземпляра) n8n и создайте новый рабочий процесс:

Create workflow

В открывшемся окне нажмите на холсте и в строке поиска введите Telegram:

Telegram Trigger

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

Триггеры в Telegram

 

Доступны варианты:

  1. On callback query  - срабатывает, когда пользователь нажимает на инлайн-кнопку (кнопку, прикрепленную прямо к сообщению);
  2. On channel post - запускает сценарий при публикации нового поста в канале, где ваш бот является администратором;
  3. On edited channel post - срабатывает в момент, когда кто-то редактирует уже существующий пост в канале;
  4. On edited message - реагирует на редактирование обычного сообщения пользователем в чате или группе;
  5. On inline query - активируется при использовании инлайн-режима. Это когда пользователь вводит юзернейм бота (например, @gif hello) в поле ввода любого чата, и бот должен «на лету» предложить варианты ответов (картинки, статьи и т.д.);
  6. On message - самый популярный триггер, срабатывающий на любое новое входящее сообщение (текст, фото, файл, стикер, голосовое) в личном чате с ботом или группе;
  7. On Poll Change - запускается, когда изменяется состояние опроса (например, кто-то проголосовал или опрос был остановлен). Бот должен быть автором опроса или админом чата;
  8. On pre checkout query - срабатывает на этапе финальной проверки платежа в Telegram. После того как пользователь нажал «Оплатить», Telegram отправляет этот запрос боту, чтобы тот подтвердил наличие товара и актуальность цены перед списанием денег;
  9. On shipping query - активируется, когда пользователь оформляет заказ через платежную систему Telegram и выбирает адрес доставки. Триггер нужен, чтобы рассчитать стоимость доставки на основе указанного адреса.

Для нашего бота подойдет самый популярный триггер - On message, который срабатывает на любое новое входящее сообщение. Выберите его:

Telegram Trigger - On message

В настройках триггера нажмите на кнопку Set up credential, чтобы добавить данные от вашего чат-бота Telegram:

Credential - Set up credential

В открывшемся окне в поле Access Token добавьте токен, который бот прислал после его создания (см. выше):

Учетные данные (Credential) для Telegram

Сохраните свои учетные данные, нажав на кнопку Save.

После этого вернитесь в настройки триггера Telegram. Вы должны увидеть, как в разделе Credential подставились ваши учетные данные от бота Telegram:

Credential - Telegram account

Теперь мы должны немного изменить настройки триггера. Для этого в разделе Trigger On раскройте список и выберите дополнительно Callback Query:

Trigger On - Callback Query

Поскольку мы планируем создать чат-бота для получения статистики из Яндекс Метрики и для ввода настроек использовать inline-кнопки, то нам обязательно нужно выбрать этот вариант, поскольку именно триггер On callback query срабатывает, когда пользователь нажимает на инлайн-кнопку (кнопку, прикрепленную прямо к сообщению).

Trigger On - Message и Callback Query

На этом настройки триггера Telegram завершены. Теперь нужно продумать дальнейшую логику работы нашего рабочего процесса и правила, по которым бот в Telegram будет нам отвечать. Для этого я предлагаю использовать узел-действие (action node) Switch, который позволяет создать несколько развилок/ветвлений и выполнять разные сценарии в зависимости от выбранного действия на предыдущем шаге.

Как правило, первую команду, которую вводят боту в Telegram, является команда /start. Но это только в самом начале. Далее вы уже можете общаться с ним без всяких вводных сообщений. Таким образом, для активации следующих шагов нам необходимо предусмотреть три правила:

  1. start - если пользователь (вы) написал в чате команду /start, бот показывает нам меню с кнопкой получения отчета по Яндекс Метрике (report);
  2. report - после нажатия на inline-кнопку весь основной процесс будет проходить далее по этому узлу (ввод данных счетчика Яндекс Метрики и получение итогового отчета);
  3. Fallback - если пользователь написал в чате любое другое сообщение (ни /start, и ни выбрал создание отчета), то бот отправляет подсказку по созданию отчета.

Давайте реализуем такие правила. Для этого рядом с триггером Telegram нажмите на иконку + и в окне выбора следующего узла введите в поиске Switch. Выберите этот узел:

Switch

Для того, чтобы настроить правила в этом узле, нам необходимо понять, какие данные и в каком виде приходят в n8n от предыдущего узла (триггера Telegram) в текущий, чтобы дальше настроить правила распределения по веткам Switch. Для этого нажмите слева (в разделе Input) на кнопку Execute previous nodes:

Execute previous nodes

Вернитесь в своего бота Telegram и напишите что-нибудь в чат. Например, выполните команду /start. После этого во входных данных узла должен появиться результат этого сообщения.

Результат отправленного сообщения

Теперь мы можем использовать схему полученных данных для составления правил в Switch. Первое правило - это ветка start. Выбрав в настройках узла режим Rules (по правилам), перетащите в Routing Rules в value1 поле text из объекта message. В ней хранится текст сообщения пользователя в чате:

Перетащите поле text в value1

Если перетащить из схемы именно это поле, в условии получится что-то вроде:

А поскольку эта ветка будет работать только с командой /start, то в поле value2 вставьте значение /start:

/start в value2

Условие в правиле можно оставить таким - is equal to (равно). При желании вы можете переименовать название самой ветки в Rename Output, указав свое собственное значение в поле Output Name. Например, написать просто start:

Переименование ветки Switch (Rename Output)

Закройте пока настройки узла и вернитесь на холст. Ваш рабочий процесс должен выглядеть примерно так. Он будет состоять всего из одной ветки start:

Промежуточный вариант workflow

Для настройки ее логики нажмите на иконку + и в строке поиска введите Telegram. Выберите Action - Send a text message:

Action - Send a text message

Нам нужно, чтобы после выполнения команды /start бот отправлял нам сообщение с inline-кнопкой, с помощью которой мы можем создать отчет Яндекс Метрики.

В настройках этого узла проверьте, чтобы:

  • в разделе Credential автоматически подставили ваши учетные данные от аккаунта Telegram;
  • в меню Resource был выбран Message;
  • в настройках Operation было выбрано Send Message.

Настройки узла-действия Send a text message

В поле Chat ID перетащите значение переменной id, которая является частью объекта chat внутри другого объекта message (message.chat.id), чтобы оно автоматически подставилось:

Заполнение поля Chat ID

Если перетащить из схемы именно это поле, в условии получится:

В поле Text напишите текст сообщения бота, которое будет отображаться вместе с inline-кнопкой. Например: Привет! Нажми на кнопку, чтобы получить отчет Яндекс Метрики:

Сообщение для бота

Чтобы добавить кнопку в сообщение, в разделе Reply Markup из выпадающего списка выберите Inline Keyboard:

Reply Markup - Inline Keyboard

Так можно показать кнопку и передать скрытые данные через дополнительные настройки (callback_data).

Выбрав Inline Keyboard, нажмите на кнопку Add Keyboard Row, а затем на Add Button. В поле Text введите название кнопки. Например, 📊 Отчет по Яндекс Метрике:

Название inline-кнопки

В Additional Fields нажмите кнопку Add Field и выберите из выпадающего списка Callback Data. Это обязательный шаг, без которого ваша основная логика получения статистики из Яндекс Метрики не будет работать:

Add Field - Callback Data

Callback Data - это скрытое значение, которое отправляется вашему чат-боту при нажатии inline-кнопки. Пользователь его не видит, но оно дает возможность далее выполнять определенные действия в боте по заданному сценарию. В нашем workflow это нужно, чтобы узел Switch понял, какую кнопку нажали, и запустил нужную ветку.

В моем примере поле Callback Data имеет значение ym_report, но вы можете задать любое другое. Главное, чтобы оно дальше использовалось в рабочем процессе. Если вы работаете по моему шаблону n8n, это значение лучше не менять:

Callback Data - ym_report

На этом настройка узла-действия Telegram по ветке start завершена. Вы можете попробовать запустить этот узел, чтобы посмотреть, как сообщение с inline-кнопкой будет выглядеть в боте Telegram:

Настроенное сообщение с inline-кнопкой

Если вам не нравится системное уведомление This message was sent automatically with n8n, вы можете его скрыть. Для этого вернитесь в настройки узла и в самом низу в настройках Additional Fields добавьте поле Add Field - Append n8n Attribution:

Add Field - Append n8n Attribution

И просто отключите эту настройку:

Отключите опцию Append n8n Attribution

Теперь сообщения будут приходить без этого уведомления.

Закройте настройки узла Telegram. Нажмите снизу кнопку Execute workflow, чтобы выполнить тестовый запуск вашего рабочего процесса:

Execute workflow

Откройте вашего бота и нажмите на inline-кнопку 📊 Отчет по Яндекс Метрике. Вы должны увидеть, как по цепочке запустилось несколько узлов и выполнение остановилось на Switch:

Процесс остановился на Switch, пока следующая ветка не настроена

Примечание: если меню еще не было: отправьте /start, а затем нажмите inline-кнопку 📊 Отчет по Яндекс Метрике.

Откройте настройки узла Switch. Для создания еще одного правила внутри Switch нажмите на кнопку Add Routing Rule:

Добавить новое правило

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

На предыдущем шаге в Callback Data кнопки мы указали ym_report. Чтобы Switch направил выполнение в нужную ветку, добавьте новое правило - из входных данных возьмите поле data объекта callback_query (callback_query.data) и перетащите его в value1:

Перетащите поле data в value1 нового правила

Именно в этом поле приходит значение Callback Data нажатой кнопки. В value2 укажите ym_report - то же скрытое значение, которое вы задали кнопке в узле Telegram. Если вы его изменили, то добавьте свое. В правиле можно оставить условие is equal to (равно), но саму ветку переименовать, указав в Rename Output - Output Name собственное имя. Например - report.

Таким образом, итоговое второе правило, где будет происходить вся основная работа вашего workflow n8n, выглядит так:

Настройки основного правила в узле Switch

Нам осталось добавить последнее правило, которое бы срабатывало в боте тогда, когда пользователь (или вы) не выполнил команду /start и не нажал на inline-кнопку (ym_report), а сделал что-то другое. Для этого в настройках узла Switch в разделе Options нажмите на кнопку Add option и добавьте Fallback Output:

Options - Add option - Fallback Output

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

Fallback Output - Extra Output

Fallback Output - это запасной выход Switch. Сюда попадает все, что не подошло ни под одно правило (в нашем случае - не /start и не ym_report), а это Extra Output - вариант этого запасного выхода. n8n создает отдельную дополнительную ветку Fallback (ее можно переименовать, но мы этого делать не будем).

Созданные правила и ветки в узле Switch

Именно на нее мы повесим узел с подсказкой, который будет напоминать пользователю (нам) о том, как запустить рабочий процесс по основному сценарию и получить статистику из счетчика Яндекс Метрики.

Для этого рядом с дополнительной веткой Fallback нажмите на иконку + и в строке поиска введите Telegram. Выберите Action - Send a text message:

Action - Send a text message

В настройках этого узла укажите Chat ID. Обновления Telegram бывают разными, поэтому идентификатор чата может лежать в разных полях: у текстового сообщения - в message.chat.id, у нажатия кнопки - в callback_query.message.chat.id. Ветка Fallback как раз может получить и то, и другое. Поэтому здесь лучше использовать конструкцию:

Ее смысл достаточно простой - взять id из message.chat.id, а если его нет - из callback_query. Символ || означает логическое условие ИЛИ.

Заполненное поле Chat ID

Последняя настройка узла - это поле Text. В него введите то, что вы хотите, чтобы отображалось тогда, когда пользователь отправил не /start или не нажал на inline-кнопку. Например: Напиши /start, а затем нажми кнопку 📊 Отчет по Яндекс Метрике:

Текст сообщения

Примечание: не забудьте отключить опцию Append n8n Attribution, чтобы не отображалось системное сообщение от n8n.

В итоге, если отправить в чат что угодно, кроме /start, и не нажать кнопку отчета, бот ответит вам сообщением-подсказкой:

Сообщение-подсказка

На этом этапе я рекомендую переименовать названия узлов, чтобы вы потом не запутались. Например, так:

Переименование узлов

Теперь мы можем двигаться дальше, по центральной ветке, и настраивать основную логику workflow.

Ветка report - основная ветка, на которой будет формировать итоговый отчет Яндекс Метрики

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

В качестве демонстрации статистики из Яндекс Метрики я буду использовать шаблоны (presets) API отчетов. Через них можно собрать отчет прямо из интерфейса Telegram-бота без лишней сложности. Другие варианты настройки сильно усложняют workflow в n8n. А я всегда в своих материалах стараюсь идти по пути наименьшего сопротивления, что вы все вышеприведенные шаги смогли повторить самостоятельно.

Для этого на ветке report нажмите на иконку + и в строке поиска введите Telegram. Выберите Action - Send message and wait for response:

Send message and wait for response

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

Повторно запустите узел Показ inline-кнопки и нажмите в своем чат-боте на нее. В результате дальше по цепочке через Switch они попадут в Input только что созданного узла Send message and wait for response:

Данные с предыдущего узла

Теперь нам необходимо заполнить настройки нужными данными. Во-первых, перетащите поле id из объекта chat (chat.id), который является объектом message, а тот, в свою очередь является частью callback_query, в поле Chat ID:

Перетащите поле id из объекта chat в поле Chat ID. Оно лежит в callback_query.message.chat.id (callback_query - message - chat - id):

Перетащите поле id в Chat ID

Если перетащить из схемы именно это поле, в условии получится:

В поле Message добавьте свое сообщение, которое будет напоминать вам о выборе конфигурации отчета. Например: Выбери шаблон отчета (preset), период и модель атрибуции:

Заполнение поля Message

В разделе Response Type измените значение на Custom Form:

Response Type - Custom Form

В режиме sendAndWait бот отправляет сообщение и ждет ответ. Response Type как раз задает, в каком виде этот ответ собрать:

  • Custom Form - форма с полями (текст, списки и т.д.) по ссылке n8n. Удобно использовать, когда нужно сразу несколько параметров, как в нашем примере;
  • Approval - кнопки подтверждения вроде Approve / Decline (да/нет). Тут нет формы, только решение пользователя. Для нашего примера не подойдет;
  • Free Text - свободный текстовый ответ: пользователь просто пишет сообщение в чат, а бот ждет этот текст. Подходит для одного значения (например: введи номер счетчика Яндекс Метрики), но не для нескольких полей сразу.

Другими словами, Custom Form - анкета, Approval - да/нет, а Free Text - один текстовый ответ.

Следующая настройка - это Define Form - Using Fields Below. Это означает, что мы сами создаем форму прямо в этом узле со своим набором полей и опций. Поочередно добавим несколько таких полей для заполнения:

Add Form Element

Задайте для первого поля такие настройки:

  • Field Name - counter_id
  • Element Type - Text type
  • Required Field - включено

Пример первого поля (counter_id)

В это поле вы будете вводить ID счетчика Яндекс Метрики, из которого планируете получить статистику.

Снова нажмите на кнопку Add Form Element и добавьте еще одно поле с такими настройками:

  • Field Name - preset
  • Element Type - Dropdown
  • Option - по очереди: sources_summary, search_engines, sources_sites, tech_browsers, tech_devices, traffic, geo_country, content_entrance;
  • Required Field - включено

Пример второго поля (preset)

Этот список - шаблоны Яндекс Метрики. В API отчетов параметр preset автоматически задает метрики и группировки, которые необходимы для того или иного отчета. Вы можете задать свою собственную конфигурацию из параметров (dimensions) и показателей (metrics), а можете использовать другой список шаблонов (не мой из этого руководство), который подробно представлен в официальной документации Яндекса.

Следующее поле, которое нужно создать, имеет такие настройки:

  • Field Name - date_from
  • Element Type - Text type
  • Text input - 2026-07-01
  • Required Field - включено

Оно предназначено для ввода даты начала периода, за который вы хотите выгрузить данные.

Вам нравится автоматизировать рабочие процессы? Тогда вам обязательно нужно пройти онлайн-курс «n8n для маркетологов».

Следующее поле - точно такое же, только для даты окончания отчетного периода:

  • Field Name - date_to
  • Element Type - Text type
  • Text input - 2026-07-15
  • Required Field - включено

Дата начала и дата завершения (date_from и date_to)

Для полей date_from и date_to я специально добавил подсказки, так как даты нужны в формате YYYY-MM-DD (например, 2026-07-01). Он выглядит «перевернутым» относительно привычного ДД.ММ.ГГГГ. Но так требует API Яндекс Метрики. Период в запросе передается как date1 / date2 именно в ISO-формате YYYY-MM-DD. Если указать дату иначе, запрос к API, скорее всего, завершится ошибкой.

Последнее поле, которое мы добавив для заполнения - это:

  • Field Name - attribution
  • Element Type - Dropdown
  • Option - по очереди: last, lastsign, cross_device_first, cross_device_last_significant, automatic;
  • Default value - lastsign;
  • Required Field - включено

Пример последнего поля (attribution)

Для API отчетов доступна параметризация - механизм задания параметров для некоторых группировок и метрик. И там мы можем добавить модель атрибуции. Это поле как раз и будет отвечать за это в нашем отчете.

Чтобы открыть текущую форму для заполнения, в разделе Options в самом низу нажмите на кнопку Add option и выберите Message Button Label:

Add option - Message Button Label

В поле Message Button Label введите текст кнопки. Например: Создать отчет:

Message Button Label

Еще раз нажмите Add option и выберите Response Form Title. Эта настройка отвечает за заголовок на странице формы. Введите произвольный title. Например: Параметры отчета Яндекс Метрики:

Response Form Title

Следующую настройку, которую можно добавить - это Response Form Description. Она позволяет добавить подсказку прямо под заголовком формы. Давайте сделаем это и добавим туда следующий текст:

  • counter_id - ID счетчика
  • preset - готовый шаблон API отчетов
  • date_from/date_to - в формате YYYY-MM-DD
  • attribution - модель атрибуции

Response Form Description

Еще одна настройка, которую я предлагаю добавить в этом узле - Response Form Button Label. После нажатия на текст этой кнопки заполненные данные уходят в n8n, и workflow продолжается. Давайте назовем ее Сформировать отчет:

Response Form Button Label

Чтобы наш бот не ждал от нас бесконечного ответа, добавим настройку Limit Wait Time. Задайте для нее следующие данные:

  • Limit Type - After Time Interval
  • Amount - 30
  • Unit - Minutes

Limit Wait Time

Таким образом, наш бот ждет заполнения формы до 30 минут. После 30 минут ожидание обрывается. Если пользователь (вы) так и не нажал кнопку формирования отчета, то данные формы в n8n не приходят, а сам workflow дальше по цепочке не идет. Обычно такой запуск (execution) завершается с ошибкой/таймаутом ожидания.

В завершение не забудьте отключить опцию Append n8n Attribution, чтобы не отображалось системное сообщение от n8n.

Закройте настройки узла и запустите его на тест. В Telegram придет ваше сообщение с кнопкой, после нажатия на которую вам откроется форма, в которой вы заполните свои данные:

Заполнение формы с конфигурацией отчета

Нажав Сформировать отчет, вернитесь в n8n к этому узлу (или в Executions). В результате выполнения данные формы придут одним item - с конфигурацией отчета для запроса к API Яндекс Метрики.

Результат выполнения узла после отправки формы

Пока все просто! Но вот теперь начинается самая главная и сложная часть - подготовить данные к запросу API таким образом, чтобы Яндекс понял, что мы от него хотим. Поэтому следующим звеном по цепочке будет идти узел Code. Добавьте его в конец ветки report.

Узел Code

Вставьте в редактор JavaScript нижеприведенный код:

В настройках узла это будет выглядеть так:

Код на JavaScript в узле Code

Этот узел Code - подготовка данных после формы, до запроса к API отчетов Яндекс Метрики.

Выполните тестовый запуск, заполните данные по своему отчету и сформируйте его. Как только workflow дойдет до последнего узла, откройте вкладку Executions:

Вкладка "Executions"

И посмотрите, какие данные пришли на выходе (Output):

Исходные данные о вашем отчете

Если кратко, то он:

  • достает поля формы (counter_id, preset, даты, attribution);
  • проверяет, что счетчик заполнен и даты в формате YYYY-MM-DD;
  • добавляет понятные названия (preset_title, attribution_title);
  • подставляет chat_id из триггера Telegram (чат, где нажали кнопку);
  • отдает дальше один item.

Эти данные нам понадобятся на следующем узле HTTP Request, в котором мы будем заполнять все нужные данные по запросу к API отчетов Яндекс Метрики. chat_id и _title для самого API не нужны, но они пригодятся позже для HTML и отправки в Telegram.

Узел HTTP Request

Чтобы его правильно заполнить, вы должны уметь работать с API отчетов Яндекс Метрики и понимать, как собирается HTTP-запрос с query-параметрами, заголовками, токеном доступа и набором группировок и метрик (явно через dimensions/metrics или через preset).

Поскольку мы используем шаблоны (preset - предопределенный набор параметров и показателей в отчете с ), то тело запроса использовать не нужно. Раскройте настройки узла HTTP Request и укажите:

  • Method - GET
  • URL - https://api-metrika.yandex.net/stat/v1/data
  • Send Query Parameters - включено
  • Authentication - None

Настройки HTTP Request

Затем нужно добавить несколько параметров, задав им имена (Name) ровно такие же, как этого требует сам Яндекс для запроса к API. А вот значения (Value) вам необходимо перетащить из входных данных предыдущего узла. Имена параметров такие:

  • ids - идентификатор счетчика Яндекс Метрики
  • date1 - дата начала периода выборки в формате YYYY-MM-DD
  • date2 - дата окончания периода выборки в формате YYYY-MM-DD
  • preset - шаблон отчета
  • accuracy - full (размер выборки, используемой для отчета)
  • attribution - модель атрибуции
  • lang - ru (язык ответа)

В интерфейсе n8n узла HTTP Request это будет выглядеть так:

Пример заполнения параметров запроса (Query Parameters)

После заполнения параметров запроса активируйте опцию Send Headers и добавьте заголовок Authorization со значением:

, где token - ваш токен доступа Яндекс Метрики, который вы получили на предыдущем шаге.

Authorization: OAuth <access_token>

На этом настройка узла HTTP Request завершена. Запустите рабочий процесс, сформируйте отчет в форме, и в ответе Яндекса вы увидите данные по вашему счетчику Метрики согласно выбранному шаблону:

Данные вашего счетчика Яндекс Метрики

Однако, в таком формате мы не можем отправить данные в Telegram. Нам нужно их окончательно преобразовать. Для этого используется еще один узел Code - JavaScript.

Узел Code

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

Найдите строку:

И замените chat_id на ваш собственный идентификатор чата Telegram. Все остальное оставьте без изменений.

Этот код готовит данные после формы к запросу в Яндекс Метрику. Он достает из ответа формы counter_id, preset, даты и attribution, проверяет счетчик и формат дат, добавляет понятные названия (preset_title, attribution_title) и chat_id чата из Telegram. На выходе получается один аккуратный item.

Лучший онлайн-курс по работе с n8n для интернет-маркетологов уже доступен для всех желающих!

Протестируйте этот шаг, нажав на кнопку Execute step. В выходных данных вы должны увидеть сформировать файл:

Тестирование шага

Это HTML-страница со статистикой вашего счетчика Яндекс Метрики. Вы можете скачать этот файл, нажав на кнопку Download, сохранить его на компьютере, а затем открыть как обычную вкладку браузера:

Пример полученной статистики Яндекс Метрики (в формате HTML)

Таким образом, мы получили готовый файл HTML, который теперь необходимо отправить в нашего Telegram-бота. Для этого нажмите на иконку + у последнего узла Code и в строке поиска введите Telegram. Выберите Action - Send a document:

Telegram - Send a document

Настройки, которые вам нужно задать для финального узла-действия, следующие:

  • Credential - ваши учетные данные Telegram-бота;
  • Resource - Message;
  • Operation - Send Document;
  • Chat ID - ваш идентификатор чата (можете ввести вручную);
  • Binary File - включено.

Настройки узла-действия Send a document

Чтобы передавать вместе с документом текстовую подпись (например, тип шаблона, диапазоны дат или какой-то комментарий), мы можем добавить дополнительную опцию Caption:

Additional Fields - Add Field - Caption

Например, такой текст:

Напротив каждого пункта подставьте свое поле из входных данных. При отправке значения подставятся динамически:

Подпись к документу в Telegram

Он отобразится прямо под документом в чате Telegram.

Вы также можете добавить поле File Name и подставить для него поле fileName, в котором сохраняется название файла:

Поле File Name для названия документа

На этом настройка рабочего процесса в n8n для получения статистики из Яндекс Метрики завершена!

Запустите свой workflow и убедитесь, что HTML-документ с данными и подписью приходит в вашего бота Telegram:

Статистика Яндекс Метрики в Telegram-боте

В завершение активируйте (опубликуйте) workflow, чтобы он работал постоянно. Для этого в правом верхнем углу нажмите на кнопку Publish:

Workflow - Publish

Теперь ваш Telegram-бот сможет в любой момент принимать команды и присылать статистику ваших счетчиков Яндекс Метрики:

Опубликованный рабочий процесс

⚠️ Абонемент на все курсы! Уникальное предложение для юридических лиц. До 31 августа!
ПОДРОБНЕЕ