# Кнопки и вложения

## Как работать с кнопками

{% hint style="info" %}
Instagram не поддерживает одновременную отправку inline-кнопок и кнопок ответа
{% endhint %}

### Клавиатура **(ответ)**

Instagram поддерживает до 11 кнопок ответа. Кнопки можно располагать только в одну линию

Пример:

<div data-with-frame="true"><figure><img src="/files/a5c157da5f39d99f4e67eabc3907d273b9cefe27" alt="" width="563"><figcaption></figcaption></figure></div>

Результат:

<div data-with-frame="true"><figure><img src="/files/84d541d54150e1dc13871bdf2e333ba6dc5049ec" alt="" width="375"><figcaption></figcaption></figure></div>

### В тексте (inline)

<div data-with-frame="true"><figure><img src="/files/5f6a1af56ca94e997d7d8f3b25d33eb786e2565a" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/6d5e573c39e0148462a2186dbdb71bdb32570790" alt="" width="375"><figcaption></figcaption></figure></div>

{% hint style="danger" %}
Instagram поддерживает не более 3 inline-кнопок
{% endhint %}

<div data-with-frame="true"><figure><img src="/files/68a15db8dd43c51fbaf340751f7427eeead26903" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/662c30e47cb24db22c473607049680a69869b9ee" alt="" width="563"><figcaption></figcaption></figure></div>

Кнопки могут вести на сторонние ресурсы. Визуально эти кнопки идентичны.

Инструкции по настройке кнопок см. в **Кнопки** .

## Как работать с вложениями

Вы можете отправлять вложения в сообщении. Для получения дополнительной информации о том, какие вложения поддерживаются и как их добавить, см. раздел [Отправка вложений](/doc/ru/chatbot/builder/attachments/tab.md) в документации.

<div data-with-frame="true"><figure><img src="/files/0cd990486f943951d1559b6fdd1eac9adfc4f4a7" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/b68b44ac85751af28c1f27206ab71084f0174c95" alt="" width="375"><figcaption></figcaption></figure></div>

{% hint style="warning" %}
Вы можете загружать вложения в блок либо как файл, либо указав ссылку на файл.

Размер загружаемых видеофайлов не должен превышать 20 МБ, а аудио- и графические файлы не должны быть больше 5 МБ.
{% endhint %}

**Требования к вложениям:**

| Тип медиафайла | Поддерживаемый формат | Максимальный размер |
| -------------- | --------------------- | ------------------- |
| Аудио          | M4A                   | 5 МБ                |
| Изображение    | JPEG, PNG             | 5 МБ                |
| Видео          | MP4                   | 20 МБ               |

{% hint style="warning" %}
Строго **NOT** рекомендуется использовать формат MP4 для аудиовложений. Кроме того, **в формате MP3 аудио вообще не будет отправлено**.
{% endhint %}

## Как создать карусель

Карусель может содержать от 2 до 10 карточек (слайдов).

<div data-with-frame="true"><figure><img src="/files/8e16d50ae24af121440abface4f9958d42ef8ad1" alt="" width="375"><figcaption></figcaption></figure></div>

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

p = \[{"title":"ЗАГОЛОВОК", "description": "ОПИСАНИЕ ИЗОБРАЖЕНИЯ 1", "image": "ССЫЛКА НА ИЗОБРАЖЕНИЕ 1", "buttons":\[{"text":"ТЕКСТ КНОПКИ 1"}]},{"title":"ЗАГОЛОВОК", "description": "ОПИСАНИЕ КАРТОЧКИ 2", "image": "ССЫЛКА НА ИЗОБРАЖЕНИЕ 2", "buttons":\[{"text":"ТЕКСТ КНОПКИ 2"}]}, {"title":"ЗАГОЛОВОК", "description": "ОПИСАНИЕ КАРТОЧКИ 3", "image": " ССЫЛКА НА ИЗОБРАЖЕНИЕ 3", "buttons":\[{"text":"ТЕКСТ КНОПКИ 3"}]}]                                              &#x20;

r = send\_carousel(p, '')

<div data-with-frame="true"><figure><img src="/files/b9baf9917e98c2d70e7c261a688a73858b4b6eb0" alt=""><figcaption></figcaption></figure></div>

Скопируйте ссылку:

<div data-with-frame="true"><figure><img src="/files/b0f8c92b6408580902b2d99f46bfd12a79a6d889" alt=""><figcaption></figcaption></figure></div>

Результат:

<div data-with-frame="true"><figure><img src="/files/74fc11b9842a737c15bc7a83f4ed8531faa61e23" alt="" width="383"><figcaption></figcaption></figure></div>

{% hint style="warning" %}
Обратите внимание: выражение `r = send_carousel(p, '')` должно начинаться с новой строки в Calculator.
{% endhint %}

Это означает, что вам нужно присвоить переменной массив, содержащий заголовок, описание, изображение и кнопки `p` (при желании вы можете назвать переменную по-другому). Затем используйте эту переменную в `send_carousel(p, "")` .

Оставляет `#{None}` в поле **"Ответ"** .

<div data-with-frame="true"><figure><img src="/files/241e7798613b3bf6d3d47ec584d18a64ed4bd344" alt="" width="563"><figcaption></figcaption></figure></div>

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

Чтобы добавить ссылку к кнопке на карточке, включите ее в массив:

p = \[{"title":"title", "description": "ОПИСАНИЕ КАРТОЧКИ 1", "image": "ССЫЛКА НА ИЗОБРАЖЕНИЕ 1", "buttons":\[{"text":"ТЕКСТ КНОПКИ 1", "url":"ССЫЛКА ДЛЯ КНОПКИ" }]}]

<div data-with-frame="true"><figure><img src="/files/a72fc9c10ebaf1f45ce05a86ff654cdce5e97e24" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="info" %}
Еще один необязательный параметр, `payload`, был добавлен к кнопкам карточек карусели. Он не отображается для клиента, но позволяет анализировать выбор клиента.
{% endhint %}

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

<div data-with-frame="true"><figure><img src="/files/b4a561a286152c0dac76ba323898d29926f44348" alt=""><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/40008866bb23a6df34c69049aa11d684117a31ea" alt=""><figcaption></figcaption></figure></div>

Обратите внимание на правильное использование:

p = \[{"title":"title", "description": "ОПИСАНИЕ КАРТОЧКИ 1", "image": " 1", "buttons":\[{"text":"ТЕКСТ КНОПКИ 1","payload":"1"}]},{"title":"title", "description": "ОПИСАНИЕ КАРТОЧКИ 2", "image": "ССЫЛКА НА ИЗОБРАЖЕНИЕ 2", "buttons":\[{"text":"ТЕКСТ КНОПКИ 1","payload":"2"}]}, {"title":"title", "description": "ОПИСАНИЕ КАРТОЧКИ 3", "image": "ССЫЛКА НА ИЗОБРАЖЕНИЕ 3", "buttons":\[{"text":"ТЕКСТ КНОПКИ 1"}]}]

Текст `payload` параметр можно опустить, как показано на рисунке выше.

## Как задать вводные фразы

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

<div data-with-frame="true"><figure><img src="/files/8d22ca65f6bcb7199abe67cf314d3ebe81abbfa2" alt="" width="375"><figcaption></figcaption></figure></div>

Чтобы настроить вводные фразы, нужно настроить слайдер в подключенном аккаунте Instagram, в разделе «Каналы».

<div data-with-frame="true"><figure><img src="/files/04e674b562d07b062ef8887fec3ae1281f7887c9" alt=""><figcaption></figcaption></figure></div>

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

<div data-with-frame="true"><figure><img src="/files/5772a8e6b07f8bc551248f9b89a21470c4e20756" alt=""><figcaption></figcaption></figure></div>

Затем выполните следующие шаги:

1. Настройте ответы на конкретные фразы в своей воронке.
2. Разместите необходимые блоки в состоянии "Start".
3. Введите текст вводной фразы в триггер.

{% hint style="warning" %}

#### Обратите внимание!&#x20;

Вводные фразы отображаются для пользователей, которые ранее не обращались в ваш аккаунт Instagram (или если вся предыдущая история чата была удалена).
{% endhint %}

## Настройка ответа на ключевое слово в Direct

Чтобы отвечать клиентам в Direct Messages по ключевым словам, можно использовать блок с триггером (блоки Start и Trigger) и в поле Trigger ввести слова, на которые должен реагировать ваш бот:

<div data-with-frame="true"><figure><img src="/files/5e3b75c73b4ada35fb0e6ebf3d757ecb109d5952" alt="" width="375"><figcaption></figcaption></figure></div>

Выбор совпадения основан на наличии ключевых слов или на Полном совпадении (рекомендуемые варианты).

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

## **Как проверить, подписан ли пользователь на ваш аккаунт**

Есть два способа **проверить** статус подписки:

1\. Проверка подписки с помощью калькулятора

**result = check\_insta\_subscription()**

`результат` — это имя переменной, в которой будет **проверить** сохранен результат (при необходимости вы можете переименовать ее).

Функция возвращает:

* **`True`** если пользователь подписан.
* **`False`** если пользователь не подписан.

<div data-with-frame="true"><figure><img src="/files/56cbd616a39965b96604f8d9c5f079303af0a787" alt="" width="563"><figcaption></figcaption></figure></div>

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

* `result == True` — выражение в **в поле "Переменная"** поле, если клиент подписан на аккаунт.
* `result == False` — выражение, если клиент не подписан.

Также можно использовать другие выражения сравнения, например:\
`result != False` (result не равен False, то есть пользователь подписан на аккаунт).

<div data-with-frame="true"><figure><img src="/files/cad5812426443ba9844c6f76be5c4b4d26739582" alt=""><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/f3c4af9b80a59e4d8fd4cb489262fac0e1d5cd9a" alt=""><figcaption></figcaption></figure></div>

2. Данные из проверки клиентской карточки

Когда пользователь взаимодействует с ботом, переменные `follow` и `followers` отображаются и проверяются в клиентской карточке (в разделе **Переменные клиента** подраздел).

<div data-with-frame="true"><figure><img src="/files/6106674dfefcc40c0ec3c0a017c13eedf08030e0" alt=""><figcaption></figcaption></figure></div>

**`follow` variable** — проверяет статус подписки. Принимает значение `True` если клиент подписан на аккаунт, `False` если не подписан, и `None` если аккаунт клиента закрыт.

**`verified`** — показывает, подтвержден ли аккаунт пользователя (синяя галочка). Значение `True` если подтвержден и `False` если нет.

**`followers`** — показывает количество подписчиков/фолловеров клиента.

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

Пример:

<div data-with-frame="true"><figure><img src="/files/03b24898737ee9b1830f58307b3bf783c633e66b" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/269bd055eb862b0b47f75f72d24f3fd3516a94a5" alt="" width="375"><figcaption></figcaption></figure></div>

Во вкладке **Trigger** поле, введите любое слово, с которого начнется ваша воронка.

Во вкладке **переменная для сравнения**, напишите:\
`follow == True`\
ИЛИ\
`follow != False`

* В первом случае вы проверяете, подписан ли человек на ваш аккаунт.
* Во втором случае вы проверяете, **не** подписан ли человек на ваш аккаунт.

{% hint style="warning" %}
Обратите внимание, что `True` и `False` статусы должны писаться с заглавной буквы. Иначе проверка будет работать некорректно.
{% endhint %}

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

**Триггеры на соединениях:**

<div data-with-frame="true"><figure><img src="/files/29069197b52b184f68bf4494d6107a9e082cfe07" alt="" width="563"><figcaption></figcaption></figure></div>

Введите триггер в **в поле "Переменная"** строку стрелки:\
`follow == True` или `follow != False`

Если условие триггера выполняется, клиент продолжает движение дальше по воронке.

Если клиент не подписан, он переходит в блок, где условия проверки не выполняются (`follow == False` или `follow != True`).

Если вы хотите, чтобы проверка была динамической, рекомендуем добавить кнопку — например, **"Я подписался"**— чтобы можно было выполнить проверку и перевести человека на следующий этап.

{% hint style="danger" %}

#### Внимание

Мы не **NOT** рекомендуем ставить таймер без кнопки на закрытой стрелке, так как человек будет непрерывно получать сообщения, быстро исчерпывая ваш лимит сообщений.
{% 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.mavibot.ai/doc/ru/chatbot/messendzhery/instagram/buttons.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.
