# Триггеры

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

Желать доброго утра админам (или любым конкретным пользователям), по утрам, если они зайдут в беседу? – Не вопрос.

При отправке пользователями gif’ок вежливо попросить её удалить в течение минуты, и если он это не сделает – удалить гифку и выдать предупреждение, а если сделает – написать «спасибо за понимание»? – Пожалуйста.

Отправлять в чат «Хозяин, вас звали!» с ссылкой на ваш профиль, когда вас упоминают в группе? – Да, и такое возможно.

Основная функция триггера – определенное УСЛОВИЕ, и при его выполнении, происходит определенное ДЕЙСТВИЕ, которое вы задаете сами.

# Тарифы на триггеры

Данная таблица рассказывает о различиях тарифов на триггеры. Лимита на группы условий/группы действий нет – вы можете создать 6 групп действий, в каждой из которой будет по одному действию, или 1 группу действий с шестью действиями для тарифа «Starter».

Если вы выйдете за лимиты триггера или истечет срок тарифа – (появится красная надпись, уведомляющая о том, что превышено количество триггеров или действий в них) триггеры будут работать, с ограничениями. Например, если вы создали 4 действия без тарифа, работать будут три. Также и количество триггеров – если будет больше, чем возможно, остальные просто не будут работать.

# Навигация по триггерам

Заходим в раздел «Триггеры чата», нажимаем на «+ Добавить новый»

Далее, выйдет окно с условиями создания триггера:

Задаем название триггеру.

Подсказка

Старайтесь назвать триггер так, чтобы его было легко найти и редактировать среди других.

# Тип выполнения триггера

«Выполнить все действие» — это значит, что за определенное условие, будет выполнены все указанные и заданные вами далее действия. (В том случае, если вы укажете несколько действий)

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

«Условия» — это определенные сообщения, слова, смайлы, после совершения которых применяются определенные действия.

«Действия» — это определенные реакции на заданные условия, действием может быть ограничение каких-либо действий участника чата, предупреждение, исключение из чата или удаление данного сообщения.

# Отработка триггеров

Отработка триггеров происходит поочередности. На картинке ниже выделен красным номер, по которым идет очередь срабатывания триггеров

Чтобы триггеры работали подряд по порядку необходимо включить тумблер «Продолжить выполнение цепи триггера по окончании текущего триггера» в расширенных настройках, доступных с тарифа «Advanced»

Если тумблер выключен, то сработает только один триггер, тот, который с меньшим номерком.

# Условия триггеров

Создаем условия с помощью «+», открывается отдельное окно «Группа условий» и снизу отдельная кнопка «+». Нажимая на отдельную кнопку, создается еще одна группа условий с отдельными функциями.

Подсказка

В инструменте «Действия» функционал такой же.

# Типы условия:

Всего 18 условий, 4 инициатора, 8 типов сообщений и 6 фильтров для условий на текст сообщения.

# Полное совпадение

Триггер сработает при полном совпадении сообщения с указанным Вами значением в условии. То есть, если укажете в условии «Привет», условие выполнится только при сообщении «Привет». Если будет «Привет. Знаешь…», или «Привет.», или «Привет)» условие НЕ выполнится. *Исключение в том случае, если включить фильтр «Не учитавать символы» ниже, тогда последние два варианта бот пропустит.

# Сообщение начинается с

Триггер сработает, если сообщение пользователя будет начинаться со строк (слов/выражений), указанных вами в значениях условия. Пример: в значених «Ты». Условие сработает на сообщения: «Ты – самый вредный!», «Тыквы полезные!», «Ты123абв»

# Сообщение заканчивается на

Триггер сработает, если сообщение пользователя будет заканчиваться строками (словами/выражениями), указанными вами в значениях условия, иначе триггер не сработает. Аналогично: если в условии «ейка», оно сработает на «лейка», «абвгдейка».

# Сообщение содержит

Триггер сработает, если в сообщении будет присутствовать хоть одна из строк (слов/выражений), указанных в значениях условий. Укажете «лето» - сработает на «Какое лето жаркое!», «В кассе билетов нет!»

# Регулярное выражение

Самое мощное условие, самое сложное. Однако если вы овладеете регулярными выражениями – получите нескончаемый функционал для вашего бота. С помощью этого инструмента можно составлять любые условия на текст пользователя! При должной настройке оно может заменить шесть условий в триггерах и в какой-то мере большинство текстовых фильтров.

Выполняет поиск на основе регулярного выражения языка Java. Тестер и краткий справочник по регулярным выражениям доступен по нажатию кнопки «Помощь» в верхней панели. Также есть небольшая статья, посвященная регулярным выражениям в инструкции.

# Длина сообщения меньше или равна

Триггер сработает, если длина сообщения будет меньше или равна указанному вами количеству символов. Можно включить/отключить подсчёт пробелов.

# Длина сообщения больше или равна

Триггер сработает, если длина сообщения будет больше или равна указанному вами количеству символов. Можно включить/отключить подсчёт пробелов.

# Тип сообщения

Доступно 13 видов сообщений, выберите те, на которые сработает триггер. Например, если поставить фото, то каждый раз когда участники будут присылать фото, условие будет выполняться.

# Регулярное выражение на меньшинах в сообщениях

Регулярное выражение, срабатывающее на логин (@username), написанный в чат в сообщениях пользователей. Значения указывать так: (username), обязательно в нижнем регистре. О работе с регулярными выражениями можно ознакомиться в инструкции. Тестер и краткий справочник по регулярным выражениям доступен по нажатию кнопки «Помощь» в верхней панели.

# Регулярное выражение на текстовых меньшинах в сообщениях

В официальном клиенте Telegram’а при написании символа «@» в чат появляется список недавних участников:

Если юзернейм у пользователя есть, то кликнув по пользователю вы получите его @username. Если юзернейма нет, то по клику вы получите его кликабельный никнейм. Например, ник пользователя – Tania Pupkina. У вас после нажатия будет слово Tania с ссылкой на её профиль. Вот это условие срабатывает на такие слова. В значениях указывать это слово (например Tania), оформленное как регулярное выражение, например «(Tania)». О работе с регулярными выражениями можно ознакомиться в инструкции. Тестер и краткий справочник по регулярным выражениям доступен по нажатию кнопки «Помощь» в верхней панели.

# Регулярное выражение на номерах телефонов

Срабатывает на номер телефона (оформленный как регулярное выражение), на который был зарегистрирован аккаунт Telegram. Телефонный номер указывать в международном формате без плюса. Возможно использовать только когда пользователь отправил свои контакты боту.

# Язык клиента

Условие на основе выбранного языка клиента Telegram (установленный язык в приложении Telegram). Значения указывать по типу: ru, en, ua. Ввиду особенностей Telegram’а, если в приложении выставлен язык русский, срабатывает на значения en и ru, поэтому будьте аккуратны с этим. Со значениями, которые можно указывать в качестве языка клиента, Вы можете ознакомиться здесь.

# Регулярное выражение на логине пользователя

Возможность сделать срабатывание условия для конкретного пользователя по его юзернейму. Обычно работает в сочетаниях с другими условиями в одной группе действий. Значения указываются таким образом: ^(username1)$, ^(username2)$ ИЛИ ^(username1|username2)$, обязательно в нижнем регистре. О работе с регулярными выражениями можно ознакомиться в инструкции. Тестер и краткий справочник по регулярным выражениям доступен по нажатию кнопки «Помощь» в верхней панели.

# Минимальная длина логина

Можете указать минимальное количество символов которое будет содержаться в логине пользователя (@username пользователя). Если логин будет содержать меньше указанных вами символов, сработает действие. Минимально возможная длина логина в Telegram – 5, максимально возможная – 32.

# Максимальная длина логина

Можете указать максимальное количество символов которое будет содержаться в логине пользователя. Если логин будет содержать больше символов что вы указали, то сработает действие. Минимально возможная длина логина в Telegram – 5, максимально возможная – 32.

# Регулярное выражение на имени пользователя

Возможность сделать условие для конкретного пользователя по его никнейму. Обычно работает в сочетаниях с другими условиями в одной группе действий. Значения указываются таким образом: ^(ник этого пользователя)$ ИЛИ ^(имя1 фамилия1|имя2 фамилия2)$, обязательно в нижнем регистре. О работе с регулярными выражениями можно ознакомиться в инструкции. Тестер и краткий справочник по регулярным выражениям доступен по нажатию кнопки «Помощь» в верхней панели.

# Минимальная длина имени

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

# Максимальная длина имени

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

# Ранг пользователя соответствует

Укажите желаемое количество рангов и на участника с соответствующими рангами сработает триггер.

# Ранг пользователя ниже

Задайте минимальное количество рангов, на участника с показателем рангов меньше указанных, сработает триггер.

# Ранг пользователя выше

Задайте максимальное количество рангов, на участника с показателем рангов больше указанных, сработает триггер.

Ранг – это текущий статус участника в чате. Ранги даются за выполнение определенных действий, которые устанавливает администратор чата.

# Следующий инструмент «Фильтр условия»

Рассмотрим подробнее:

  1. Не учитывать пробелы в начале и в конце строки - вне зависимости от того, будут или нет пробелы в начале или в конце строки в сообщении пользователя, триггер сработает.
  2. Не учитывать пробелы и переносы строк - вне зависимости от того, как и где стоят пробелы и переносы в сообщении пользователя, триггер сработает. Например, с условием «Сообщение содержит», при включенном фильтре, если в значениях указать «громила», триггер сработает на: «Полный погроми ладно – потом уберу»
  3. Не учитывать все пробелы - условие выполнится вне зависимости от того, как и где стоят пробелы в сообщении пользователя. Например, с условием «Сообщение содержит», при включенном фильтре, если в значениях указать «перламутр», сработает на «Спер лам утром», но не будет работать с переносами, как в пункте (2)
  4. Не учитывать символы - условие сработает, даже если будут использованы символы, которые вы не указали в условии. Укажете в значениях «свет» - триггер сработает на «с()вет»
  5. Не учитывать цифры - триггер сработает даже если будут использованы цифры, которые вы не указали в условии. В значениях «пора» - сработает на «по95ра»
  6. Не учитывать регистр - триггер сработает вне зависимости от регистра (большие и маленькие буквы будут восприниматься одинаково). Пример: «Привет» в значениях сработает на «привет», «ПРИВЕТ», «пРиВеТ», и так далее.

# Инструмент «Инициатор триггера»

Инициатор триггера – участник группы, на которого будет срабатывать триггер.

  • Кто угодно – условие сработает на всех участников группы
  • Администраторы – условие сработает на всех администраторов, включая создателя
  • Пользователи – условие сработает на всех пользователей, кроме администраторов
  • Создатель – условие сработает только на создателя

Предупреждение

Под администраторами понимаются участники группы, которые способны изменять настройки бота, а не администраторы чата.

# Инструмент «Тип сообщения»

Любое – условие сработает при любом сообщении;

Все реплаи – условие сработает только на реплаи (ответы);

Реплаи к боту – условие сработает только на ответы ботов;

Реплаи к пользователю – условие сработает только на ответы пользователей, кроме администраторов;

Реплаи к админу – условие сработает только на ответы администраторов;

Предупреждение

Под администраторами понимаются участники группы, которые способны изменять настройки бота, а не администраторы чата.

Реплаи к @ChatKeeperBot – условие сработает на ответы к сообщениям от @ChatKeeperBot;

Не реплай – условие сработает на сообщения, которые были отправлены не реплаем (ответом);

Первое сообщение пользователя – условие сработает при первом сообщении нового участника.

# Инструмент «Инвертирование»

Инвертирование меняет все условия на обратные. Если условие должно было сработать на слово «Привет» - условие будет работать на все сообщения, в которых нет этого слова. Если стоит «Реплаи к @ChatKeeperBot» – условие будет срабатывать на все сообщения, которые не являются реплаями (ответами) к @ChatKeeperBot. Не меняются при инвертировании только фильтры условий, инициатор «Кто угодно» и тип сообщения «Любое».

# Действия триггеров

  • Отправить сообщение - При выполнении условия, будет отправлено сообщение, текст которого вы ввели в поле ввода текста, после выбора действия;

  • Отправить личным сообщением - Бот отправит текст в личные сообщения пользователю. Список получателей такого сообщения находится после выбора действия – туда можно указать @username (можно со знаком и без, в любом регистре) или ID пользователя. Чтобы сообщение отправилось, пользователю необходимо нажать на кнопку start в личных сообщениях с ботом. *Не забывайте, что бот первым писать не может;

  • Удалить пользователя из чата с возможностью вернуться - Пользователь будет удален из чата, но он сможет вернуться при использовании команды /kick;

  • Удалить пользователя из чата на время - Пользователь будет удален из чата на заданный вами период времени, по истечении этого времени, у пользователя есть возможность вернуться в чат;

  • Пользователь не сможет писать - Пользователь не сможет писать в течении заданного вами периода времени, по истечении этого периода, пользователь сможет писать, использовав команду /mute;

  • Разрешить пользователю вернуться в чат - Пользователь может вернуться в чат, если до этого он был исключен, для возврата в чат используйте команду /unban;

  • Разрешить пользователю писать - Пользователь сможет писать сообщения, если до этого он был заблокирован, используйте команду /unmute;

  • Удалить сообщение - Сообщение, на которое сработал триггер будет удалено;

  • Увеличить или уменьшить репутацию пользователю - Действие дает возможность изменить репутацию участника в положительную или отрицательную сторону. После выбора действия будет форма «Количество», в которой вы зададите прибавление или отнятие репутации;

  • Изменить количество очков пользователя - Действие дает возможность изменить количество очков участника. После выбора действия будет форма «Количество», в которой вы зададите прибавление или отнятие очков;

  • Добавить или удалить предупреждение у пользователя - Возможность добавить пользователю определённое количество предупреждений, работает по принципу команды /warn;

  • Добавить или удалить предупреждение в триггере - В данном триггере можно добавить или отнять количество предупреждений. *После заданного администратором количества предупреждений, пользователь попадает в блок;

  • Отправить результат формы в чат - (действие доступно на тарифах Advance и Ultimate) После того, как участник заполнил форму, результат формы отправится в чат и будет доступен для просмотра всем пользователям. После выбора действия, в поле ввода текста можно будет написать содержимое формы;

  • Отправить результат формы личным сообщением - (действие доступно на тарифах Advance и Ultimate) После того, как участник заполнил форму, результат формы отправится в личные сообщения указанным пользователям. Список получателей результата указывается после выбора действия в форму «Список пользователей, которым придет результат формы». Указывается юзернейм без знака @ в малом регистре, например «username» или ID пользователя. Чтобы сообщение отправилось, пользователю необходимо нажать кнопку start в личных сообщениях с ботом. Таким образом, результат формы будет доступен только определённым пользователям. Форму можно задать в инструменте «Открыть расширенные настройки» под формой названия триггера.