# Triggers

Triggers provide the most powerful functionality in a bot. You can customize any reaction to any user message.

Good morning to the admins (or any specific users) in the morning if they come into a conversation? - No problem.

When users send gifs, politely ask them to delete them within a minute, and if they don't do it, delete the gif and issue a warning, and if they do, write "thanks for understanding"? - You are welcome.

Send to chat "Master, you were called!" with a link to your profile when you are mentioned in a group? - Yes, and this is possible.

The main function of a trigger is a certain CONDITION, and when it is executed, a certain ACTION occurs, which you specify yourself.

# Trigger rates

This table explains the differences in trigger rates. There is no limit on condition groups/action groups - you can create 6 action groups, each of which will have one action, or 1 action group with six actions for the "Starter" tariff.

If you go beyond the trigger limits or the tariff expires - (a red inscription will appear, notifying that the number of triggers or actions in them has been exceeded) triggers will work, with limitations. For example, if you created 4 actions without a tariff, three will work. Also the number of triggers - if there are more than possible, the rest simply will not work.

Go to the section "Chat triggers", click on "+ Add new"

Next, a window will appear with the conditions for creating a trigger:

We give a name to the trigger.

Prompt

Try to name your trigger so that it is easy to find and edit among others.

# Type of trigger execution

"Perform all action" - this means that for a certain condition, all the actions indicated and specified by you will be performed. (In the event that you specify several actions)

“Perform a random group of actions” - in this case, for a certain condition, a group of several selected actions will be selected in a random order.

"Conditions" are certain messages, words, smilies, after which certain actions are applied.

"Actions" are certain reactions to the specified conditions, the action can be restriction of any actions of the chat participant, warning, exclusion from the chat or deletion of this message.

# Trigger testing

The triggers are worked out in turn. In the picture below, the number of the trigger queues is highlighted in red.

In order for the triggers to work in a row in order, you must enable the toggle switch "Continue executing the trigger chain at the end of the current trigger" in the advanced settings available from the "Advanced" tariff

If the toggle switch is turned off, only one trigger will be triggered, the one with the smaller number.

# Типы условий

Доступно 200 вариантов условий для состоявления треггеров.

We create conditions using "+", a separate window "Group of conditions" opens and a separate button "+" below. By clicking on a separate button, another group of conditions with separate functions is created.

Prompt

In the tool "Actions" the functionality is the same.

# Условия по сообщениям

Условия для вызова триггера, которые связаны с содержанием сообщения пользователя.

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

The trigger will fire when the message fully matches the value you specified in the condition. That is, if you specify "Hello" in the condition, the condition will be fulfilled only with the message "Hello". If there is “Hello. You know ... ", or" Hello. ", Or" Hello) "the condition will NOT be met. * An exception is if you enable the "Ignore characters" filter below, then the bot will skip the last two options.

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

The trigger will fire if the user's message starts with the lines (words/expressions) that you specified in the condition values.

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

The trigger will fire if the user's message ends with the lines (words/expressions) you specified in the condition values, otherwise the trigger will not fire.

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

The trigger will fire if the message contains at least one of the strings (words/expressions) specified in the values of the conditions.

# Условия по параметрам сообщения

Условия для вызова триггера, которые связаны с параметрами сообщения пользователя, а не с его содержанием.

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

Вызов триггера через параметр тип (или формат) посылаемого сообщения: фото, аудио, стикер и т.д. Всего доступно 14 типов сообщений:

  • Аудио
  • Документ
  • Стикер
  • Фото
  • Фотофайл
  • Видео
  • Видеофайл
  • Анимация
  • Контакт
  • Локация
  • Войс
  • Игра
  • Видеозаметка
  • Опрос

# Длина сообщения

Вызов триггера через параметр длина сообщения. Это может быть как длина сообщения самого пользователя, так и длина сообщения того, кому отвечают. Всего доступно 4 типа параметра по длине сообщений:

  • Длина сообщения меньше или равна
  • Длина сообщения больше или равна
  • Длина сообщения того, кому ответили меньше или равна
  • Длина сообщения того, кому ответили больше или равна

# Условия по параметрам пользователя

Условия для вызова триггера, которые связаны с условиями по параметрам пользователя.

# Длина юзернейма

Вызов триггера через параметр длина юзернейма. Всего доступно 2 типа параметра по длине юзернейма:

  • Длина юзернейма меньше, чем
  • Длина юзернейма больше, чем

# Длина имени и фамилии

Вызов триггера через параметр длина имени и фамилии. Всего доступно 2 типа параметра по длине имени и фамилии:

  • Длина имени и фамилии меньше, чем
  • Длина имени и фамилии больше, чем

# Условия по имени пользователя или username

Триггер сработает только на конктерные имя и username, указанные в значениях условия.

# Условия по рангу пользователя

Условия для вызова триггера, которые связаны с системой рангов.

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

  • Ранг пользователя соответствует
  • Ранг пользователя ниже
  • Ранг пользователя выше

# Прочие условия

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

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

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

# Тип ответа

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

Warning

Administrators are group members who can change bot settings, not chat administrators.

Реплаи к @ChatKeeperBot – условие сработает на ответы к сообщениям от @ChatKeeperBot; Не реплай – условие сработает на сообщения, которые были отправлены не реплаем (ответом); Первое сообщение пользователя – условие сработает при первом сообщении нового участника.

# Модификаторы для обработки условия

Позволяют отфильтровывать в сообщениях пользователей все ненужное, без указания этого в условиях.

Let's take a closer look:

  1. Ignore spaces at the beginning and end of the line - regardless of whether or not there are spaces at the beginning or at the end of the line in the user's message, the trigger will work.
  2. Do not take into account spaces and line breaks - regardless of how and where there are spaces and line breaks in the user's message, the trigger will work.
  3. Ignore all spaces - the condition will be fulfilled regardless of how and where the spaces are in the user's message.
  4. Ignore symbols - the condition will be triggered even if symbols that you did not specify in the condition are used. Specify in the values "hello" - the trigger will work on "hel()lo"
  5. Ignore numbers - the trigger will work even if numbers that you did not specify in the condition are used. In the meanings "time" - will work on "tim54e"
  6. Ignore case - the trigger will work regardless of case (upper and lower case letters will be perceived the same). Example: "Hello" in values will work on "hello", "HELLO", "hElLo", and so on.

# Trigger "Initiator Tool"

Trigger initiator - the group member on whom the trigger will fire.

  • Anyone - the condition will work for all members of the group
  • Administrators - the condition will work for all administrators, including the creator
  • Users - the condition will work for all users, except for administrators
  • Creator - the condition will work only for the creator

Warning

Administrators are group members who can change bot settings, not chat administrators.

# Tool "Invert"

Inverting reverses all conditions. If the condition should have been triggered for the word "Hello" - the condition will work for all messages that do not contain this word. If “Replies to @ChatKeeperBot” is set, the condition will be triggered for all messages that are not replies (replies) to @ChatKeeperBot. When inverting, only condition filters, initiator “Anyone” and message type “Any” do not change.

# Trigger actions

  • Send a message - If the condition is met, a message will be sent, the text of which you entered in the text input field, after selecting an action;

  • Send by private message - The bot will send text to private messages to the user. The list of recipients of such a message is located after selecting the action - there you can specify @username (with or without a sign, in any case) or user ID. For the message to be sent, the user must click on the start button in private messages with the bot. *Do not forget that a bot cannot write first;

  • Remove user from chat with the option to return - The user will be removed from the chat, but they will be able to return when using the /kick command;

  • Remove user from chat for a while - The user will be removed from the chat for a specified period of time, after this time, the user has the opportunity to return to the chat;

  • User will not be able to write - The user will not be able to write during the time period you specified, after this period, the user will be able to write using the /mute command;

  • Allow user to return to chat - The user can return to the chat if he was previously excluded, to return to the chat use the /unban command;

  • Allow user to write - The user will be able to write messages, if he was previously blocked, use the /unmute command;

  • Delete message - The message that triggered the trigger will be deleted;

  • Increase or decrease the user's reputation - The action makes it possible to change the participant's reputation in a positive or negative direction. After choosing an action, there will be a form "Quantity" in which you will specify the addition or subtraction of reputation;

  • Change user score - The action makes it possible to change the number of points of the participant. After choosing an action, there will be a form "Quantity" in which you will specify the addition or subtraction of points;

  • Add or remove warning from user - The ability to add a certain number of warnings to a user works like the /warn command;

  • Add or remove warning in trigger - In this trigger, you can add or subtract the number of warnings. *After the number of warnings set by the administrator, the user enters the block;

  • Send form result to chat - (action is available on tariffs Advance and Ultimate) After the participant has filled out the form, the result of the form will be sent to the chat and will be available for viewing by all users. After choosing an action, you can write the contents of the form in the text input field;

  • Send the result of the form by a personal message - (the action is available on tariffs Advance and Ultimate) After the participant has filled out the form, the result of the form will be sent to private messages to the specified users. The list of recipients of the result is specified after selecting an action in the form "List of users who will receive the result of the form". The username is specified without the @ sign in small case, for example "username" or user ID. For the message to be sent, the user needs to click the start button in private messages with the bot. Thus, the result of the form will be available only to certain users. The shape can be set in the Open Advanced Settings tool under the trigger name shape.

# Триггер с регулярным выражением

Триггер с регулярным выражением является самым простым по настройке и не требует ручного добавления длинной цепочки условий.

В качестве условия выбирается всего одна категория «Прочее - Регулярные выражения».

Description

Первым этапом нужно обозначит область поиска для бота с помощью поля «Выберите тип условия». Бот будет проверять выбранную область на предмет совпадения с условием в регулярном выражении.

Бот может обрабатывать:

  • сообщение пользователя
  • сообщение, на которое ответили
  • имя пользователя
  • имя ответившего пользователя
  • логин пользователя
  • логин ответившего пользователя

В качестве примера, укажем область поиска «Сообщение пользователя».

Description

В поле «Значения условия» вы вставляете готовый шаблон регулярного выражения. Все готовые шаблоны представлены здесь ниже.

Например, возьмем шаблон, с помощью которого бот будет реагировать на сообщения полностью написанные на английском языке:

^[A-Za-z\d\s.,!?]+$ – поиск текста, полностью состоящего из латинских букв, с учетом пробелов, любых цифр и определенных символов «.,!?»

Description

Для триггера с регулярным выражением так же допустимо использование модификаторов. С помощью модификаторов бот не будет учитывать засоряющие поиск дополнительные условия. Например, можно включить «Не учитывать emoji». Тогда бот будет игнорировать любые emoji в любом месте сообщении пользователя и обрабатывать текст, словно их в нем нет.

Настройка «Инвертировать условие» всегда по умолчанию выключена. Это означает, что бот будет реагировать, если найдено совпадение с условием в области его поиска. Если включить «Инвертировать условие», триггер будет работать наоборот и бот будет реагировать на все, что не соответствует заданному условию.

Для нашего примера, где бот должен реагировал на сообщения на английском языке, настройка остается выключенной.

Description

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

Description

Пример работы триггеры с регулярным выражением по поиску и реакции на сообщения пользователей, полностью написанным на английском языке, с учетом пробелов, любых цифр и определенных символов «.,!?». Без учета emoji (встроенный модификатор)

Description

# Поиск номера телефона

Триггеры с регулярным выражения по поиску разных номеров телефонов могут быть полезны для группы в нескольких случаях:

  • уберечь группу от спама и мошенничества
  • обозначить обязательные условия для публикации. Например: объявлении о вакансии с указанием телефона для связи.

((8|+7)[- ]?)?((?\d{3})?[- ]?)?[\d- ]{7,10} – поиск в тексте городского или мобильного номера телефона, который может содержать скобки « ()», черточки «-», пробелы, код города «8» или «+7» и состоять от 7 до 10 цифр, без учета кода города.

Данное регулярное выражение является универсальным и подходит для поиска всех популярных форматов написания мобильных и городских номеров. Оно одинаково подходит для борьбы со спамом и для проверки объявлений группы с обязательным указанием контактов.

Description

(8|+7)\d{10} – поиск в тексте номера мобильного телефона, который может содержать код города «8» или «+7». Номер может состоять только из 10 цифр, без учета кода города.

Это регулярное выражение является строгим. Оно подходит для поиска всего 2х форматов мобильного номера телефона. Оно не подходит для борьбы со спамом, но его можно можно использовать, если у вас строгие требования к публикациям в группе.

Description

(8|+7)(-|()?\d{3}(-|))?\d{3}-?\d{2}-?\d{2} – поиск в тексте номера мобильного телефона, который может содержать скобки « ()», черточки «-», код города «8» или «+7». Номер может состоять только из 10 цифр, без учета кода города.

Description

# Поиск номера банковских карт

Триггеры с регулярным выражения по поиску различных номеров банковских карт относятся к тем же категориям: предотвращение спама и проверки объявлений группы.

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

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

(2|3|4|5|6)\d{3}(\ |-)?\d{4}(\ |-)?\d{4}(\ |-)?\d{4} – поиск в тексте номеров банковских карт с типами платежных систем Visa, MasterCard, Maestro, American Express, МИР. Номер карты может содержать пробелы, черточки «-» и состоять из 16 цифр.

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

Description

(2|3|4|5|6)\d{15} – поиск в тексте номеров банковских карт с типами платежных систем Visa, MasterCard, Maestro, American Express, МИР. Номер карты может состоять из 16 цифр.

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

Description

2\d{3}(\ |-)?\d{4}(\ |-)?\d{4}(\ |-)?\d{4} – поиск в тексте номеров банковских карт платежной системы МИР. Номер карты может содержать пробелы, черточки «-» и состоять из 16 цифр.

Регулярное выражение для поиска карт всего 1 типа платежной системы. Можно использовать для русскоязычных чатов.

Description

3\d{3}(\ |-)?\d{4}(\ |-)?\d{4}(\ |-)?\d{4} – поиск в тексте номеров банковских карт платежной системы American Express . Номер карты может содержать пробелы, черточки «-» и состоять из 16 цифр.

Description

4\d{3}(\ |-)?\d{4}(\ |-)?\d{4}(\ |-)?\d{4} – поиск в тексте номеров банковских карт платежной системы VISA. Номер карты может содержать пробелы, черточки «-» и состоять из 16 цифр.

Description

(5|6)\d{3}(\ |-)?\d{4}(\ |-)?\d{4}(\ |-)?\d{4} – поиск в тексте номеров банковских карт платежной системы MasterCard или Maestro. Номер карты может содержать пробелы, черточки «-» и состоять из 16 цифр.

Description

# Поиск языкового знака

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

[A-Za-z] – поиск в тексте хотя бы одного любого латинского символа в диапазоне A-Z (прописные) или a-z (сточные).

Регулярное выражение будет искать в тексте наличие одного любого прописного или строчного латинского символа. Это может быть абсолютно любая буква из алфавита в любом месте текста.

Description

[A-Za-z]+ – поиск в тексте хотя бы одного любого английского слова, состоящего из латинских символов в диапазоне A-Z (прописные) и a-z (сточные). Слово может состоять из прописных и строчных букв или только из прописных или строчных букв.

Триггер с таким регулярным выражением будет допускать содержание в тексте 1 латинского символа, но реагировать на слово, полностью состоящее из них. Это мягкое регулярное выражение, которое прощает опечатки в тексте ( прbвет), но реагирует на английские слова.

Description

[^A-Za-z] – поиск в тексте хотя бы одного любого символа, кроме латинских в диапазоне A-Z (прописные) или a-z (сточные).

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

Description

[А-Яа-я] – поиск в тексте хотя бы одного любого символа на кириллице в диапазоне А-Я (прописные) или а-я (сточные).

Регулярное выражение будет искать в тексте наличие одного любого прописного или строчного символа кириллицы. Это может быть абсолютно любая буква из алфавита в любом месте текста.

Description

[^А-Яа-я] – поиск в тексте хотя бы одного любого символа, кроме кириллицы в диапазоне А-Я (прописные) или а-я (сточные).

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

Description