Что Мы Делаем
Пошаговая инструкция на примере сценария «подпишись на канал — получи лид-магнит»: пользователь нажимает кнопку, бот проверяет через Telegram Bot API, подписан ли он на нужный канал, и в зависимости от результата либо выдаёт PDF-гайд, либо просит сначала подписаться.
Как это работает
В FSTRK есть готовый DTL-тег telegram.is_channel_member — он сам обращается к Telegram и возвращает, состоит ли пользователь в нужном канале. Собирать HTTP-запрос к Telegram Bot API вручную больше не нужно: вся логика проверки укладывается в один тег внутри процедуры узла.
Тег работает только если бот добавлен в канал администратором. Без этого Telegram будет возвращать ошибку доступа независимо от того, подписан пользователь или нет.
Шаг 1. Готовим бота и канал
- Добавьте бота администратором в канал — зайдите в настройки канала в Telegram → «Администраторы» → «Добавить администратора» → выберите вашего бота. Права можно выдать минимальные, важен сам факт членства бота в канале.
- Узнайте ID канала через веб-версию Telegram:
- откройте web.telegram.org и войдите в свой аккаунт;
- откройте нужный канал в списке чатов;
- посмотрите на адресную строку браузера — в ней будет числовой ID канала со знаком минус и префиксом
-100, например-1001234567890. Это и есть готовыйchat_id, который используется в запросе ниже.

Шаг 2. Создаём узел проверки подписки
Создаём в сценарии узел — например, назовём его ЛидМагнит - проверка подписки — и включаем в его настройках тумблер «Действия». Во вкладке «Расширенный режим (DTL-код)» прописываем логику проверки и ветвления:
{% telegram.is_channel_member channel_uid=tg_channel_id contact_id=messenger_id as is_member %}
{# проверяем результат для данного пользователя #}
{% if is_member %}
{# пользователь подписан на канал #}
{% switch "ЛидМагнит - выдача PDF" %}
{% else %}
{# пользователь не подписан на канал #}
{% switch "ЛидМагнит - не подписан" %}
{% endif %}
Заменяем tg_channel_id на ID канала из Шага 1 (например, -1001234567890). messenger_id трогать не нужно — это системная переменная, она автоматически подставит Telegram ID пользователя, который сейчас находится в сценарии.

Названия узлов — под ваш сценарий
"ЛидМагнит - выдача PDF" и "ЛидМагнит - не подписан" — это узлы, которые нужно создать заранее и подставить сюда свои названия. Не забудьте это сделать перед публикацией сценария — иначе switch будет ссылаться на несуществующий узел.
Шаг 3. Собираем сценарий вокруг проверки
Пример полной цепочки для лид-магнита:
- Пользователь нажимает кнопку «Забрать PDF-гайд» в любом месте сценария.
- Бот переходит в узел «ЛидМагнит — подписка», который просит подписаться на канал (со ссылкой на него) и содержит кнопку со ссылкой на канал, а также кнопку «Я подписался».
- Кнопка «Я подписался» ведёт в узел проверки подписки из Шага 2.
- Дальше срабатывает ветвление:
- если подписан → узел «ЛидМагнит — выдача PDF» отправляет сообщение с прикреплённым файлом;
- если не подписан → узел «ЛидМагнит — не подписан» объясняет, что подписка не найдена, и повторно показывает кнопку «Проверить снова».
Кнопка повторной проверки
Кнопку «Проверить снова» в узле «не подписан» настраиваем с типом действия «Переход на узел», а в качестве целевого узла указываем «ЛидМагнит — проверка подписки» — тот же узел из Шага 2. Кнопка просто повторяет проверку заново: если пользователь уже подписался, сработает ветка с выдачей PDF, если нет — снова окажется в этом же узле «не подписан».

Если проверка не срабатывает
Если is_member всегда приходит пустым/ложным независимо от реальной подписки — проверьте по порядку:
- бот действительно добавлен в канал администратором (Шаг 1, пункт 1);
channel_uidв теге совпадает с ID из адресной строки веб-версии Telegram, вместе со знаком-и префиксом100;contact_idв теге действительно содержитmessenger_id, а не что-то заменённое вручную по ошибке.
Итог
Мы настроили узел с HTTP-запросом к Telegram Bot API, разобрали ответ через DTL-условие и собрали вокруг него законченный сценарий выдачи лид-магнита с проверкой подписки и возможностью повторить попытку. Логика проверки не привязана к конкретному лид-магниту — тот же узел можно переиспользовать в любом другом сценарии, где нужно закрыть контент подпиской на канал.
Точно такой же сценарий, но для мессенджера MAX — в статье Как настроить сценарий проверки подписки на MAX-канал.