> For the complete documentation index, see [llms.txt](https://docs.leadconverter.su/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.leadconverter.su/bots/blok-obrabotchik-sobytii.md).

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

{% 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 %}
