# Как повысить эффективность робота Ожидание сообщения

{% hint style="warning" %}
Для реализации функционала описанного в данном примере, необходим тариф Битрикс24 с бизнес-процессами.
{% endhint %}

### Описание кейса

При использовании робота [Ожидание сообщения](/roboty-i-aktiviti/roboty/ozhidanie-soobsheniya.md) вы, как правило, ожидаете получить от клиента определённый текст сообщения, соответствующий одному из сценариев, по которому движется процесс.

Однако, не редко может возникнуть ситуация, когда клиент отвечает вам не так, как вы ожидаете от него и ваш процесс может «сломаться»:

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

Для обработки подобного рода ответов, можно воспользоваться стандартной конструкцией бизнес-процессов – [Цикл](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=57\&LESSON_ID=3792), внутри которой разместить проверку ответа клиента на соответствие нашим ожиданиям, и в случае, если клиент ответил не так – ещё раз попросить его ответить определённым образом. Например, отправить вариант ответа только цифрой.

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

### Настройка сценария

#### Настройка действия отправка сообщения

Добавим действие [Ожидание сообщения](/roboty-i-aktiviti/roboty/ozhidanie-soobsheniya.md) в котором напишем текст отправляемого сообщения:

<figure><img src="/files/1oldNZbdDffW4WyhxVnE" alt=""><figcaption></figcaption></figure>

#### Настройка конструкции Цикл

Далее добавим конструкцию Цикл и выполним её настройку. Для того, чтобы цикл не ушёл в рекурсию и не начал повторяться много раз, добавим переменную, которая ограничит количество повторений цикла. Например, не более двух раз.

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

Также добавим переменную для выхода из цикла, если клиент ответил соответственно нашим ожиданиям:

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

Настроим действие Цикл таким образом, как показано на скриншоте ниже:

<figure><img src="/files/5kxhZpxV4JVZ6GB3vgRB" alt=""><figcaption></figcaption></figure>

Далее внутрь конструкции Цикл поместим действие [Ожидание сообщения](/roboty-i-aktiviti/roboty/ozhidanie-soobsheniya.md) и выполним его настройку:

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

#### Обработка ответов клиента

После того, как клиент ответил, необходимо проанализировать его ответ и понять, соответствует ли он нашим ожиданиям. Для этого добавим конструкцию условие и выполним её настройку:

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

В ветке условия «Ответил правильно» укажем набор условий, которые позволят проверить ответ клиента на соответствие ожиданиям:

<figure><img src="/files/62nsKYf5zJflTWKGthoF" alt=""><figcaption></figcaption></figure>

Если ответ клиента совпадёт с одним из условий и сценарий процесса пойдёт по данной ветке, следующим действием нам необходимо изменить переменную «Клиент ответил правильно?» на вариант «Да», чтобы выйти из цикла и продолжить общение с клиентом, обработав выбранный им вариант.

Если клиент ответил не только цифрой и мы не можем точно определить, какой вариант он выбрал, во второй ветке условия мы можем отправить клиенту сообщение с помощью действия [Broken mention](broken://pages/-MGMWnAZTpldsuV3-8wH) и попросить прислать только цифру ответа:

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

Следующим действием необходимо увеличить переменную «Количество повторений цикла» на 1, чтобы позволить процессу войти в цикл в последний раз:

<figure><img src="/files/8JNUQJwucGAzhbum5oso" alt=""><figcaption></figcaption></figure>

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

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

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

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

#### Уведомление владельцу чата

Чтобы узнать владельца чата и отправить ему уведомление, потребуется добавить два дополнительных действия: «\[Олчат] \[ОЛ] Получить информацию о чате из WhatsApp», которое позволит получить ID чата и «\[Олчат] \[ОЛ] Информация о диалоге», которое может по ID чата вернуть ID Пользователя владельца чата.

В действии «\[Олчат] \[ОЛ] Получить информацию о чате из WhatsApp» укажите Линию и Номер телефона, для которых производится получение информации о чате.

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

В действии «\[Олчат] \[ОЛ] Информация о диалоге» в поле **Тип идентификатора** укажите значение **Идентификатор чата (число),** а в поле **Значение идентификатора** – ID чата из дополнительных результатов активити «\[Олчат] \[ОЛ] Получить информацию о чате из WhatsApp».

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

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

Однако действие «\[Олчат] \[ОЛ] Информация о диалоге» вернёт ID Владельца чата в виде числа, а действие «Уведомление пользователя» ожидает получить другой тип данных – Пользователя.

Чтобы преобразовать число в тип Пользователь и передать его в действие «Уведомление пользователя», потребуется ввести ещё одну переменную, в которой произведём преобразование данных, а именно, тип Число в тип Пользователь. Сделаем это с помощью добавления строки **user\_ к** ID Владельца чата из дополнительных результатов, как показано на скриншоте ниже:

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

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

<figure><img src="/files/02Q1J3ljBtMH7qaAaCh0" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Подробнее о том, как создать ссылку на чат, описано в статье[Как дать ссылку на конкретный чат?](/voprosy-i-otvety/rabota-s-chatami/kak-dat-ssylku-na-konkretnyi-chat.md).
{% endhint %}

#### Схема процесса, примеры общения в чате

Полностью настроенная схема бизнес-процесса выглядит следующим образом:

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

Общение в чате может выглядеть следующим образом:

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

{% hint style="info" %}
Ниже вы можете скачать шаблон рассмотренного бизнес-процесса и импортировать его в ваш бизнес-процесс для подробного рассмотрения и настройки. Подробнее об импорте шаблонов в статье Битрикс24 [Экспорт и импорт шаблонов бизнес-процессов](https://helpdesk.bitrix24.ru/open/5435897/).
{% endhint %}

{% file src="/files/7SVBnJ7wJKUIgfsKP7iU" %}

{% hint style="warning" %}
Данный пример процесса не является готовым и универсальным решением, охватывающим множество вариантов сценариев и различные задачи. Его цель — последовательно продемонстрировать возможный сценарий обработки нестандартных ответов пользователя при использовании робота [Ожидание сообщения](/roboty-i-aktiviti/roboty/ozhidanie-soobsheniya.md).

Ветка условий для обработки правильных ответов не настраивалась и может быть настроена по вашему усмотрению.
{% endhint %}


---

# 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.olchat.io/keisy/klienty/kak-povysit-effektivnost-robota-ozhidanie-soobsheniya.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.
