Добавление callback-кнопок в Telegram

Callback-кнопками в Telegram называют кнопки, при нажатии на которые отправляется запрос боту. Ответ бота показывается во всплывающем окне.

Вместе с запросом бот получает информацию о том, кто нажал кнопку. Поэтому он может отвечать каждому пользователю по-разному, например подставлять его имя в текст ответа.

FLOWIN позволяет автоматически добавлять callback-кнопки к пересылаемым сообщениям, переносить в них часть текста, копировать существующие кнопки и собирать статистику нажатий.

Нажатие кнопки открывает спрятанную записку с подробностями

Зачем нужны callback-кнопки

В callback-кнопку можно спрятать важные детали сообщения. Например, в инвестиционном канале оставить в тексте идею сделки и название акции, а цену покупки или продажи, стоп-лосс и тейк-профит показывать только после нажатия. Если кто-то автоматически копирует только текст сообщения, эти условия в копию не попадут.

Чтобы получить полный сигнал, нужно нажать кнопку. FLOWIN запишет нажатие, и в статистике будет видно, кто и когда открывал подробности. Это помогает находить тех, кто автоматически собирает ваш контент. Сам ответ тоже можно скопировать, поэтому кнопка усложняет копирование, но не исключает его.

Ограничение для альбомов

К обычному альбому из нескольких фото или видео callback-кнопки не добавляются.

Генерация callback-кнопки

В режиме «Генерация» FLOWIN добавляет к пересылаемому сообщению новую кнопку. Вы задаёте её название и выбираете, что показать после нажатия: заранее написанный ответ или фрагмент самого сообщения.

Для настройки потребуется включённая пересылка в режиме «Копия». В качестве отправителя выберите бота, подключённого по токену, поскольку отправлять сообщения с callback-кнопками могут только боты.

Для примера возьмём сигнал по акции вымышленной компании. Условия сделки из строки «Подробности» перенесём в кнопку «Подробнее»:

Пример инвестиционного сигнала

Акции компании «Вектор». Идея: покупка на пробое сопротивления.
Подробности: покупка 150 ₽; стоп-лосс 145 ₽; тейк-профит 165 ₽.

  1. Откройте @flow_in_bot, отправьте команду /start и нажмите «Панель управления».

    Вход в панель управления через @flow_in_bot
    Вход в панель управления через @flow_in_bot.
  2. Откройте «Меню» → «Кнопки» → «Cb кнопки». Нажмите «Создать» и выберите «Генерация».

    Раздел «Cb кнопки» в меню FLOWIN
    Раздел «Cb кнопки» в меню FLOWIN.
    Создание кнопки в режиме «Генерация»
    Создание кнопки в режиме «Генерация».
  3. В поле «Название» введите «Подробнее». В поле «Содержимое» вставьте <regexp>(?<=Подробности: ).*$</regexp>. Этот шаблон выбирает текст после слов «Подробности: ». Нажмите «Создать».

    Название и шаблон содержимого кнопки
    Название и шаблон содержимого кнопки.
  4. У созданной кнопки нажмите «Применить». В окне «Выбор пересылок» отметьте нужную пересылку и нажмите «Сохранить».

    Применение созданной кнопки к пересылке
    Применение созданной кнопки к пересылке.
    Выбор пересылки с ботом-отправителем
    Выбор пересылки с ботом-отправителем.
  5. Отправьте пример в чат-источник. В чате назначения вместо условий сделки появится многоточие. Нажмите «Подробнее»: откроются цена покупки, стоп-лосс и тейк-профит.

    Исходный сигнал с ценой покупки, стоп-лоссом и тейк-профитом
    Исходный сигнал с ценой покупки, стоп-лоссом и тейк-профитом.
    Условия сделки перенесены в кнопку «Подробнее»
    Условия сделки перенесены в кнопку «Подробнее».
    Нажатие «Подробнее» показывает перенесённый текст
    Нажатие «Подробнее» показывает перенесённый текст.

Копирование исходных callback-кнопок

Режим «Копирование» нужен, если у исходного сообщения уже есть callback-кнопка. FLOWIN прочитает её ответ и добавит к пересланному сообщению кнопку с тем же названием и текстом.

Для копирования также нужна пересылка в режиме «Копия», где отправителем выбран бот, подключённый по токену. Нажимать исходную кнопку будет слушатель, то есть аккаунт, который читает сообщения в чате-источнике. Убедитесь, что кнопка отвечает ему текстом.

Какой ответ увидят читатели

FLOWIN сохраняет ответ, который исходный бот показал слушателю. В копии этот текст будет одинаковым для всех читателей, даже если исходная кнопка отвечала каждому по-разному. Другие действия кнопки и диалог с ботом не переносятся.

  1. Откройте «Меню» → «Пересылки» и нажмите «Настройки» у нужной пересылки.

    Переход к списку пересылок
    Переход к списку пересылок.
    Открытие настроек нужной пересылки
    Открытие настроек нужной пересылки.
  2. В окне настроек откройте вкладку «Кнопки». В блоке «Чтение кнопок» включите «Cb кнопки» и нажмите «Сохранить».

    Чтение callback-кнопок в настройках пересылки
    Чтение callback-кнопок в настройках пересылки.
  3. Откройте «Меню» → «Кнопки» → «Cb кнопки». Нажмите «Создать» и выберите «Копирование».

    Переход к callback-кнопкам для настройки копирования
    Переход к callback-кнопкам для настройки копирования.
    Создание настройки в режиме «Копирование»
    Создание настройки в режиме «Копирование».
  4. В открывшемся окне нажмите «Создать».

    Создание настройки копирования кнопок
    Создание настройки копирования кнопок.
  5. У созданной настройки нажмите «Применить». В окне «Выбор пересылок» отметьте пересылку с включённым чтением кнопок и нажмите «Сохранить».

    Применение копирования к пересылке
    Применение копирования к пересылке.
    Выбор пересылки с включённым чтением кнопок
    Выбор пересылки с включённым чтением кнопок.
  6. Отправьте в чат-источник новый сигнал с кнопкой. В чате назначения откройте скопированную кнопку: название и условия сделки должны совпасть с исходными.

    Исходная кнопка и её текстовый ответ
    Исходная кнопка и её текстовый ответ.
    Скопированная кнопка показывает тот же ответ
    Скопированная кнопка показывает тот же ответ.

Как изменить callback-кнопку

Чтобы изменить уже созданную кнопку, откройте список «Cb кнопки».

  1. Нажмите «Изменить» у нужной кнопки.

    Открытие основных настроек кнопки
    Открытие основных настроек кнопки.
  2. Измените нужные поля и нажмите «Сохранить». Проверьте новые данные в списке.

    Сохранение изменённого описания
    Сохранение изменённого описания.
    Новое описание в списке кнопок
    Новое описание в списке кнопок.

Настройки callback-кнопок

В режиме «Генерация» доступны все пять полей, описанных ниже. В режиме «Копирование» можно изменить только «Цвет» и «Описание», поскольку название и содержимое берутся у исходной кнопки.

Название

Укажите текст, который будет виден на кнопке, например «Подробнее». Это обязательное поле.

Можно использовать метатеги, которые подставляют данные сообщения. Например, <src-chat-name> подставляет название чата-источника.

Цвет

Выберите один из четырёх вариантов: «По умолчанию», «Синий», «Красный», «Зелёный». При выборе «По умолчанию» новая кнопка получит стандартный цвет Telegram, а скопированная сохранит исходный цвет.

Доступные цвета callback-кнопки
Доступные цвета callback-кнопки.

Содержимое

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

Чтобы перенести часть сообщения в кнопку, заключите шаблон поиска в <regexp>…</regexp>. По умолчанию используется <regexp>\s.{20,180}$</regexp>: он выбирает от 20 до 180 символов в конце сообщения после пробела или переноса строки. Если ответ окажется пустым, FLOWIN не добавит кнопку.

Если написать ответ обычным текстом, без <regexp>, содержимое сообщения останется прежним. В ответ можно добавить метатеги <clicker-name> и <clicker-id>. FLOWIN подставит вместо них имя и Telegram ID того, кто нажал кнопку. Например, Здравствуйте, <clicker-name>! превратится в приветствие с именем читателя.

Текст замены

Этот текст появится в сообщении вместо фрагмента, перенесённого в кнопку. По умолчанию на его месте остаётся многоточие .... Если оставить поле пустым, фрагмент будет удалён без замены. Настройка не меняет сообщение, если в «Содержимом» задан готовый ответ без шаблона поиска.

Описание

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

Как выбирать сообщения для кнопки

Чтобы добавлять кнопку только к определённым сообщениям, привяжите к ней фильтр, например по слову «акции». Сообщения без этого слова будут пересылаться, но без кнопки. Если такой фильтр привязать к самой пересылке, сообщения без слова «акции» не будут отправлены. Настройка описана в инструкции по фильтрам.

Другие действия с кнопками

Рядом с каждой настройкой в списке «Cb кнопки» есть меню «Ещё». В нём доступны следующие действия:

  • «Применить» открывает выбор пересылок, в которых будет работать кнопка.
  • «Дублировать» создаёт копию настройки.
  • «Выбрать проект» добавляет кнопку в проект.
  • «Удалить» удаляет настройку.
Дополнительные действия с callback-кнопкой
Дополнительные действия с callback-кнопкой.

Уже выбранные пересылки можно посмотреть через «Пересылки [1]». Число в скобках показывает их количество. В этом окне можно добавить пересылки или убрать те, где кнопка больше не нужна.

Как посмотреть статистику нажатий

В аналитике видно, кто нажимает ваши кнопки и как быстро открывает их после публикации. Статистика собирается по чату назначения: в неё попадают кнопки из всех пересылок в этот чат.

  1. Откройте «Пересылки» в меню панели. У нужной пересылки нажмите «cb кнопки» с числом привязанных настроек.

    Переход от пересылки к статистике нажатий
    Переход от пересылки к статистике нажатий.
  2. В списке «Последние 10 кнопок» выберите 10, 20 или 30. Появится статистика по пользователям: имя, Telegram ID и нажатия.

    Нажатия пользователей и время до первого нажатия
    Нажатия пользователей и время до первого нажатия.

Как читать показатели:

  • В столбце «клики» указано, сколько разных кнопок нажал пользователь. Например, 3/5 означает, что он нажал 3 кнопки из 5. Повторные нажатия не увеличивают это число.
  • «среднее» и «медиана» показывают, сколько времени обычно проходит до первого нажатия. Медиана меньше зависит от отдельных нажатий с большой задержкой.
  • «минимум» и «максимум» показывают самую короткую и самую долгую задержку до первого нажатия.
  • В полоске кнопок цветом выделены те, которые пользователь нажал. Номер показывает порядок первого нажатия, а число в скобках указывает, сколько раз он нажал эту кнопку.

Если один пользователь открывает почти все новые сигналы с одинаковой короткой задержкой, возможно, он собирает их автоматически. Сравните время его нажатий с появлением ваших сигналов в другом канале. Сами по себе быстрые нажатия ещё не доказывают копирование.

Частые вопросы

Чем инлайн-кнопка отличается от callback-кнопки?

Инлайн-кнопки расположены под сообщением в Telegram. Нажатие может, например, открыть ссылку или отправить запрос боту. Callback-кнопка относится ко второму варианту: в FLOWIN она показывает текстовый ответ. Если нужен переход на сайт или в канал, используйте кнопку со ссылкой.

Чем готовый ответ отличается от переноса части поста в кнопку?

Готовый текст в поле «Содержимое» задаёт ответ кнопки и не меняет сам пост. Шаблон в тегах <regexp>…</regexp> берёт фрагмент из сообщения и переносит его в ответ. На месте этого фрагмента появляется значение поля «Текст замены», по умолчанию многоточие. Оба варианта задаются в настройках содержимого.

Скопированная кнопка сохранит персональные ответы исходного бота?

Нет. FLOWIN сохраняет текст, который исходный бот показал слушателю, то есть аккаунту, читающему чат-источник. Все читатели копии увидят этот сохранённый ответ, даже если исходный бот отвечал каждому по-разному. Диалог с ботом и другие действия кнопки не переносятся.

Почему кнопка не добавилась, если шаблон не нашёл нужный фрагмент?

Если после обработки поля «Содержимое» ответ пустой или состоит из пробелов, FLOWIN не создаёт кнопку. Так бывает, когда поле содержит только шаблон, а подходящего фрагмента в сообщении нет. Проверьте шаблон на тексте, который пересылаете. Также учитывайте ограничение: к обычным альбомам из нескольких фото или видео callback-кнопки не добавляются.

Повторное нажатие увеличивает показатель «клики»?

Нет. В столбце «клики» считается количество разных кнопок, которые нажал пользователь. Например, 3/5 означает три кнопки из пяти, даже если одну из них нажали несколько раз. Повторы видны отдельно: число в скобках у каждой кнопки показывает количество её нажатий. Подробнее о показателях читайте в разделе статистики.

Можно ли по быстрым нажатиям доказать автоматическое копирование?

Нет. Одинаковая короткая задержка перед нажатием может быть поводом проверить, где появляется ваш контент, но сама по себе ничего не доказывает. Сопоставьте нажатия с появлением материалов в другом канале. Кнопка затрудняет копирование только текста поста, однако её ответ тоже можно скопировать.