> For the complete documentation index, see [llms.txt](https://docs.suvvy.ai/ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.suvvy.ai/ru/osnovnye-nastroiki/dopolnitelnye-nastroiki/dinamicheskie-follou-apy.md).

# Динамические Фоллоу-апы

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

Динамический фоллоу-ап, или напоминание, — сообщение, которое агент отправит клиенту в конкретную дату и время из диалога: за день до записи, в день оплаты, в дату, когда клиент просил вернуться к разговору. Напоминание ставит шаг **Установить фоллоу-ап** в [действии](https://docs.suvvy.ai/ru/osnovnye-nastroiki/prompts/prompts-2#vyzov-funkcii-v-instrukcii).

### Фоллоу-ап или напоминание: что выбрать

В Савви два механизма отложенных сообщений: [фоллоу-апы из групп](https://docs.suvvy.ai/ru/osnovnye-nastroiki/dopolnitelnye-nastroiki/follou-apy) и напоминания из действий.

|                                                    | Фоллоу-ап из группы                                                                           | Напоминание из действия                                                                                                                                                                      |
| -------------------------------------------------- | --------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Когда ставится                                     | После сообщения агента или сотрудника                                                         | Когда выполняется действие с шагом **Установить фоллоу-ап**                                                                                                                                  |
| Время отправки                                     | Через отсрочку или в точное время                                                             | В дату и время из аргумента, со смещением в минутах                                                                                                                                          |
| Условия                                            | Проверяются в момент отправки. Типы: LLM-инструкция, Переменная, Время вызова, Источник связи | Условия действия проверяются один раз, когда напоминание ставится. В момент отправки ничего не проверяется — если не запускать из напоминания группу (см. «Напоминание с проверкой условия») |
| Сообщение клиента или сотрудника, остановка агента | Отменяют очередь                                                                              | Не отменяют                                                                                                                                                                                  |
| Отмена вручную                                     | Только всей очереди. Один фоллоу-ап отдельно не отменить                                      | Одно напоминание по id, все напоминания диалога или вручную в окне **Фоллоу-апы** в чате                                                                                                     |
| Видно в окне **Фоллоу-апы** в чате                 | Нет                                                                                           | Да                                                                                                                                                                                           |
| Для чего                                           | Вернуть клиента, который замолчал                                                             | Напомнить о событии: записи, оплате, сроке                                                                                                                                                   |

### Как настроить

Разберём на примере: клиент записался на приём, и за сутки и за 2 часа до визита ему должны прийти напоминания.

{% stepper %}
{% step %}

#### Создайте действие

Откройте раздел **Действия** и нажмите **Добавить**. Задайте название, например «Напоминания о записи».

<figure><img src="https://1280958077-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCfQs1g1wTlkieX5CuhTI%2Fuploads%2FSmnyBuQ7qo7CUdkOZbIq%2Fimage.png?alt=media&amp;token=2773126f-2c65-4eaf-a829-f9bdc84ab748" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Добавьте аргумент с датой

Вкладка **Переменные действия** → добавьте аргумент `visit_datetime` типа **Дата-время**. В описании укажите формат и часовой пояс:

```
Дата и время записи клиента с часовым поясом +03:00, например YYYY-MM-DDTHH:MM:SS+03:00.
```

Часовой пояс укажите свой. Без него модель может передать время в UTC, и напоминание сдвинется на несколько часов.

Если в напоминании нужны другие данные — название услуги, имя мастера, — добавьте для них аргументы типа **Текст**, например `service_name`.

<figure><img src="https://1280958077-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCfQs1g1wTlkieX5CuhTI%2Fuploads%2FyO9L8HTziALbRQsNyzaS%2Fimage.png?alt=media&amp;token=4d9e6b90-c4fd-4f9a-bdc6-f9a1f5c2f202" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Опишите, когда вызывать

Вкладка **Условия срабатывания** → **Вызов LLM-моделью**. Задайте название функции, например `set_visit_reminders`, и описание:

```
Вызывай, когда клиент успешно записался на приём. Передай дату и время записи и название услуги.
```

Действие можно вызывать и по триггеру — тогда значения аргументов задаются в блоке **Задать значения переменных**. Подробнее — в статье [Вызов действий по триггеру](https://docs.suvvy.ai/ru/deistviya/vyzov-deistvii-po-triggeru).

<figure><img src="https://1280958077-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCfQs1g1wTlkieX5CuhTI%2Fuploads%2FiZosAgke8AztFYRrY9Bv%2Fimage.png?alt=media&amp;token=387aced6-016b-4806-bec9-03e765c06c65" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Добавьте шаг «Установить фоллоу-ап»

Вкладка **Шаги действий** → **Добавить шаг** → **Установить фоллоу-ап**.

* **Дата-Время запуска фоллоу-апа** — нажмите шестерёнку справа и выберите аргумент `visit_datetime`.
* **Смещение запуска (минуты)** — `-1440`: напоминание уйдёт за сутки до записи.
* **Сообщение** — текст напоминания. Аргументы вставляются через шестерёнку справа от поля:

```
Напоминаем, что вы записаны на {service_name} завтра. Если планы изменились — напишите, перенесём.
```

<figure><img src="https://1280958077-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCfQs1g1wTlkieX5CuhTI%2Fuploads%2Fglf1YXkzFSZTCeEWZBim%2Fimage.png?alt=media&amp;token=258e5d0d-f917-487d-be61-d7e44e950f25" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Добавьте шаг на каждое напоминание

Одно напоминание — один шаг. Добавьте второй шаг **Установить фоллоу-ап** с той же датой, смещением `-120` и своим текстом — это напоминание за 2 часа.

Нажмите **Сохранить**.
{% endstep %}

{% step %}

#### Проверьте, что агент вызывает действие

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

```
При успешной записи клиента вызови функцию set_visit_reminders и передай в неё дату и время записи и название услуги.
```

{% endstep %}
{% endstepper %}

{% hint style="info" %}
Смещение отсчитывается от **Даты-Времени запуска фоллоу-апа**: `-120` — за 2 часа, `-1440` — за сутки, `60` — через час после. Допустимый диапазон — от −43200 до 43200 минут, то есть до 30 суток в обе стороны. Поэтому в действие достаточно передать одну дату события, а время каждого напоминания задать смещением в его шаге.
{% endhint %}

{% hint style="success" %}
Если клиент может отменить или перенести запись в переписке, сделайте напоминания с проверкой условия — см. раздел «Напоминание с проверкой условия». Тогда напоминание не уйдёт клиенту, который уже отменил запись, даже если агент не вызвал отмену.
{% endhint %}

### Настройки шага «Установить фоллоу-ап»

| Настройка                                                        | Что делает                                                                                                           |
| ---------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| **Дата-Время запуска фоллоу-апа**                                | Когда отправить напоминание. Обычно — аргумент действия с типом **Дата-время**                                       |
| **Смещение запуска (минуты)**                                    | Сдвиг относительно даты-времени: отрицательное число — раньше, положительное — позже                                 |
| **Сообщение**                                                    | Текст, который уйдёт клиенту, если не включён ни один переключатель ниже. С переключателями — инструкция для агента  |
| **Вызывать агента**                                              | Агент выполнит инструкцию из поля **Сообщение**: например, сгенерирует сообщение и вызовет файл базы знаний          |
| **Сгенерировать сообщение**                                      | Агент напишет сообщение по инструкции из поля **Сообщение**                                                          |
| **Вызвать файл Базы знаний**                                     | Отправит выбранный файл базы знаний                                                                                  |
| **Запуск группы**                                                | Запустит группу фоллоу-апов. Так перед отправкой проверяется условие — см. «Напоминание с проверкой условия»         |
| **Вызов действия**                                               | Выполнит выбранное действие. Значения из блока **Задать значения переменных** этого действия подставляются           |
| **Информационное сообщение при успешном добавлении напоминания** | Что получит модель в результате шага. К тексту добавляется id напоминания: `id: ...`                                 |
| **Записать id созданного фоллоу-апа в переменную**               | Сохранить id напоминания, чтобы потом отменить именно его                                                            |
| **Удалить все фолоу-апы (Напоминания) при активации шага**       | Перед постановкой нового напоминания удалить все напоминания этого диалога. Подробнее — в разделе «Отмена и перенос» |

### Где смотреть запланированные напоминания

Откройте диалог в разделе **Чаты** и нажмите **Фоллоу-апы** ![](https://1280958077-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCfQs1g1wTlkieX5CuhTI%2Fuploads%2FU6KuundEgfwV3KdNDFPK%2Fimage.png?alt=media\&token=009b818d-d983-48ef-b8f9-f1c70702552b). В окне — все напоминания диалога, которые ещё не сработали: название шага, дата постановки и время отправки.

Здесь же напоминание можно снять вручную: отметьте его и нажмите **Удалить**.

<figure><img src="https://1280958077-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCfQs1g1wTlkieX5CuhTI%2Fuploads%2FUruzoTEwCQNJMkJXBCap%2F06-okno-follou-apy-v-chate.png?alt=media&amp;token=0cdf3234-fe51-4fe0-a856-a62645ca1afa" alt=""><figcaption></figcaption></figure>

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

### Отмена и перенос

{% hint style="danger" %}
Напоминание не отменяется само: ни сообщением клиента, ни сообщением сотрудника, ни остановкой агента. Напоминание с фиксированным сообщением придёт, даже если диалог перехватил сотрудник. Если повод для напоминания может исчезнуть — клиент отменил запись, перенёс её, уже оплатил, — предусмотрите отмену.
{% endhint %}

Отменить напоминания можно тремя способами.

#### 1. Удалить старые при постановке новых — для переноса

В первом шаге **Установить фоллоу-ап** включите **Удалить все фолоу-апы (Напоминания) при активации шага**. При каждом вызове действия старые напоминания диалога удаляются, и ставятся новые. Клиент перенёс запись — агент вызывает то же действие с новой датой.

{% hint style="warning" %}
Включайте настройку только в первом шаге действия. Если включить её в каждом, каждый шаг удалит напоминания, поставленные предыдущими, и останется только последнее.
{% endhint %}

Отменить напоминания без постановки новых так нельзя.

#### 2. Отдельное действие отмены — когда событие отменилось

Создайте действие с шагом **Отменить фоллоу-апы (Напоминания)** и включите **Отменить все фолоу-апы (Напоминания) диалога**. В описании функции укажите, когда её вызывать, например: «Вызывай, когда клиент отменил запись».

{% hint style="warning" %}
Шаг **Отменить фоллоу-апы (Напоминания)** снимает только напоминания из действий. Фоллоу-апы из групп он не трогает.
{% endhint %}

#### 3. Отмена одного напоминания по id

Когда у события несколько напоминаний, а снять нужно одно — например, клиент подтвердил визит и напоминание за 2 часа уже не нужно, — отменяйте по id.

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

1. Создайте пользовательскую переменную, например `reminder_id`, тип **Строка**.
2. В действии с напоминанием, в шаге **Установить фоллоу-ап**, включите **Записать id созданного фоллоу-апа в переменную** и задайте имя, например `rid`. Это переменная действия: она доступна только следующим шагам этого действия.
3. Следующим шагом того же действия добавьте **Установить значения пользовательских переменных**: `reminder_id` = `rid`.
4. Создайте действие отмены с **вызовом по триггеру** — например, обязательное условие «Новое сообщение от клиента» и LLM-инструкция «клиент подтвердил визит». Добавьте аргумент `reminder_id` и в блоке **Задать значения переменных** укажите `{reminder_id}`.
5. В шаге **Отменить фоллоу-апы (Напоминания)** выключите **Отменить все фолоу-апы (Напоминания) диалога**, а в поле **ID фоллоу-апов для отмены** выберите аргумент `reminder_id`.

Отменится только это напоминание, остальные придут в срок. На каждое напоминание, которое нужно отменять отдельно, — своя пользовательская переменная.

{% hint style="warning" %}
Действие отмены должно вызываться по триггеру. Если его вызывает модель, значение переменной в аргумент не подставится, и id модели придётся переписывать самой — она может ошибиться в символе. Подробнее — в статье [Переменные в действиях](https://docs.suvvy.ai/ru/osnovnye-nastroiki/prompts/peremennye-v-deistviyakh).
{% endhint %}

<figure><img src="https://1280958077-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCfQs1g1wTlkieX5CuhTI%2Fuploads%2FUL7DLNNa9XGM3A38FHzI%2F07-shag-otmeny-id.png?alt=media&amp;token=2101ca28-6ba7-44c6-ab99-1bc8c634dd53" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Шаг отмены отвечает одинаково, даже если напоминания с таким id нет или оно уже отправлено. Убедиться, что отмена сработала, можно только по факту: напоминание не пришло в срок.
{% endhint %}

### Напоминание с проверкой условия

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

1. В разделе **Фоллоу-апы → Все группы** создайте группу из одного фоллоу-апа: отсрочка 0, сообщение и условие — например, LLM-инструкция:

```
Если клиент отменил или перенёс запись Тогда
Верни false
Иначе
Верни true
КонецЕсли
```

2. Не добавляйте эту группу в **Группы для запуска после сообщения агента** или **после сообщения сотрудника**, иначе она будет срабатывать после каждого сообщения.
3. В шаге **Установить фоллоу-ап** включите **Запуск группы** и выберите эту группу.

В назначенное время напоминание запускает группу, и условие проверяется уже в этот момент. Если оно не выполнено, сообщение не уходит, а в чате остаётся событие проверки с объяснением модели. Такое напоминание по-прежнему можно отменить по id или вручную в окне **Фоллоу-апы**.

{% hint style="info" %}
У фоллоу-апа в группе четыре типа условий: LLM-инструкция, Переменная, Время вызова, Источник связи. Проверить текст сообщения клиента можно LLM-инструкцией.
{% endhint %}

### Пример: клиент просит вернуться позже

Клиент пишет: «Давайте после Нового года» или «Напишите через месяц». Агент должен запомнить дату, до неё клиента не беспокоить, а в этот день написать один раз.

**Действие** `set_postpone_date` вызывает модель. Описание функции:

```
Вызывай, когда клиент откладывает решение и называет, когда к нему вернуться: дату или срок («после нового года», «через месяц»). Вызывай один раз на дату. Клиенту не обещай написать или напомнить.
```

Аргумент `return_date`, тип **Дата-время**, описание:

```
День, когда вернуться к разговору, в 11:00 с часовым поясом +03:00, например 2027-01-11T11:00:00+03:00. Если клиент назвал срок словами («после нового года», «через месяц») — первый рабочий день этого срока.
```

**Группа фоллоу-апов** «Вернуться к разговору» — в разделе **Фоллоу-апы → Все группы**, без добавления в **Группы для запуска после сообщения агента** и **после сообщения сотрудника**. В ней один фоллоу-ап:

* **Когда** — отсрочка 0;
* **Условие срабатывания** — LLM-инструкция:

```
Если после просьбы вернуться позже клиент сам вернулся к разговору, записался или отказался Тогда
Верни false
Иначе
Верни true
КонецЕсли
```

* **Что отправить** — **Генерация сообщения существующим агентом**:

```
Клиент просил вернуться к разговору в этот день. Напомни, о чём говорили, и спроси, актуально ли сейчас.
```

Шаги действия:

1. [**Шаг CRM**](/ru/integracii/sistemy-bronirovaniya.md) **(или**[ **Веб-хук**](/ru/deistviya/veb-khuki.md)**)** — например, «Отправить summary-примечание» в сделку AmoCRM или Битрикс24 или заполнение поля «Дата следующего контакта», чтобы менеджер видел, на какой срок клиент отложил разговор. Шаг необязательный. Если шагу нужен ID сделки, действие должно вызываться по триггеру — подробнее в статье [Переменные в действиях](https://docs.suvvy.ai/ru/osnovnye-nastroiki/prompts/peremennye-v-deistviyakh).
2. **Установить фоллоу-ап**:
   * **Дата-Время запуска фоллоу-апа** — `return_date`;
   * включено **Запуск группы** — группа «Вернуться к разговору»;
   * включено **Удалить все фолоу-апы (Напоминания) при активации шага** — если клиент назовёт новую дату, старое напоминание снимется.

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

{% hint style="warning" %}
**Удалить все фолоу-апы (Напоминания) при активации шага** снимает все напоминания диалога, в том числе из других действий. Если в диалоге бывают напоминания, которые снимать нельзя, — например, об уже оплаченном занятии, — вместо этой настройки отменяйте старое напоминание по id.
{% endhint %}

{% hint style="warning" %}
Напоминания не трогают фоллоу-апы из групп. После ответа агента цепочка «дожима» встанет в очередь как обычно и напишет клиенту раньше даты. Чтобы этого не было, добавьте в условие фоллоу-апов этой цепочки LLM-инструкцию: «Если клиент попросил вернуться к разговору позже или назвал дату — верни false».
{% endhint %}

### Частые ошибки

| Симптом                                                | Причина                                                                                     | Что сделать                                                                 |
| ------------------------------------------------------ | ------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
| Напоминание пришло на несколько часов раньше или позже | Модель передала время в UTC или без часового пояса                                          | В описании аргумента с датой указать формат и часовой пояс                  |
| Напоминание пришло клиенту, который уже отменил запись | Напоминание само не отменяется                                                              | Действие отмены или напоминание с проверкой условия                         |
| Напоминание пришло, хотя диалог перехватил сотрудник   | Остановка агента напоминания не отменяет                                                    | Снять вручную в окне **Фоллоу-апы** или действием отмены                    |
| После переноса осталось только последнее напоминание   | **Удалить все фолоу-апы (Напоминания) при активации шага** включено не только в первом шаге | Оставить настройку только в первом шаге                                     |
| Пропали напоминания, поставленные другим действием     | **Удалить все фолоу-апы (Напоминания) при активации шага** снимает все напоминания диалога  | Отменять старое напоминание по id                                           |
| Шаг отмены ответил успешно, а напоминание пришло       | Передан не тот id: например, действие отмены вызвала модель                                 | Передавать id через пользовательскую переменную в действие по триггеру      |
| До назначенной даты клиенту писал «дожим»              | Напоминания и их отмена не трогают фоллоу-апы из групп                                      | Добавить в условие фоллоу-апов группы LLM-инструкцию, которая это учитывает |
| Напоминания нет в окне **Фоллоу-апы**                  | Оно уже запустилось: из списка напоминание пропадает в момент запуска                       | Проверить ленту чата: пришло ли сообщение                                   |

**Подробнее:** [Фоллоу-апы](https://docs.suvvy.ai/ru/osnovnye-nastroiki/dopolnitelnye-nastroiki/follou-apy) · [Вызов действий по триггеру](https://docs.suvvy.ai/ru/deistviya/vyzov-deistvii-po-triggeru) · [Переменные в действиях](https://docs.suvvy.ai/ru/osnovnye-nastroiki/prompts/peremennye-v-deistviyakh)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.suvvy.ai/ru/osnovnye-nastroiki/dopolnitelnye-nastroiki/dinamicheskie-follou-apy.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
