# Триггеры

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

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

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

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

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

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

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

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

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

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

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

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

Подсказка

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

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

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

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

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

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

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

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

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

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

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

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

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

Подсказка

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Тип ответа

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Description

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

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

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

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

Description

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

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

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

Description

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

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

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

Description

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

Description

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

Description

Готовые шаблоны регулярных выражение ищите в главе "Регулярные выражения" (opens new window)