# Блок - условие

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

{% hint style="warning" %}
**Внимание!** Условные блоки не ожидают никаких действий. Например, если указать условие Прочитанность какого-нибудь сообщений в боте, то условный блок не будет ждать, пока пользователь прочитает, а сразу пойдет по ветке - Нет.
{% endhint %}

При добавлении условного блока сначала надо выбрать:&#x20;

* должен ли подписчик соответствовать одновременно всем условиям (это значение по умолчанию)
* или какому-нибудь одному из условий

Затем в одном блоке можно добавить несколько условий.

![Пример настройки условного блока](/files/-LbiHQKwbLcVve8JS4VE)

### Ответ на сообщение

{% hint style="warning" %}
**Внимание!** Данные условия работают только после пункта **Ответ на сообщение**.
{% endhint %}

![Проверка ответа пользователя](/files/-Lr5V41v34FCKhoto7ui)

Возможные варианты проверки:

* ответ равен
* ответ не равен
* ответ содержит
* ответ не содержит
* ответ соответствует регулярному выражению
* ответ - телефон российского формата с 11 цифрами (можно задать с 8, +7 или 7)
* ответ - Email
* ответ - Число
* ответ меньше числа
* ответ больше числа

{% hint style="info" %}
При сравнении текстов регистр не учитывается.
{% endhint %}

{% hint style="info" %}
Даже в неактивном состоянии бот собирает ответы пользователей и нажатия на кнопки. При активации бота учтет эти действия.
{% endhint %}

{% hint style="warning" %}
**Внимание!** Бот не получает измененную версию ответа, если пользователь отредактировал ответ.
{% endhint %}

### Переменная

Возможные варианты проверки:

* Переменная равна
* Переменная не равна
* Переменная меньше
* Переменная больше
* Переменная имеет значение
* Переменная не имеет значения

### Пол

Возможные варианты проверки:

* Женский
* Мужской

### Имя

Возможные варианты проверки:

* Имя равно
* Имя не равно
* Имя содержит
* Имя не содержит

### **Время последнего контакта**

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

Возможные варианты настройки:

Рассылка/бот - если оставить поле пустым, без указания конкретных рассылки или бота, то выполнится проверка в целом на отправленное сообщение через выбранную сущность.

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

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

Время контакта более - если после проверяемого сообщения прошло более указанного времени.

Время контакта менее - если после проверяемого сообщения прошло менее указанного времени.

{% hint style="info" %}
Но также, как и с остальными условиями, есть нюанс. Оно проверит лишь раз, и может не выполниться, если не соответствует выставленным настройкам. В этом случае поможет цикл, например, раз в час, если нужно подождать, пока пользователь получит конкретное сообщение.&#x20;
{% endhint %}

### Возраст

{% hint style="info" %}
Информация берется из личного кабинета, поэтому перед тестированием убедитесь, что в карточке подписчика находится нужное значение.
{% endhint %}

Возможные варианты проверки:

* Возраст равен
* Возраст не равен
* Возраст меньше равно
* Возраст больше равно
* Возраст указан
* Возраст не указан

У кого вся дата скрыта - считается их возврат равен 0. У кого только год скрыт - считается что они старше 1970 года.

### География

Возможные варианты проверки:

* Страна
* Город

### Состоит в сообществе

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

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

* Состоит в сообществе
* Не состоит в сообществе

### Бот

Возможные варианты проверки:

* Находится в боте
* Не находится в боте
* Находится в каком-либо боте
* Не находится ни в одном боте

{% hint style="warning" %}
**Внимание!** Если укажите условие "Находится в боте", то оно сработает если пользователь находится на выбранном шаге или находился там ранее.
{% endhint %}

### Сообщения в боте

Возможные варианты проверки:

* Прочитал сообщение в шаге
* Не прочитал сообщение в шаге
* Перешел по ссылке в сообщении шага
* Не перешел по ссылке в сообщении шага

### Метки

Возможные варианты проверки:

* Имеет метку
* Не имеет метку
* Имеет любую метку
* Без меток

{% hint style="info" %}
**Пример.** Если укажите условие **Имеет метку N**, то будут выбраны все пользователи, которые имеют данную метку на момент проверки.
{% endhint %}

### Группа подписчиков

Возможные варианты проверки:

* Подписан на группу
* Не подписан на группу
* Подписан на любую группу
* Без группы

{% hint style="info" %}
**Пример.** Если укажите условие **Подписан на группу N**, то будут выбраны все пользователи, которые подписаны на данную группу на момент проверки.
{% endhint %}

### Рассылка

Возможные варианты проверки:

* Получал рассылку
* Не получал рассылку
* Прочитал рассылку
* Не прочитал рассылку
* Ошибка при получении рассылки
* Перешел по ссылке в рассылке
* Не перешел по ссылке в рассылке

{% hint style="info" %}
**Пример.** Если укажите условие **Прочитал рассылку N**, то будут выбраны все пользователи, прочитавшие данное сообщение на момент проверки.
{% endhint %}

{% hint style="warning" %}
**Внимание!** Отправленные сообщения хранятся 12 месяцев. Потом данные условия не будут работать корректно.
{% endhint %}

### UTM\_SOURCE

Возможные варианты проверки:

* Имеет UTM\_SOURCE
* Не имеет UTM\_SOURCE
* Имеет любое UTM\_SOURCE
* Без UTM\_SOURCE

{% hint style="info" %}
**Пример.** Если укажите условие **Имеет UTM\_SOURCE: google**, то будут выбраны все пользователи, которые имеют данную метку на момент проверки.
{% endhint %}

### UTM\_MEDIUM

Возможные варианты проверки:

* Имеет UTM\_MEDIUM
* Не имеет UTM\_MEDIUM
* Имеет любое UTM\_MEDIUM
* Без UTM\_MEDIUM

{% hint style="info" %}
**Пример.** Если укажите условие **Имеет UTM\_MEDIUM: cpm**, то будут выбраны все пользователи, которые имеют данную метку на момент проверки.
{% endhint %}

### UTM\_CAMPAIGN

Возможные варианты проверки:

* Имеет UTM\_CAMPAIGN
* Не имеет UTM\_CAMPAIGN
* Имеет любое UTM\_CAMPAIGN
* Без UTM\_CAMPAIGN

{% hint style="info" %}
**Пример.** Если укажите условие **Имеет UTM\_CAMPAIGN: campaign\_1**, то будут выбраны все пользователи, которые имеют данную метку на момент проверки.
{% endhint %}

### UTM\_CONTENT

Возможные варианты проверки:

* Имеет UTM\_CONTENT
* Не имеет UTM\_CONTENT
* Имеет любое UTM\_CONTENT
* Без UTM\_CONTENT

{% hint style="info" %}
**Пример.** Если укажите условие **Имеет UTM\_CONTENT: content\_1**, то будут выбраны все пользователи, которые имеют данную метку на момент проверки.
{% endhint %}

### UTM\_TERM

Возможные варианты проверки:

* Имеет UTM\_TERM
* Не имеет UTM\_TERM
* Имеет любое UTM\_TERM
* Без UTM\_TERM

{% hint style="info" %}
**Пример.** Если укажите условие **Имеет UTM\_TERM: term\_1**, то будут выбраны все пользователи, которые имеют данную метку на момент проверки.
{% endhint %}

### Текущее московское время

Возможные варианты проверки:

* Текущее время меньше равно
* Текущее время больше равно

### Текущая дата

Возможные варианты проверки:

* Дата равна
* Дата меньше равно
* Дата больше равно

### Текущий день недели

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

### Осталось до дня рождения

{% hint style="info" %}
Информация берется из личного кабинета, поэтому перед тестированием убедитесь, что в карточке подписчика находится нужное значение.
{% endhint %}

Проверка, сколько дней осталось до следующего дня рождения пользователя. Данное условие можно использовать для отправки пользователю поздравления перед днем рождения или непосредственно в день рождения.

### Осталось до окончания подписки

Проверка, сколько дней осталось до окончания платной периодической подписки. Данное условие можно использовать для отправки пользователю уведомления перед завершением подписки или непосредственно в день завершения подписки.

### Онлайн

{% hint style="warning" %}
**Внимание!** При большой нагрузке ВКонтакте возвращает ошибку, не гарантируется стабильная работа этой функции.
{% endhint %}

Проверяется статус пользователя в социальной сети ВК.

Возможные варианты проверки:

* Подписчик онлайн
* Подписчик не онлайн
* Был онлайн (+ указать время, например пользователь был онлайн в течение 5 минут на момент проверки условия)
* Не был онлайн (+ указать время, например пользователь не был онлайн в течение 24 часов на момент проверки условия)


---

# 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://help.senler.ru/senler-old/bot/usloviya.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.
