Trigger Bot — Триггеры

Trigger Bot — Триггеры

Fenicu

Триггеры — основная функция бота. Это автоматические ответы на ключевые слова или фразы в чате.

Создание триггера

1. Напишите или перешлите сообщение, которое станет ответом (текст, фото, видео, стикер, GIF)

2. Ответьте на это сообщение командой: /add ключевая фраза

Пример: простой текстовый триггер

Допустим, вы хотите, чтобы на слово «правила» бот отвечал текстом правил чата.

1. Напишите в чат: «Правила чата: 1. Не спамить 2. Быть вежливым 3. Не флудить»

2. Ответьте на это сообщение: /add правила

Теперь когда кто-то напишет «правила», бот отправит текст с правилами.

Пример: триггер с фото

1. Отправьте фото (например, мем или инструкцию)

2. Ответьте на фото: /add мем

Теперь на слово «мем» бот отправит это фото.

Создание в личке (контент не виден участникам)

Если триггер должен оставаться секретом до момента срабатывания (розыгрыш, голосовая команда, мем-сюрприз), сообщение-ответ не нужно показывать в групповом чате. Бот умеет вести весь процесс создания в личных сообщениях через wizard.

Способ 1: команда в самом групповом чате

Отправьте в нужном чате /newtrigger (без аргументов). Бот пришлёт сообщение с кнопкой «Создать в личных сообщениях» — клик откроет ЛС с вами и заранее выберет этот чат.

Способ 2: команда в ЛС с ботом

Откройте ЛС с ботом и отправьте /newtrigger. Бот покажет список чатов, в которых вам разрешено создавать триггеры, — выбираете нужный кнопкой.

Шаги wizard'а

  • 1. Выбор чата — только из ЛС-входа. Из группового deep-link'а этот шаг пропускается.
  • 2. Контент — отправьте боту сообщение, которое станет ответом триггера. Любой тип: текст, фото, видео, GIF, стикер, документ, голосовое. Если контент — команда вроде /foo, бот переспросит «использовать как контент?».
  • 3. Ключ — текст, на который должен срабатывать триггер.
  • 4. Параметры — кнопками выбираете тип совпадения (точное / содержит / regex), регистр, уровень доступа, шаблонный режим. Любую опцию можно менять до перехода к предпросмотру.
  • 5. Предпросмотр и сохранение — бот отдельным сообщением покажет, как именно ответит на триггер, и кнопку «Сохранить». После сохранения предлагает «Создать ещё один в этом чате» или «Завершить».

В любой момент сессию можно прервать командой /cancel или кнопкой «Отмена». Незаконченный wizard живёт 60 минут; после паузы дольше — стартуйте /newtrigger заново.

Права проверяются как для обычного /add: если в настройках чата включено «только админы добавляют триггеры», wizard будет доступен только администраторам этого чата.

Флаги при создании

Регистрозависимость (-c)

/add -c Привет — сработает только на «Привет», но не на «привет» или «ПРИВЕТ»

Без флага -c: «привет», «Привет», «ПРИВЕТ» — всё сработает.

Тип совпадения

Точное совпадение (по умолчанию): сообщение должно быть ровно таким, как ключ.

/add привет — сработает на «привет», но НЕ на «привет всем» или «ну привет»

Содержит (-in): сработает если ключ встречается где-то в сообщении.

/add -in привет — сработает на «привет», «привет всем», «ну привет друзья»

Регулярное выражение (-r): для опытных пользователей.

/add -r ^(привет|здравствуй) — сработает на «привет» или «здравствуй» в начале сообщения

→ Подробный разбор регулярных выражений с примерами — в разделе ниже.

Ограничение доступа

/add -a секретная команда — сработает только для админов

/add -o мой триггер — только для владельца чата

Шаблонный режим (-t)

/add -t приветствие — включает подстановку переменных (подробнее в разделе «Шаблоны»)

Комбинирование флагов

/add -t -in -a инфо — шаблонный триггер, срабатывает по вхождению, только для админов

Регулярные выражения (-r) подробно

Регулярное выражение — это шаблон, который описывает сразу множество вариантов текста. Если режимов «точное совпадение» и «содержит» не хватает, регулярки дают полную гибкость: перечислить несколько вариантов фразы, поймать любые окончания, числа, знаки препинания и т. д. Регистр по умолчанию не важен (добавьте -c, если нужен точный регистр).

Знак ^ — «начало сообщения» (самое важное)

Символ ^ означает «сообщение должно начинаться с этого». Это причина №1, по которой выражение «срабатывает не на всё, что ожидалось».

  • ^(привет|здравствуй) — сработает, только если сообщение начинается с «привет» или «здравствуй». «Привет, как дела» — да; «ну привет» — нет.
  • Без ^: выражение (привет|здравствуй) поймает слово в любом месте сообщения — и «ну привет», и «привет всем».
  • $ означает «конец сообщения». пока$ сработает, если сообщение заканчивается на «пока».
  • ^ и $ вместе — сообщение должно совпасть целиком.

Важно: список вариантов (а|б|в) работает одинаково для всех перечисленных вариантов. Если кажется, что срабатывает только первый — почти всегда дело в ^: остальные фразы вы тестируете не с начала сообщения. Например,

^(как добавить человека|как привести друга) сработает на сообщения, которые начинаются ровно с этих фраз. «А как привести друга?» — не сработает (перед фразой стоит «а »). Уберите ^, чтобы ловить фразу в любом месте: (как добавить человека|как привести друга).

Из чего состоит выражение

  • (вариант1|вариант2) — любой из перечисленных вариантов
  • ^ — начало сообщения, $ — конец, . — любой один символ
  • .* — любое количество любых символов: купить.*курс поймает «купить наш курс» и «купить онлайн курс»
  • \d — любая цифра, \d+ — одна или больше цифр: заказ \d+ → «заказ 12», «заказ 9999»
  • ? — предыдущий символ необязателен: привет!? → «привет» и «привет!»
  • [ёе] — один символ из набора: над[ёе]жный → «надёжный» и «надежный»
  • Спецсимволы . ( ) [ ] + * ? | \ ^ $ имеют особое значение. Нужен сам символ — экранируйте слешем: \. — точка, \$\d+ — «$5»

Готовые примеры

  • ^(привет|здравствуй|хай|даров) — приветствие в начале сообщения
  • (скидка|промокод|акция) — любое из слов где угодно в сообщении
  • как.{0,20}(добав|приглас|позва) — «как добавить», «как мне пригласить», «как позвать» (между словами до 20 любых символов)
  • заказ\s*№?\s*\d+ — «заказ 5», «заказ №5», «заказ № 5»
  • \b(оффтоп|флуд|спам)\b — слово целиком, не заденет «оффтопчик»
  • ^/(start|help)$ — сообщение ровно «/start» или «/help»

Частые ошибки

  • Срабатывает «только на первый вариант» → проверьте ^: тестируйте фразу как отдельное сообщение, с самого начала, без слов и пробелов перед ней.
  • Забыли экранировать точку/скобку — они означают «любой символ»/«группу», а не сами себя.
  • Нужен точный регистр — добавьте -c. По умолчанию регистр не важен.

Не получается составить выражение? Попросите нейросеть

Если нужен сложный или необычный сценарий, а сами не справляетесь — попросите нейросеть (ChatGPT, Claude, DeepSeek, Gemini) составить выражение за вас. Опишите простыми словами, что должно срабатывать, а что — нет, и обязательно приведите примеры сообщений.

Пример запроса (промпта):

Составь регулярное выражение (синтаксис Python, модуль re) для Telegram-бота.

Нужно, чтобы оно срабатывало на сообщения, где человек спрашивает,
как пригласить или добавить кого-то в чат.

Должно срабатывать на:
- как добавить человека
- как пригласить друга
- подскажите, как позвать людей в чат

НЕ должно срабатывать на:
- как удалить человека
- привет всем

Выражение должно ловить фразу в любом месте сообщения, регистр не важен.
Дай только само выражение и короткое объяснение, как оно работает.

В ответ нейросеть пришлёт готовое выражение, например:

(как|подскажите,? как).{0,20}(добав|приглас|позва).{0,15}(человек|друг|люд)

Останется вставить его в команду (ответом на сообщение-ответ бота):

/add -r (как|подскажите,? как).{0,20}(добав|приглас|позва).{0,15}(человек|друг|люд)

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

Бот защищён от «тяжёлых» выражений: если регулярка слишком сложная и может подвесить обработку, бот отклонит её при добавлении. Это нормально — упростите запрос (или попросите нейросеть сделать проще).

Управление триггерами

/del правила — удалить триггер «правила»

/triggers — список всех триггеров чата с пагинацией. Для каждого триггера можно:

  • Посмотреть ключ, тип, статистику срабатываний
  • Изменить тип совпадения, регистрозависимость, доступ
  • Включить/выключить шаблонный режим
  • Удалить триггер

Кто может управлять триггерами

По умолчанию все участники могут добавлять триггеры. Удалять может автор триггера или админ.

В настройках (/settings → Триггеры → «Только для админов») можно ограничить добавление триггеров только для администраторов.

← Вернуться к оглавлению

Report Page