# Блок «Обработчик событий»

{% hint style="success" %}
Ниже представлено видео по данной теме
{% endhint %}

{% embed url="<https://youtu.be/8DRxnaQzfG8>" %}

{% hint style="info" %}
Альтернативные варианты просмотра видео: \
👉 [VK-видео](https://vkvideo.ru/video-136064993_456239148)\
👉 [Rutube](https://rutube.ru/video/private/e131530b859605b7a71961b20928e25c/?p=ZxtE2hafkFumdbLt8rBbuw)
{% endhint %}

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

Этот блок особенно полезен, когда:

* Одни и те же действия нужно повторять в разных местах сценария;
* На одно событие нужно выполнить **несколько задач** одновременно (например, интеграции с CRM, уведомления, отправки данных через вебхук и т.д.);
* Вы хотите **централизованно** управлять логикой бота;
* Требуется масштабируемость и **удобное сопровождение** больших проектов.

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

В этой инструкции вы узнаете, как использовать блок **"Обработчик событий"**, как он устроен, какие настройки доступны и в каких случаях он принесёт максимальную пользу.

## Структура блока "Обработчик событий"

Блок **"Обработчик событий"** содержит несколько настраиваемых элементов, каждый из которых отвечает за определённую часть логики.

1. **Имя события.**

Это ключевой элемент блока. Сюда вводится название события, на которое должен среагировать обработчик. Это имя должно **в точности совпадать** с названием события, которое вы запускаете через блок **"Действие"** - **"Запустить событие"**.

{% hint style="warning" %}
Обработчик событий **ВСЕГДА** работает в паре с блоком **"Действия"** - **"Запустить событие".**
{% endhint %}

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

{% hint style="info" %}
Имя можно придумать **любое:** например: Оставлен телефон, Заказ оформлен, тестирование:успешно, и т.п.
{% endhint %}

{% hint style="info" %}
Регистр (заглавные или строчные буквы) **не имеет значения**.
{% endhint %}

{% hint style="warning" %}
Рекомендуем **копировать** название из блока действия, чтобы избежать несоответствий.\
\
Ошибки, пробелы, лишние символы приведут к тому, что обработчик **НЕ СРАБОТАЕТ!**
{% endhint %}

Так же в имени события можно использовать **маску события.**

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

Для этого используется специальный символ — звёздочка `*`.

Если указать имя события как:

```
тестирование:*
```

то обработчик среагирует на все события, начинающиеся с `тестирование:` — например:

* тестирование: начато
* тестирование: завершено успешно
* тестирование: неудачно

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

{% hint style="info" %}
**Маска события** позволяет сократить количество обработчиков при одинаковой логике.
{% endhint %}

2. **Сохранить имя события в переменную.**

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

**Как работает:**

* Вы задаёте имя переменной, например: `статус_теста`.
* При запуске события, в переменную автоматически сохраняется его точное название.
* Вы можете использовать эту переменную в следующих блоках: для показа оператору, записи в CRM, в условиях сценария и т.д.

**Пример:**

Если сработало событие `тестирование:неудачно`, а в переменную записано это название, оператор получит сообщение:

> Пользователь завершил тест на стадии: **тестирование:неудачно**

<figure><img src="/files/9L5kWoXjnDRB4JGCs2gf" alt=""><figcaption></figcaption></figure>

3. **Следующий шаг. (Выходы событий)**

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

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

**Как это работает:**

* В настройках "**Обработчик событий**" добавляются события: `тестирование`, `передача`
* На визуальной схеме блока появятся **отдельные** желтые выходы для каждого события.
* Далее вы соединяете каждый выход с соответствующей логикой сценария.

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

{% hint style="info" %}
Если конкретный выход **не указан** для события, сработает **общий** выход блока (по умолчанию).
{% endhint %}

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

{% hint style="warning" %}
Если от события **есть** соединение — оно будет выполнено.

Если соединения **нет**, но есть общий выход — выполнится он.

Если никаких **соединений нет** — ничего не произойдёт.
{% endhint %}

## Как использовать "Обработчик событий" в сценарии

1. Создаем блок **"Действия",** в том месте сценария, где должно произойти событие.

<figure><img src="/files/9JVO8cy3N8efdsogJIF0" alt=""><figcaption></figcaption></figure>

2. Открываем блок действия в режиме "Редактирования" и выбираем тип действия **"Запустить событие".**

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

3. Вводим любое понятное **имя** события.

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

{% hint style="warning" %}
Это название должно совпадать с тем, что вы укажете в блоке "**Обработчик событий**".
{% endhint %}

4. Сохраняем блок.

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

4. В любом месте сценария (даже в другом боте), добавляем блок **"Обработчик событий"**.

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

4. Открываем блок **"Обработчик событий"** в режиме "Редактирования" и в поле **"Имя события"** указываем точное название события, на которое он должен среагировать. (рекомендуем копировать название из блока "**Действия**")

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

5. Сохраняем имя события в переменную. Далее мы укажем ее в цепочке события, которая будет выполняться.

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

6. Сохраняем блок.

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

7. Создаем новый блок **"Действия"** и выбираем тип **"Отправить оператору".**

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

8. Выбираем пользователя, который будет получать это уведомление, в качестве оператора.

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

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

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

9. Сохраняем блок.

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

10. От желтого выхода события, проводим связь на блок "Действия"- **"Отправить оператору".**

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

Тестируем работу воронки.

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

Когда пользователь завершил тест, бот запустил событие **"тестирование завершено".**

Обработчик событие отреагировал на этот запуск и выдал прописанную цепочку сценария. В данном случае **"Отправка уведомления оператору".**

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

{% hint style="warning" %}
**Обратите внимание**, так как мы указали в сообщении оператору переменную, в которой хранится имя события, автоматически подставилось именно оно.
{% endhint %}

## Основные особенности блока "Обработчик событий"

<table><thead><tr><th>Особенность</th><th>Что это значит?</th><th data-hidden></th></tr></thead><tbody><tr><td><strong>Нельзя проводить входящие связи к блоку</strong></td><td><p>Обработчик <strong>не должен</strong> быть связан стрелкой с предыдущими блоками.<br></p><p>Он работает пассивно — просто «слушает» события, которые запускаются в других местах сценария.</p></td><td></td></tr><tr><td><strong>Можно создавать несколько обработчиков на одно событие</strong></td><td><p>Вы можете добавить <strong>несколько блоков</strong> обработчиков с одинаковым названием события — и все они сработают при его запуске.</p><p></p><p>Это удобно, если нужно разделить обработку <strong>на независимые ветки</strong>: например, один блок отправляет вебхук, другой пишет в CRM, третий уведомляет оператора.<br></p><p>Обработчики можно размещать в разных местах <strong>одного бота</strong> или даже в <strong>разных ботах</strong>.</p></td><td></td></tr><tr><td><strong>Работает между ботами</strong></td><td><p>Обработчик события может находиться <strong>в любом</strong> другом боте внутри одной кампании — событие «переходит» между ботами.</p><p><br>Сценарий может запускать событие в одном боте, а логика обработки будет происходить <strong>в</strong> другом.</p><p><br>Это особенно полезно для <strong>централизованной логики</strong>: интеграций, уведомлений, общего учета и т.п.</p></td><td></td></tr><tr><td><strong>Не работает в неактивном боте</strong></td><td>Если бот, в котором расположен обработчик, отключён, событие <strong>не будет обработано</strong>, даже если оно было запущено правильно.</td><td></td></tr><tr><td><strong>Имеет выход по умолчанию</strong></td><td><p>Если событие сработало, но в блоке <strong>не найден</strong> соответствующий выход, будет использоваться <strong>общий выход</strong> (по умолчанию).</p><p></p><p>Это "запасной маршрут" — полезно, если вы хотите выполнить действия <strong>при любом событии</strong>.</p></td><td></td></tr><tr><td><strong>Поддерживает маски и переменные</strong></td><td><p>Блок поддерживает:</p><p><strong>Маски событий</strong> — для групповой обработки похожих событий;</p><p><br><strong>Сохранение</strong> имени события в переменную — для гибкой логики и повторного использования.</p><p></p><p>Вы можете сократить количество блоков, если события имеют общую структуру (например, <code>покупка:*</code>).<br></p><p>Переменная позволяет понять, <strong>какое именно событие сработало</strong>, и отреагировать на него.</p></td><td></td></tr></tbody></table>

{% hint style="success" %}
Остались вопросы? Задайте их в нашу техподдержку!

Мы всегда рады помочь ☺️👇
{% endhint %}

{% content-ref url="/pages/-MasAPNcg291uNezFqb4" %}
[Как задать вопрос в поддержку?](/kak-zadat-vopros-v-podderzhku.md)
{% endcontent-ref %}


---

# 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.leadconverter.su/bots/blok-obrabotchik-sobytii.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.
