# Вызов действий по триггеру

Благодаря этой функции, можно создавать проверочные механизмы перед ответом бота на наличие каких-то критичных вещей и тем самым экономить токены на ответы **LLM**, когда можно вызвать функцию без неё.

Добавить **Вызов действий по триггеру** можно через вкладку **"Условия выполнения"** внутри настраиваемого действия.

Отключите флаг **Вызывать моделью**

<figure><img src="/files/0wZ6wZqVRk8tvxHsa2LW" alt=""><figcaption></figcaption></figure>

И добавьте **условие срабатывания**

<figure><img src="/files/JQyXp4nIW1Qut2Qg2QAN" alt=""><figcaption></figcaption></figure>

### Настройка срабатывания вызова события

Выбираем **Обязательное условие**

<figure><img src="/files/36AUssGaefcJIg8wxnII" alt=""><figcaption></figcaption></figure>

<details>

<summary>Описание и настройка Обязательного условия</summary>

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

</details>

Далее в выпадающем меню необходимо выбрать тип **Дополнительного условия** для этого действия

<figure><img src="/files/Y60F28P4VcVJMxsKm2Pd" alt=""><figcaption></figcaption></figure>

<details>

<summary>Описание и настройка Типов Дополнительных условий</summary>

* **Переменная** — условие будет проверяться по наличию в диалоге выбранной переменной.
* **Вызван файл** — условие будет проверяться по выбранному из Базы Знаний файлу, т.е. был ли уже вызван в диалоге выбранный файл.
* **Вызвана функция** — условие будет проверяться по наличию в диалоге вызова определённой функции. *Наприме&#x440;**,** вызов таблицы или редактирование полей в Битрикс24.*
* **Время вызова** — условие позволяет задать промежуток времени, который будет доступен для настраиваемого действия.
* **Источник связи** — условие будет проверяться по каналу коммуникации, с которого пришло обращение клиента. *Например, Авито, Телеграм или Амо.*
* **Фраза ответа от бота** — условие будет проверяться по наличию в ответе Бота ключевой фразы.
* **Фраза во входящем сообщении** — условие будет проверяться по наличию в сообщении клиента ключевой фразы.
* **LLM-инструкция** — данная инструкция позволяет прописать проверку выполнения условий для вызова настраиваемого действия. *Например*: *`Если в диалоге шло обсуждение стоимости Тогда True Иначе False КонецЕсли`*
* **Содержимое входящего сообщения -** условие, которое основано на типе сообщения. Доступен выбор следующих типов: Файл, Аудио, Изображение и Текст.
* **Количество сообщений клиента** - условие, при котором можно опираться на количество отправленных клиентом сообщений, если фактическое колиество сообщений больше или равно указанному число, то триггер сработает.

> Настройка проверки выбранного типа тоже достаточно гибкая и включает в себя такие проверки, как: ***равно / не равно / больше / больше или равно / меньше / меньше или равно / содержит / не содержит***

</details>

Для того, чтобы настроить несколько **Дополнительных условий**, выберите условие **И / ИЛИ** и нажмите знак ➕

<figure><img src="/files/ewYdh2jrD5cHsstrerEQ" alt=""><figcaption></figcaption></figure>

> * Условие **И** означает, что все условия должны быть выполнены одновременно
> * Условие **ИЛИ** означает, что хотя бы одно из всех условий должно быть выполнено

После того, как настройка **Действия** завершена, не забудьте нажать кнопку **Сохранить.**

### **Пример настройки**

Рассмотрим пример **Вызова файла БЗ** через **Действие** с использованием **Условий срабатываний**.

1. Выбираем **Тип действия**, выбираем нужный файл

<figure><img src="/files/jPDkz8BlSaiyHvS70wVY" alt=""><figcaption></figcaption></figure>

2. Настроим **Условия срабатывания —** нашем случае выбираем по триггерному слову "**сотрудничество**" в сообщении от клиента

<figure><img src="/files/gLbTShPGtBxiBXLQYEwX" alt=""><figcaption></figcaption></figure>

> Название функции **fetch\_direct\_questions\_doc**

2. Дополнительно добавим ещё одно отдельное действие — вызов ещё одного файла с оповещением администратора при запросе номера. Триггером будет служить слово "**номер**" в сообщении бота

<figure><img src="/files/4EMxc47qgJRfAvj1tzKo" alt=""><figcaption></figcaption></figure>

> Название функции **fetch\_direct\_questions\_document**

3. В результате получаем следующий диалог

* [x] Отработал триггер на слово "**сотрудничество**", бот вызвал функцию **fetch\_direct\_questions\_doc**

<figure><img src="/files/tMrVs2jyXuqVFznfDTdA" alt=""><figcaption></figcaption></figure>

* [x] Отработал второй триггер на слово "номер", бот вызвал функцию **fetch\_direct\_questions\_document**

<figure><img src="/files/yoO9BUPNZKz3ElujpjBi" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.suvvy.ai/ru/deistviya/vyzov-deistvii-po-triggeru.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
