# Триггеры

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

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

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

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

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

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

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

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

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

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

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

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

Подсказка

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

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

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

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

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

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

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

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

Подсказка

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

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

Всего 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;

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

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

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

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

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

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

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

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

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