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 → Триггеры → «Только для админов») можно ограничить добавление триггеров только для администраторов.