Добавление 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>! превратится в приветствие с именем читателя.

Ответ может содержать до 200 символов. Некоторые эмодзи считаются за два символа. Если текст длиннее, FLOWIN обрежет начало и оставит конец ответа.

Текст замены

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

Описание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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