# Кнопки та вкладення

## Як працювати з кнопками

{% hint style="info" %}
Instagram не підтримує одночасне надсилання інлайн-кнопок і кнопок відповіді
{% endhint %}

### Клавіатура **(відповідь)**

Instagram підтримує до 11 кнопок відповіді. Кнопки можна розташовувати лише в один ряд

Приклад:

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

Результат:

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

### У тексті (інлайн)

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

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

{% hint style="danger" %}
Instagram підтримує не більше ніж 3 інлайн-кнопки
{% endhint %}

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

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

Кнопки можуть посилатися на сторонні ресурси. Візуально ці кнопки однакові.

Щоб отримати інструкції з налаштування кнопок, зверніться до **Кнопки** розділ.

## Як працювати з вкладеннями

Ви можете надсилати вкладення в повідомленні. Щоб дізнатися більше про те, які вкладення підтримуються і як їх додати, див. розділ [Надсилання вкладень](/doc/uk/chatbot/builder/attachments/tab.md) у документації.

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

<div data-with-frame="true"><figure><img src="/files/f4832d181572668c719656831ca9196e272fae30" 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/342a3b1bcc394393d7b8da64a0f86fd02ce78c19" alt="" width="375"><figcaption></figcaption></figure></div>

Скористаймося для прикладу каруселлю з 3 карток. Щоб створити картки, потрібно ввести таке в **Калькуляторі** :

p = \[{"title":"TITLE", "description": "IMAGE DESCRIPTION 1", "image": "LINK TO THE IMAGE 1", "buttons":\[{"text":"BUTTON TEXT 1"}]},{"title":"TITLE", "description": "CARD DESCRIPTION 2", "image": "LINK TO IMAGE 2", "buttons":\[{"text":"BUTTON TEXT 2"}]}, {"title":"TITLE", "description": "CARD DESCRIPTION 3", "image": " LINK TO THE IMAGE 3", "buttons":\[{"text":"BUTTON TEXT 3"}]}]                                              &#x20;

r = send\_carousel(p, '')

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

Скопіюйте посилання:

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

Результат:

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

{% hint style="warning" %}
Зверніть увагу: вираз `r = send_carousel(p, '')` має починатися з нового рядка в Калькуляторі.
{% endhint %}

Це означає, що вам потрібно призначити змінній масив, який містить назву, опис, зображення та кнопки `p` (за бажанням назвіть змінну інакше). Потім використовуйте цю змінну в `send_carousel(p, "")` методу.

Він залишає `#{None}` у полі **"Відповідь"** .

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

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

Щоб додати посилання до кнопки на картці, включіть його в масив:

p = \[{"title":"title", "description": "CARD DESCRIPTION 1", "image": "LINK TO THE IMAGE 1", "buttons":\[{"text":"BUTTON TEXT 1", "url":"LINK FOR THE BUTTON" }]}]

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

{% hint style="info" %}
Ще один необов’язковий параметр, `payload`було додано до кнопок картки каруселі. Він не відображається клієнту, але дає змогу аналізувати вибір клієнта.
{% endhint %}

Оскільки для карток каруселі часто потрібні кнопки з однаковим текстом, було введено додатковий `payload` параметр. Цей параметр не видно клієнту, але він дає змогу аналізувати його вибір.

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

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

Зверніть увагу на правильне використання:

p = \[{"title":"title", "description": "CARD DESCRIPTION 1", "image": " 1", "buttons":\[{"text":"BUTTON TEXT 1","payload":"1"}]},{"title":"title", "description": "CARD DESCRIPTION 2", "image": "LINK TO THE IMAGE 2", "buttons":\[{"text":"BUTTON TEXT 1","payload":"2"}]}, {"title":"title", "description": "CARD DESCRIPTION 3", "image": "LINK TO THE IMAGE 3", "buttons":\[{"text":"BUTTON TEXT 1"}]}]

Поле `payload` параметр можна опустити, як показано на рисунку вище.

## Як налаштувати вступні фрази

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

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

Щоб налаштувати вступні фрази, потрібно встановити повзунок у підключеному акаунті Instagram, у розділі «Канали».

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

Після натискання на цей повзунок з’являється спливаюче вікно, де можна налаштувати необхідні вступні фрази.

<div data-with-frame="true"><figure><img src="/files/6bbe6807e093acb31488146d55b308d37f9816d4" 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/f8dd169b3811a4e73b7e52f6345b55693163631d" alt="" width="375"><figcaption></figcaption></figure></div>

Вибір збігу базується на наявності ключових слів або Повному збігу (рекомендовані варіанти).

У **«Текст повідомлення»** поле, введіть відповідь бота, яку отримає користувач. Також ви можете додати вкладення, кнопки та посилання.

## **Як перевірити, чи користувач підписаний на ваш акаунт**

Є два способи **перевірити** статус підписки:

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

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

`результат` це ім’я змінної, у якій **перевірити** буде збережено результат (за потреби ви можете перейменувати її).

Функція повертає:

* **`True`** якщо користувач підписаний.
* **`False`** якщо користувач не підписаний.

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

Перевірку потрібно виконувати в **) для збереження відповіді клієнта.** полі, як на стрілці, так і в блоці.

* `result == True` — вираз у **) для збереження відповіді клієнта.** полі, якщо клієнт підписаний на акаунт.
* `result == False` — вираз, якщо клієнт не підписаний.

Ви також можете використовувати інші вирази порівняння, наприклад:\
`result != False` (result не дорівнює False, тобто користувач підписаний на акаунт).

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

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

2. Дані з перевірки картки клієнта

Коли користувач взаємодіє з ботом, змінні `follow` та `followers` відображаються і перевіряються в картці клієнта (у підрозділі **Змінні клієнта** ).

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

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

**`verified`** — вказує, чи має користувач верифікований акаунт (синя галочка). Воно `True` якщо верифіковано, і `False` якщо ні.

**`followers`** — показує кількість підписників/фоловерів, які має клієнт.

Щоб перевірити статус підписки або обмежити просування воронкою, ви можете використовувати **`follow`** змінну в блоках умов або з’єднаннях-стрілках у **) для збереження відповіді клієнта.** .

Приклад:

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

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

У **Тригер** полі, введіть будь-яке слово, яке запустить вашу воронку.

У **змінну для порівняння**, напишіть:\
`follow == True`\
OR\
`follow != False`

* У першому випадку ви перевіряєте, чи підписана людина на ваш акаунт.
* У другому випадку ви перевіряєте, чи **не** підписана людина на ваш акаунт.

{% hint style="warning" %}
Зверніть увагу, що `True` та `False` статуси мають бути з великої літери. Інакше перевірка працюватиме некоректно.
{% endhint %}

Щоб надсилати різні повідомлення залежно від статусу підписки, вам потрібно створити два блоки з протилежними умовами. Якщо ви віддаєте перевагу менш захаращеному підходу, ми рекомендуємо замість цього визначати умови на з’єднаннях (стрілках).

**Тригери на з’єднаннях:**

<div data-with-frame="true"><figure><img src="/files/a6eaf8718863c95c23943c212264b398b413bcb9" 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/uk/chatbot/mesendzheri/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.
