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

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

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

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

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

<figure><img src="https://2213176759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LcuJc7XlLhpPyLWZz1s%2Fuploads%2FEjw552cQkBWago0awQCJ%2Fimage.png?alt=media&#x26;token=f1259854-516c-4403-a63e-df9b1049162d" alt=""><figcaption></figcaption></figure>

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

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

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

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

Добавим действие [ozhidanie-soobsheniya](https://docs.olchat.io/roboty-i-aktiviti/roboty/ozhidanie-soobsheniya "mention") в котором напишем текст отправляемого сообщения:

<figure><img src="https://2213176759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LcuJc7XlLhpPyLWZz1s%2Fuploads%2FF7dyCAvNZW0p3kJUYIZF%2Fimage.png?alt=media&#x26;token=e44d6d85-ac74-49d3-b1c5-943ac7ea3443" alt=""><figcaption></figcaption></figure>

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

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

<figure><img src="https://2213176759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LcuJc7XlLhpPyLWZz1s%2Fuploads%2F7FGBV4WAeFXJvCndHvM6%2Fimage.png?alt=media&#x26;token=e3b10dbf-cd7e-4617-8993-817d7c5b9a07" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://2213176759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LcuJc7XlLhpPyLWZz1s%2Fuploads%2FkCwt8uZejBNb7agB3zxJ%2Fimage.png?alt=media&#x26;token=903e0e62-51c0-4a0d-80d0-fb4662e2f707" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://2213176759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LcuJc7XlLhpPyLWZz1s%2Fuploads%2Fnt1AHtEItia1QnygZmhZ%2Fimage.png?alt=media&#x26;token=2e8dc42c-c85f-41b2-b20f-08749570d026" alt=""><figcaption></figcaption></figure>

Далее внутрь конструкции Цикл поместим действие [ozhidanie-soobsheniya](https://docs.olchat.io/roboty-i-aktiviti/roboty/ozhidanie-soobsheniya "mention") и выполним его настройку:

<figure><img src="https://2213176759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LcuJc7XlLhpPyLWZz1s%2Fuploads%2FShUGd464gUGFyeEWgvoF%2Fimage.png?alt=media&#x26;token=e4b4a576-6ea9-4c7c-8a90-32ebcb080d51" alt=""><figcaption></figcaption></figure>

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

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

<figure><img src="https://2213176759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LcuJc7XlLhpPyLWZz1s%2Fuploads%2FyUQrW58gwteZYPWG9wIb%2Fimage.png?alt=media&#x26;token=12f70dfd-c242-490f-a904-f754ec4cd0ed" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://2213176759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LcuJc7XlLhpPyLWZz1s%2Fuploads%2Ff6KXs9Uoud0tTDtD881Z%2Fimage.png?alt=media&#x26;token=168757fb-f2cb-426e-8e4e-7ab3eae53f55" alt=""><figcaption></figcaption></figure>

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

Если клиент ответил не только цифрой и мы не можем точно определить, какой вариант он выбрал, во второй ветке условия мы можем отправить клиенту сообщение с помощью действия [Broken link](https://docs.olchat.io/keisy/klienty/broken-reference "mention") и попросить прислать только цифру ответа:

<figure><img src="https://2213176759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LcuJc7XlLhpPyLWZz1s%2Fuploads%2FhujQmja0lAnLoRyyxwfg%2Fimage.png?alt=media&#x26;token=13392f63-db31-420b-a8b2-24ce1b496a04" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://2213176759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LcuJc7XlLhpPyLWZz1s%2Fuploads%2FxQjMmzR1z0uBKilmlYUQ%2Fimage.png?alt=media&#x26;token=dcd249a8-bd64-4ee7-96d1-367d911aee72" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://2213176759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LcuJc7XlLhpPyLWZz1s%2Fuploads%2F92VwsK8kT9OV0XE92rk4%2Fimage.png?alt=media&#x26;token=7fc940d0-22f8-40cd-b544-3f8ecc27c86f" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2213176759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LcuJc7XlLhpPyLWZz1s%2Fuploads%2F43ALay83fduqQ8XChsWT%2Fimage.png?alt=media&#x26;token=1a32e5b3-84dd-4d7d-ac18-4a970cc74682" alt=""><figcaption></figcaption></figure>

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

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

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

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

<figure><img src="https://2213176759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LcuJc7XlLhpPyLWZz1s%2Fuploads%2FBZh45NH7PydMDXs6srhJ%2Fimage.png?alt=media&#x26;token=adc1808e-44e7-41c5-8776-833b9d6d7f60" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://2213176759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LcuJc7XlLhpPyLWZz1s%2Fuploads%2FPoQnV5Wx5gMm4tyF3y0w%2Fimage.png?alt=media&#x26;token=bfb3d6ca-a48b-4518-84a9-a34ae9536b7f" alt=""><figcaption></figcaption></figure>

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

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

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

<figure><img src="https://2213176759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LcuJc7XlLhpPyLWZz1s%2Fuploads%2FNCm6VuBmOrtvnks59bAk%2Fimage.png?alt=media&#x26;token=ce6bc176-1864-4311-bc91-923d5d3838ba" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://2213176759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LcuJc7XlLhpPyLWZz1s%2Fuploads%2FiMBXfVXg78FNZrn200sb%2Fimage.png?alt=media&#x26;token=f05c971d-a280-49e3-8d52-73e95b256810" alt=""><figcaption></figcaption></figure>

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

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

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

<figure><img src="https://2213176759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LcuJc7XlLhpPyLWZz1s%2Fuploads%2FagLq9pMRsY7EN97qWWuN%2Fimage.png?alt=media&#x26;token=f82ebdbd-8149-41d0-bb76-eb9294e8c96f" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://2213176759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LcuJc7XlLhpPyLWZz1s%2Fuploads%2FbKyUruRx3PWmAxD7tXjl%2Fimage.png?alt=media&#x26;token=7edb50fb-8fd3-4ea1-980b-f9369cc62031" alt=""><figcaption></figcaption></figure>

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

{% file src="<https://2213176759-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LcuJc7XlLhpPyLWZz1s%2Fuploads%2FoHDLlhpEnQpuBrqtJwnb%2F%D0%A6%D0%B8%D0%BA%D0%BB%20%D0%B4%D0%BB%D1%8F%20%D1%80%D0%BE%D0%B1%D0%BE%D1%82%D0%B0%20%D0%9E%D0%B6%D0%B8%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5%20%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D1%8F.bpt?alt=media&token=51381b3a-d084-4afd-a617-4af46c7e48c4>" %}

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

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