# Условие и соответствие

## Какие существуют типы сравнения условия

Условие - это то, что является причиной запуска бота, перехода между состояниями (по стрелкам от блока к блоку) или другого действия. Слова и фразы в поле "Условие" являются триггером для схемы в конструкторе к отработке события или действия, содержащегося в блоке.&#x20;

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

<figure><img src="/files/WEEnGI3h1rWAajYgdnyc" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/TUwhZlJVOAh9dmUMrOZE" alt="" width="563"><figcaption><p>Условие в настройках соединения (стрелки)</p></figcaption></figure>

Например, если вам надо создать блок на все возможные стартовые слова мессенджеров, вы можете указать следующее условие: *`старт;start;get started;начать`*&#x20;

{% hint style="success" %}
Во всех типах сравнения символ **`точка с запятой ;`** разделяет условия — это значит, что если вам необходимо прописать несколько условий, то их необходимо разделить запятой.
{% endhint %}

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

Чат-бот отреагирует на условие отработкой заданного действия или события: например, отправит приветственное сообщение клиенту:

<figure><img src="/files/MDbiC0cW0I4CYQyygKyH" alt="" width="563"><figcaption><p>Отработка чат-ботом события - направление сообщения</p></figcaption></figure>

Для распознания условия необходимо определить тип сравнения (поле "Выбор соответствия"). Выбор соответствия помогает сравнить чат-боту условие с сообщением клиента или иным действием (например, с нажатием кнопки) и понять, какое событие необходимо далее отработать.&#x20;

В Salebot существует 4 типа выбора соответствия условию:&#x20;

1. Игнорируя ошибки и неточности;
2. Ключевые слова;
3. Полное совпадение;
4. Регулярное выражение;
5. Сравнение по смыслу (искусственный интеллект).

<figure><img src="/files/Z0hkLkRM8G5F2JzRVYFv" alt="" width="563"><figcaption></figcaption></figure>

Далее разберем подробно.&#x20;

## Игнорируя ошибки и неточности

Данный тип сравнения является основным и позволяет работать с описками, опечатками, неточностями, пропусками букв, а также их перестановками. Условие срабатывает, если строки похожи более чем на 70%.&#x20;

Пример:\
Для условия "*привет"* сработают следующие слова: *привед, првед, превет и пр.*&#x20;

<figure><img src="/files/i4T1TVzwOVu0kIXtrQ2l" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/Nsn06IpCTSmXAONzlzBJ" alt="" width="563"><figcaption><p>Отработка ботом условия при наличии ошибок в сообщении</p></figcaption></figure>

Такой тип сравнения для условия более ориентирован на клиентов и включает в генерацию отработки условия человеческий фактор, поскольку опечатки встречаются довольно-таки часто.&#x20;

Выбор соответствия "Игнорируя ошибки и неточности" будет отличным сравнением для условия приветственного (первого) блока в схеме чат-бота, в котором клиент первым инициирует диалог. &#x20;

## По наличию ключевых слов

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

То есть, если клиент напишет чат-боту сообщение, в котором содержится одно или несколько ключевых слов из условия, то схема отработается в соответствии с ее настройками.&#x20;

Пример:\
Для условия "*привет;человек"* сработают следующее условие: *я хочу поприветствовать этого замечательного человека*

<figure><img src="/files/b4WxsTEURPEhZls0Uq62" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/8NYJT4WqS7ksm0Xlo5X8" alt="" width="563"><figcaption><p>Отработка события внутри блока</p></figcaption></figure>

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

<figure><img src="/files/EwWt8Jy8YAhqTZdNLHBa" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/Idf6eFfJo3vbAGk1wJsC" alt="" width="563"><figcaption><p>Отработка ботом события внутри блока</p></figcaption></figure>

Как видно из примера выше, бот отработает любое сообщение, в котором содержится одно из ключевых слов в условии.&#x20;

При данном типе сравнения также используется поле "**Строки, на которые не надо отвечать**".&#x20;

<figure><img src="/files/rr0HWvFe7ulod89J7OoC" alt="" width="563"><figcaption></figcaption></figure>

Данное поле работает аналогично полю условие в противоположном значении: то есть, если сообщение пользователя будет содержать слова из поля "Строки, на которые не надо отвечать", то условие отработано не будет.

Соответственно, если условие поля "Строки, на которые не надо отвечать" срабатывает, то общее условие не работает.

### Вариативность

Дополнительное условие можно добавить также через точку с запятой, но что делать, если нужно одно из нескольких вариантов слов?&#x20;

Например, обработать одним условием фразы "*У меня не работает интернет", "У меня не работает компьютер", "у меня сломался компьютер".*&#x20;

Очевидно, перебор всех вариантов ключевиков путь в никуда. Для этого придуман синтаксис ИЛИ. Чтобы указать один из нескольких равнозначных ключевиков, надо их все поместить в круглые скобки и разделить символом вертикальной черты.&#x20;

Например: условие *(тар план |тариф) (перейт|подключ|менит|помен)* сработает на вопросы: *Здравствуйте, как подключить новый тариф. Как сменить тарифный план.*

<figure><img src="/files/gDmvSRw0jzU5Pc5NIceQ" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/wIerhFVdrAZohpF5jMoU" alt="" width="563"><figcaption><p>Отработка ботом условия</p></figcaption></figure>

Разберем условие:

*(тар план |тариф)* говорит, что в строке должно быть *тар* **И** *план* **ИЛИ** *тариф* **И ОДНОВРЕМЕННО** *перейт* **ИЛИ** *подключ* **ИЛИ** *менит* **ИЛИ** *помен*

Несколько других примеров, они интуитивно понятные.\
\&#xNAN;*мен пароль (каб|лк)*\
*(забыл|сброс|восста|вспомнить|принимает|подходит|не верный|не тот|не помн) парол*\
*(не могу| не удается) (восстановить|изменить) пароль*\
*логин в договоре;(потер|утеря|где лежит|не знаю|где| не найти|нет) догов*\
*(приостанов|заблок|блок|откл) (услуг|интер|инет|списан); (спасан|спаст) ден; постав на паузу;уезжа*\
*автоплат; оплат;заплатить;реккурентн плат;подключ плат*

## Полное совпадение

При данном типе сравнения бот отработает событие только в том случае, если сообщение, направляемое клиентом совпадет с условием.

{% hint style="info" %}
Сравнение происходит без учета регистра, то есть если условие *привет*, а пользователь введет *ПРИВЕТ*, то условие сработает. Это необходимо учитывать.
{% endhint %}

Такой тип сравнение справделиво будет указать в настройках, например, стрелки при нажатии клиентом кнопки или после перехода с минилендинга в чат-бот с указанием тега сайта.&#x20;

1. Для нажатия кнопки

Например, в условиях мы пропишем названия кнопок, по клике клиентом на которую он должен перейти в соответствующий блок.&#x20;

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

Далее мы создадим блоки, в которые должен перейти клиент после нажатия на кнопку, после первого блока (в примере будет 5 блоков, содержание которых соответствует тексту кнопок):

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

После чего в настройках в поле "Условие" выбираем соответствующую кнопку:

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

И ставим выбор соответствия "Полное совпадение":

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

Далее, при необходимости возврата клиента к выбору кнопок, сделаем еще одну кнопку "Назад" в каждом блоке, к которому ведет определенное соединение (стрелка) с условием:

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

Теперь создадим блок "Стартовое условие", где в условии пропишем слово "Назад" и выберем выбор соответствия полное совпадение:

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

И протянем стрелку с задержкой 0 секунд в блок с кнопками:

<figure><img src="/files/2YPpoNMX2bE5r3RA8x0Z" alt=""><figcaption></figcaption></figure>

Итоговая схема работает следующим образом:

1. Клиент пишет боту и попадает в приветственный блок;
2. Далее с задержкой в 0 секунд клиенту отправляется блок "Состояние", в котором созданы кнопки;
3. В зависимости от клика на кнопку, клиент переходит в следующий блок, рассказывающий об определенном виде техники;
4. Если клиент нажмет "Назад", то попадет в зеленый блок, а затем снова в блок с кнопками:

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

Теперь может протестировать бота:

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

Как видно, бот отлично отрабатывает условие и выбор соответствия полное совпадение при использовании кнопок.&#x20;

2. Использование тега сайта в воронке.&#x20;

В данном случае принцип схож с использованием кнопок, однако в этом случае условие и выбор соответствия прописывается непосредственно в самом блоке с условием.&#x20;

В этом случае, тег берется во вкладке сайты, где вы установили тег для страницы сайта:

<figure><img src="/files/h9PaxQleMtpiJD140IOK" alt="" width="563"><figcaption></figcaption></figure>

Тег в условии блока указывается в УСЛОВИИ блока БЕЗ слов ТЕГ и иных надписей:

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

{% hint style="info" %}
Подробнее о том, как настроить запуск бота по тегу, который установлен на сайте, рассказали в статье "[Создание сайта и основные настройки"](broken://pages/SVmo5FWy8HXy0n1EdOSO#teg) в разделе "Тег".&#x20;
{% endhint %}

Чат-бот также отреагирует и отработает установленное событие внутри настройки блока.

## Регулярное выражение

Регулярные выражения - это условие, с помощью которого бот может проверять формат введенных данных (например, что человек ввел именно номер телефона, а не что-то иное).

При сборе данных пользователь часто вводит не то, что его просят ввести. Приведем типовую схему проверки корректности ввода номера телефона. В случае, если пользователь ввел не номер телефона, бот попросит его повторить ввод.

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

Из блока, спрашивающего номер телефона, идет 2 соединения. Одно без условия, а второе с условием регулярного выражения российского номера телефона:&#x20;

`^((+7|7|8)+([0-9]){10})$`

Соединение с условием как раз добавляет его в заявку и сработает только тогда, когда встретится корректный номер телефона. Второе соединение сработает во всех других случаях, так как у него ниже приоритет.&#x20;

{% hint style="info" %}
Полный список полезных регулярных выражений можно увидеть в [одноименной статье](broken://pages/-M0wjAtzg71YW7LB-2D8).
{% endhint %}

## Сравнение по смыслу

В основе выбора соответствия "сравнение по смыслу" лежит принцип работы искусственного интеллекта - это настоящий прорыв в работе Вашего чат-бота.&#x20;

Принцип работы:

1. В условии прописываются слова/фразы, являющиеся СМЫСЛОМ, который выявляется ИИ из сообщения клиента;
2. Обработка системой (чат-ботом) сообщения клиента - то есть поиск вложенного в условие смысла для ИИ в реплике клиентов;
3. Отработка ботом события в блоке.&#x20;

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

Пример:

В условии нами были прописаны определенные фразы и слова, которые должен обработать и найти в реплике клиента (сообщении) ИИ, а затем отработать необходимое событие, лежащее в блоке.

В нашем случае, в условии лежат фразы "закрывающие счета или акты":

<figure><img src="/files/E4NqMvB8cyvKdrBEg9KL" alt="" width="563"><figcaption></figcaption></figure>

При выборе соответствия "сравнение по смыслу" бот должен найти в сообщении клиента похожие/схожие по смыслу слова/фразы, лежащие в условии:

<figure><img src="/files/kuFvZKflJ1SlpHWuUD6i" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/SZYctzBfngwa3FSNXrt0" alt="" width="563"><figcaption></figcaption></figure>

Каждый раз бот после обработки сообщения клиента, верно отрабатывает необходимое событие, лежащее в блоке.&#x20;

#### Как писать условие

Условие в соответствующем поле прописывается аналогично иным условиям при любом выборе соответствия: через точку с запятой (;):

<figure><img src="/files/L8gQwk3XMxh1lPhqMnCf" alt="" width="563"><figcaption></figcaption></figure>

Приоритетнее указывать в поле условия фразы/слова наиболее точно и лаконично:

<div><figure><img src="/files/ND4k57HeTYi3Q8JT3XKZ" alt="" width="563"><figcaption><p>Настройки блока</p></figcaption></figure> <figure><img src="/files/A7em1CmCXbbbJiH9QNfl" alt="" width="563"><figcaption><p>Отработка ботом</p></figcaption></figure></div>

{% hint style="success" %}
Емкое, точное и лаконичное условие для блока поможет чат-боту верно отрабатывать событие, вложенное в блок. \
Чем больше сложных слов, размытых по смыслу, и растянутых на несколько предложений фраз, тем дольше осуществляется обработка ИИ сообщений клиентов, что может привести к некорректной работе вашей схемы.&#x20;
{% endhint %}

{% hint style="warning" %} <mark style="color:red;">**Обращаем внимание!**</mark>&#x20;

Условие НЕ должно состоять из одного слова: несмотря на то, что необходимо составлять лаконичные условия, они должны отражать искомый ботом смысл..&#x20;

Если модель будет сравнивать два разных слова условия, то они не будут равны. Например: вместо слова «счет», выставьте условие «оплата по счету за месяц» - такое условие будет соответствовать искомым требованиям, а также укажет модели ИИ необходимые критерии для сравнения по смыслу
{% endhint %}

Пример: это  <mark style="color:green;">**ВЕРНОЕ**</mark>  написание условия выбор соответствия "сравнение по смыслу":

<figure><img src="/files/eSFAOFWXD1W9aHZs3fVZ" alt=""><figcaption><p>Верное условие!</p></figcaption></figure>

При верно прописанном условии чат-бот также сработает корректно, а ответ не заставит себя ждать:

<div><figure><img src="/files/4nKBa9GDnS7IOsBgD2gF" alt=""><figcaption></figcaption></figure> <figure><img src="/files/7EmDERQlavObuOR0ewXv" alt=""><figcaption></figcaption></figure></div>

Таким образом, с помощью выбора соответствия "сравнение по смыслу" при отработке ИИ переберет необходимые варианты для понимания смысла реплики клиента, и по соответствию чат-бот отработает необходимое событие.&#x20;

### Видео-инструкция

{% embed url="<https://youtu.be/1YD5QVgyeN0>" %}

## Конструктор условий

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

Конструктор условий соответственно доступен только для [блоков с условиями](/chatbots/builder/block_type/trigger.md): Стартовое условие и Не состояние с условием

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

Чтобы воспользоваться конструктором, откройте настройки блока, где вы увидите соответствующую кнопку, расположенную чуть выше поля условия:

<figure><img src="/files/32ajyANiESgRk1HPC78t" alt="" width="563"><figcaption></figcaption></figure>

После клика на соответствующую кнопку вам откроется окошко для работы с условиями:

<figure><img src="/files/6jJwU3kZcBPM0rWiBi66" alt=""><figcaption></figcaption></figure>

Далее нажмите на "Добавить условие".&#x20;

### Условия Salebot

<figure><img src="/files/DpW1bmbCrW977fPs6Ykv" alt="" width="563"><figcaption></figcaption></figure>

Вкладка конструктора "Условия Salebot" включают в себя все системные условия, хранящиеся и доступные для работы с различными разделами в Сейлботе.&#x20;

#### Обычные условия.

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

<figure><img src="/files/jfSnevBJHCV4rYneCq6O" alt="" width="563"><figcaption></figcaption></figure>

Это может быть тег воронки; сайта и иное другое условие, которое существует только в вашем проекте.&#x20;

#### Переменные

<figure><img src="/files/KHXhsuP2wS8zRdvKR1Fn" alt="" width="563"><figcaption></figcaption></figure>

Условия с переменными достаточно легки в настройке.

Шаг 1. В соответствующем поле введите Имя переменной.

Шаг 2. Выберите параметр сравнения.

<figure><img src="/files/f7GAprVnQCTD7AuXLTh3" alt="" width="563"><figcaption></figcaption></figure>

То есть, что вы хотите сравнивать со своей переменной: определенное значение либо другую переменную.

<figure><img src="/files/7d3JlsBrUiQqgIr1x03Q" alt="" width="563"><figcaption><p>Сравниваем переменную со значением</p></figcaption></figure>

<figure><img src="/files/n5LXJjdIwL3qjpwmB0tF" alt="" width="563"><figcaption><p>Сравниваем переменную с переменной</p></figcaption></figure>

Шаг 3. Выберите тип сравнения.

<figure><img src="/files/rA8suEJBqibrV4zCb84z" alt="" width="563"><figcaption></figcaption></figure>

Каждое сравнение имеет свое значение: равно (==); не равно (!=); строго больше (>); больше или равно (>=); строго меньше (<); меньше или равно (<=).

Пример:

<figure><img src="/files/5zCjtGrbmDPw5O9QTGsA" alt="" width="563"><figcaption></figcaption></figure>

В примере вкладывается значение переменной больше или равно 18. Что это значит? \
Это значит, что событие, вложенное в блок, сработает только у тех клиентов, которые подходят по возрастной группе "совершеннолетние". То есть им или 18, или больше.&#x20;

Эквивалентным выражением "age >= 18" является "age > 17". &#x20;

Условие "age > 17" также сработает только для тех лиц, кто строго старше 17. То есть, начиная от 18 и далее.

#### Разделы Salebot

<figure><img src="/files/vpGWOzhYDR2AvTWGmpSb" alt="" width="563"><figcaption></figcaption></figure>

В условиях по разделам Salebot содержатся типичные коллбеки - системные уведомления - о тех или иных событиях в проекте.&#x20;

Для отработки вложенного события в блок по уведомлению (колбеку), выберите нужное событие, на которое должен реагировать бот, в поле условия, затем укажите выбор соответствия и нажмите кнопку "Добавить условие":

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

После чего условие появится в соответствующих полях в блоке.&#x20;

{% hint style="success" %}
Если в блоке уже вложено какое-либо условие, то при нажатии на кнопку "Добавить условие" новое условие добавится строго после существующего.\
Если вам необходимо добавить новое условие в блок взамен старому, нажмите на "Заменить условие".&#x20;
{% endhint %}

### Мессенджеры

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

С помощью вкладки "Мессенджеры" в конструкторе условий вы сможете настроить реакции на события в мессенджерах, подключенные к Сейлботу.&#x20;

{% hint style="info" %}
Событие — это какое-либо действие ваших подписчиков или клиентов в мессенджерах (каналах, группах, директе и т.д.), например, клиент отписался от бота, подписчик ответил на сторис и т.д.
{% endhint %}

#### Instagram\*

{% hint style="danger" %}
\*Принадлежит экстремистской компании Meta, деятельность которой  запрещена на территории Российской Федерации.&#x20;
{% endhint %}

Для данного канала существуют свои коллбеки (уведомления о событиях) и отдельные методы для отработки реакций.

Для начала вам необходимо выбрать соответствующий коллбек:

<figure><img src="/files/73THQrDoW6JajklAsVff" alt=""><figcaption></figcaption></figure>

Значение каждого коллбека вы можете увидеть непосредственно перед самим системным уведомлением.

{% hint style="info" %}
Для некоторых коллбеков существует свой собственный метод для бота.&#x20;

Например: mention\_in\_media - коллбек упоминания в посте. \
Собственный метод для данного коллбека - reply\_to\_mention - ответный комментарий к посту.
{% endhint %}

<figure><img src="/files/T1cjxqbcRx5vsNhS7f1w" alt="" width="563"><figcaption></figcaption></figure>

Для некоторых колбеков можно ввести ID поста — например, если вам нужно, чтобы бот отреагировал только на комментарии под определенным постом:

<figure><img src="/files/Ruelh9EUo6qqhPAePPmb" alt="" width="563"><figcaption></figcaption></figure>

После настройки необходимой реакции на коллбек кликните на "Добавить условие"/"Заменить условие". На этом настройка закончена.&#x20;

{% hint style="info" %}
Каналы "Telegram" и "Вконтакте" настраиваются аналогично.
{% endhint %}

### Сервисы для приема платежей

<figure><img src="/files/4xNeKUjoLj101uWyB3cb" alt="" width="563"><figcaption></figcaption></figure>

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

<figure><img src="/files/qUcSU8SiSi9yuKZVPNEh" alt="" width="563"><figcaption></figcaption></figure>

Далее выберите необходимый сервис для приема платежей, нажав на кнопку с названием нужного сервиса и выберите соответствующий коллбек в списке:

<figure><img src="/files/emWd8AQSUJMMVVlWtDWr" alt="" width="563"><figcaption></figcaption></figure>

Если вам нужно настроить реакцию только на определенную сумму, то пропишите сумму в поле "Сумма платежа", если нужно, чтобы бот реагировал на любую оплату, поле "Сумма платежа" можно пропустить.

Выбор соответствия "Полное совпадение" или "По наличию ключевых слов":

<figure><img src="/files/NJJAyfRTOVTrqSfcKVwk" alt="" width="563"><figcaption></figcaption></figure>

Далее нажмите "Добавить условие":

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

{% hint style="success" %}
Иные вкладки конструктора условий настраиваются аналогично.\
Желаем успехов!
{% 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.salebot.pro/chatbots/builder/message/trigger/match_type.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.
