# Блок - действие

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

{% hint style="warning" %}
Все действия внутри блока "Действие" выполняются **асинхронно**, а не последовательно.
{% endhint %}

Далее представлен полный список возможных действий.

### Действия с переменными

Это действия, которые выполняются с пользовательскими/глобальными переменными бота.

* Установить переменную
* Формула
* Прибавить
* Вычесть
* Разделить
* Умножить
* Добавить в конец
* Добавить в начало
* Случайное число
* Порядковый номер участника шага
* Удалить переменную

{% content-ref url="/pages/tATWhY4CT5A81voeF57E" %}
[Переменные в ботах](/senler/kanaly/telegram/chat-boty/peremennye-v-botakh.md)
{% endcontent-ref %}

### Действия с ответом на сообщение

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

<figure><img src="/files/E4AFEdWzsjWYiPWpT3iM" alt=""><figcaption><p>Ожидание ответа в боте</p></figcaption></figure>

* #### Сохранить ответ в переменную

Ответ пользователя будет сохранен в указанную переменную.

* Сохранить ответ с вложениями

Ответ пользователя с вложениями будет сохранен в указанную переменную. Вложения при этом сохраняются в виде ссылки.

* #### Прибавить ответ к переменной

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

* #### Вычесть ответ из переменной

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

* Добавить в конец переменной

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

* Добавить в начало переменной

То же самое, только ответ будет добавлен в начало.

* Добавить в конец переменной с вложениями

Работает также, как и добавление к обычной переменной.

* Добавить в начало переменной с вложениями

Работает также, как и добавление к обычной переменной.

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

### Действия со статусами набора сообщения

* Установить статус набора текста

<figure><img src="/files/brZf9wJgLpTpJJC4eFRE" alt=""><figcaption><p>Статус набора текста</p></figcaption></figure>

* Установить статус записи голосового сообщения

<figure><img src="/files/S7z13VzQ82wn2xZOi4JU" alt=""><figcaption><p>Статус записи голосового сообщения</p></figcaption></figure>

{% hint style="info" %}
После установки статуса он отображается в течение 5 секунд.\
После этого происходит ожидание ещё 5 секунд, по завершении которого сценарий переходит к следующему шагу.
{% endhint %}

### Действия с вебхуком

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

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

<figure><img src="/files/8M6J9lxzbfRULumibHFi" alt=""><figcaption><p>Конструктор шаблона для вебхука</p></figcaption></figure>

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

<figure><img src="/files/1uLebybKaztw8wfQKrV4" alt=""><figcaption><p>Шаблоны для вебхуков</p></figcaption></figure>

Отправить вебхук можно двумя типами HTTP-запросов:

* GET
* POST

Для POST-запроса доступны 2 формата:

* POST\_JSON
* POST\_FORM\_DATA

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

<figure><img src="/files/3iH9iSoRw5bbrYy2Z800" alt=""><figcaption><p>Кнопка для отправки тестового запроса</p></figcaption></figure>

Далее можно **обработать ответ** сервера и сохранить его в переменные.

<figure><img src="/files/cXyfeYAvvVMNC2JegaUV" alt=""><figcaption><p>Обработать ответ в переменные</p></figcaption></figure>

Если ниже не нажимать на кнопку **Добавить ответ**, то ответ сервера будет распарсен по правилу, описанному в подсказке на скриншоте.

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

<figure><img src="/files/skLN9hbwbWebEMpV9fGR" alt=""><figcaption><p>Сохранение ответа сервера в переменные</p></figcaption></figure>

Если на сервере подготовить структуру данных для ответа, то в этом окне можно отмечать чекбоксами, что конкретно сохранить в переменные.

После выбора определенных данных в настройках вебхука будет виден соответствующий результат:

<figure><img src="/files/VltnimFIofjOh6cEy9bR" alt=""><figcaption><p>Добавленный ответ</p></figcaption></figure>

Это говорит о том, что выбранные данные из ответа сервера будут сохранены в пользовательскую переменную *example*, а сама переменная появится в карточке вашего подписчика.

Еще можно включить опцию **ожидать ответ**.

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

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

### Действия с ботами

* Добавить в бота

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

* Удалить из бота

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

### Действия с сообщениями из бота

* Удалить сообщение

Для удаления сообщения необходимо выбрать бота и шаг. У пользователя будет удалено данное сообщение, если прошло не больше 48 часов.

{% hint style="info" %}
Данная функция не удаляет пересланные сообщения, только оригинал.
{% endhint %}

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

### Действия с метками

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

* Добавить метку
* Удалить метку

### Действия с группами подписчиков

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

* Добавить в группу
* Удалить из группы

{% hint style="warning" %}
**Внимание!** Чтобы не допустить зацикливания, при добавлении в группу подписчиков не запускаются связанные боты. Для добавления пользователя в бота необходимо создать дополнительное действие.
{% endhint %}

### Очистить данные

Это действия, которые удаляют из карточки подписчика все связанные с ним сущности.

* Удалить из всех групп
* Удалить все метки
* Удалить из всех чат-ботов
* Удалить все пользовательские переменные
* Удалить из базы

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

### Ответить на callback запрос

Данное действие используется совместно с шагом-сообщением, где добавлена кнопка и включена опция **Клавиатура внутри сообщения**.

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

<figure><img src="/files/bJ5QrbtX46jqVzjoG1Cm" alt=""><figcaption><p>Использование действия "Ответить на callback запрос" в схеме чат-бота</p></figcaption></figure>

Вы можете его использовать, если вам нужно:

* Отключить анимацию загрузки кнопки после нажатия
* Отправить пользователю всплывающее уведомление (pop-up)
* Передать параметры по указанной ссылке (только внутри Telegram)

Настройки действия:

{% hint style="warning" %}
При создании шага настройки по умолчанию не заданы — это просто отключит анимацию кнопки.
{% endhint %}

* Ввод сообщения, которое будет отображаться во всплывающем уведомлении или в pop-up'е
* Ввод ссылки, благодаря которой будут переданы параметры в вашего TG-бота (поддерживаются ссылки на вашего бота, начинающиеся с <https://t.me>)
* Включение возможности отправки всплывающего сообщения (или pop-up'а опцией Предупреждение)

Существует 3 наиболее популярных варианта применения данного действия. Рассмотрим каждый из них:

1. **Простое отключение анимации**

*Настройки:*

Нет текста, галочка Предупреждение выключена, нет URL

*Результат:*

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

*Когда применять?*

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

*Примечание*: В веб-версии Telegram анимация кнопок не поддерживается.

2. **Уведомление пользователя (pop-up)**

*Настройки:*

Есть текст, отметка Предупреждение включена, нет URL

*Результат:*

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

*Когда применять?*

Для подтверждения действия или информирования (например, «Запрос принят!»).

3. **Передача параметров TG-боту**

*Настройки:*

Есть текст, включено «Предупреждение», указан URL (например, <https://t.me/bot?start=param>).

*Результат:*

Параметры передаются боту через deeplink-ссылку в бота по внутренней ссылке Телеграм.

Внешние ссылки за пределы Телеграма не поддерживаются.

*Когда применять?*

Для выполнения действий с параметрами (например, подписка на группу подписчиков).


---

# 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/kanaly/telegram/chat-boty/blok-deistvie.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.
