# Как вручную управлять комментариями

{% hint style="success" %}
Это работает, когда Instagram включен
{% endhint %}

## Настройка ответа на callback из Instagram

Вам нужно включить переключатель в подключенном аккаунте Instagram в разделе **Мессенджеры** чтобы бот мог отвечать на комментарии.

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

Если в Instagram под вашим официальным подключением Instagram отображается «Подключите заново, чтобы работать с комментариями», вам нужно переподключить Instagram, чтобы обновить необходимые разрешения. Для этого нажмите на значок корзины в правом нижнем углу (удалить бота).

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

Снова подключите аккаунт Instagram. Как подключить Instagram, [смотрите здесь.](/doc/ru/chatbot/messendzhery/instagram/chatbot.md)

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

{% hint style="info" %}
Это работает с комментариями под Reels, а также под постами.
{% endhint %}

Когда пользователь оставляет комментарий к посту, боту отправляется callback (вы можете увидеть его в разделе **«Клиенты»** в диалоге пользователя).

Callback имеет формат: `client_wall_reply_new ссылка id: текст`

где:

* `ссылка` — это ссылка на пост
* `id` — это ID записи
* `text` — это текст комментария

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

С комментариями можно работать двумя способами: отвечать своим комментарием или отправлять одно сообщение в Direct.

**client\_wall\_reply\_new** — это общая часть callback.&#x20;

**client\_wall\_reply\_new\_comment —** если нас интересуют комментарии только под постом

**client\_wall\_reply\_new\_live —** если комментарии только во время прямого эфира

### Как настроить автоответ на комментарии в Direct

{% hint style="warning" %}
Автоматический ответ на комментарий НЕ открывает 24-часовое окно.
{% endhint %}

Скопируйте callback и перейдите в раздел Конструктор воронки. Создайте блок типа «Проверка основного условия» или «Бессостоянийное условие» и вставьте скопированный callback в условие. Мы настраиваем проверку «По наличию ключевых слов»

{% hint style="warning" %}
ВНИМАНИЕ! **не рекомендуется** использовать **числа** как триггер для запуска бота. \
\
ID поста может содержать эти числа. Бот может отвечать на любой callback, содержащий эти числа, если выберет совпадение по наличию ключевых слов.
{% endhint %}

Если вы хотите настроить реакцию на комментарии под любым постом для любого комментария, тогда в условиях указывайте только **client\_wall\_reply\_new\_comment.**&#x20;

При выборе совпадения он устанавливает «Совпадение по ключевому слов&#x443;**".**

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

{% hint style="danger" %}

#### **Важное замечание:**<br>

Мы рекомендуем использовать тип поиска **«Совпадение по ключевому слову»** при настройке ответа на callback.

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

О выборе совпадения в условии блока читайте в статье «[Тип триггера и совпадения](/doc/ru/chatbot/builder/setting/trigger/type.md)".
{% endhint %}

Если вы планируете настроить реакцию на конкретный пост, укажите `client_wall_reply_new_comment` а затем ID поста в поле триггера.

{% hint style="warning" %}

#### **ВНИМАНИЕ!**

Не рекомендуется использовать числа в качестве триггеров для запуска бота.

ID поста часто состоит из чисел. Если ваш бот использует сопоставление по ключевым словам, он может ошибочно отвечать на *любой* callback, содержащий эти числа.
{% endhint %}

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

Если вы планируете настроить реакцию на конкретный пост, укажите `client_wall_reply_new_comment` а затем ID поста в поле триггера.

{% hint style="warning" %}

#### **ВНИМАНИЕ!**

Не рекомендуется использовать числа в качестве триггеров для запуска бота.

ID поста часто состоит из чисел. Если ваш бот использует сопоставление по ключевым словам, он может ошибочно отвечать на *любой* callback, содержащий эти числа.
{% endhint %}

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

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

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

Над сообщением указано, что оно было отправлено в ответ на комментарий. Если нажать на **«Посмотреть пост»**, вы будете перенаправлены к посту, который прокомментировали.

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

Если пользователь оставляет комментарий, на который вы не настроили ответ (или если вы не настроили ни одного ответа), вы можете ответить ему одним сообщением в Direct в разделе **«Клиенты»** .

{% hint style="warning" %}
Однако если вы попробуете отправить пользователю еще одно сообщение в Direct, второе сообщение не будет доставлено, потому что ответ на комментарий не открывает заново 24-часовое окно для сообщений.
{% endhint %}

### Как использовать прямые ссылки на посты Instagram при работе с комментариями

{% hint style="info" %}
Чтобы работать с комментариями, необходимо включить переключатель **«Отвечать на комментарии»** в разделе Instagram Channels.
{% endhint %}

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

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

Вы можете использовать переменную `instagram_media_url` для настройки реакций на комментарии к конкретным постам Instagram.

Рассмотрим пример.

#### Настройка разных ответов в зависимости от того, к какому посту оставлен комментарий

**Задача:** В аккаунте есть несколько постов, в том числе три с товарами разной стоимости. Настройте ответы на комментарии к этим трем постам так, чтобы бот отвечал точной ценой. Для всех остальных постов отвечайте «По договоренности». Ответ должен отправляться и как сообщение в Direct, и как комментарий под постом.

**Решение:**

1. Настройте реакции по ключевым словам на комментарии под постами. Это значит, что бот будет реагировать на любой пост, где в комментарии есть указанные ключевые слова.
2. Используйте `функцию insta_create_comment` в **Калькуляторе** чтобы оставить комментарий под нужным постом, а также задайте текст ответа в поле **Текст сообщения** для отправки сообщения в Direct. Это позволит пользователю одновременно получить цену и в комментариях, и в Direct.
3. Если под каким-либо другим постом появится комментарий, содержащий ключевые слова, пользователь получит сообщение **«по договоренности».**

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

Шаг 1. В поле **блока «Старт»** триггера введите `client_wall_reply_new` а затем ключевые слова, по которым должен запускаться ответ. Установите тип совпадения на **«Совпадение по ключевому слову»**.

Пример для копирования:

`client_wall_reply_new_comment (price|how many|cost|find out)`

{% hint style="info" %}
Если вы хотите отвечать только на комментарии под постами, используйте `client_wall_reply_new_comment`. Если вы хотите отвечать только на комментарии во время прямого эфира, используйте `client_wall_reply_new_live`.
{% endhint %}

{% hint style="info" %}
Комментарии под Reels работают так же, как и под обычными постами.
{% endhint %}

Шаг 2. В поле **«Калькулятор»** объявите `text` переменную. Ее значение определяется условием IF, которое проверяет `instagram_media_url` переменную.

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

`text = if(instagram_media_url == "https://www.instagram.com/reel/Cagzkx", "$10", if(instagram_media_url == "https://www.instagram.com/p/CqvCq4", "$29", if(instagram_media_url == "https://www.instagram.com/p/CocLhN", "$35", "Other")))`&#x20;

Шаг 3. Используйте метод `функцию insta_create_comment` для публикации комментария.

Пример для копирования:&#x20;

`insta_create_comment("#{text}")`

где `#{text}` — это текст ответа, который мы отправляем пользователю.

Шаг 4. В поле **Текст сообщения** введите переменную, содержащую ответ для сообщения в Direct.

В этом примере переменная — `#{text}`. Один и тот же ответ публикуется как комментарий и дублируется в сообщении Direct. При необходимости вы можете настроить разные ответы для каждого из них.

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

{% hint style="info" %}
`client_wall_reply_new` — это общий префикс callback. Чтобы реагировать только на комментарии под постами, используйте `client_wall_reply_new_comment`. Чтобы реагировать только на комментарии во время прямого эфира, используйте `client_wall_reply_new_live`.
{% endhint %}

### Как опубликовать комментарий в ответ на сообщение под постом или во время прямого эфира

{% hint style="info" %}
При работе с комментариями и настройке ответов под постом используйте случайную функцию и отправляйте переменный текст. Если бот будет многократно отправлять идентичный текст, может возникнуть ошибка: «Этот вызов API не поддерживает запрошенный формат ответа». Подробнее о работе с [случайной функцией здесь.](/doc/ru/chatbot/builder/responses.md)
{% endhint %}

Шаг 1. В поле **Клиенты** в разделе скопируйте callback (уведомление), указывающий на то, что комментарий был опубликован, затем перейдите в Builder.

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

Шаг 2. Создайте **«Start»** или **«Trigger»** блок и вставьте скопированный callback в поле **Trigger** .

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

Существует несколько способов настроить условие триггера бота.

В этом примере бот отвечает на комментарии под **всеми постами** сообщением «ответ в комментариях». Чтобы настроить это, в поле условия введите основной префикс callback и ключевое слово:

`client_wall_reply_new_comment reply in comments`

**Важно:** установите тип совпадения на **«Совпадение по ключевому слову»**.

{% hint style="warning" %}

#### ВНИМАНИЕ!

Не рекомендуется использовать числа в качестве триггеров для запуска бота.

ID поста часто состоит из чисел. Если ваш бот использует сопоставление по ключевым словам, он может ошибочно отвечать на любой callback, содержащий эти числа.
{% endhint %}

{% hint style="info" %}
`client_wall_reply_new` — это общий префикс callback, который срабатывает и для постов, и для прямых эфиров.

Чтобы отвечать только на комментарии под постами, используйте:\
`client_wall_reply_new_comment`

Чтобы отвечать только на комментарии во время прямого эфира, используйте:\
`client_wall_reply_new_live`
{% endhint %}

{% hint style="warning" %}
Есть одна особенность для callback'ов прямых эфиров (`client_wall_reply_new_live`): бот будет реагировать только **во время** прямого эфира. После завершения прямого эфира бот больше не будет обнаруживать комментарии под ним и не сможет отвечать.
{% endhint %}

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

Шаг 3. В поле **ответа** введите `#{none}`.

Шаг 4. В поле **«Калькулятор»** напишите:

`insta_create_comment("текст ответа вашего комментария")`

Текст вашего комментария нужно поместить в скобки.

Затем нажмите **«Готово»**.

При такой настройке, как в примере, комментарий, созданный ботом, будет опубликован в ответ на любой комментарий под постом, содержащий ключевые слова «reply in the comments».

*Пример ответа бота на комментарий в комментариях.*

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

*<mark style="color:зелёный;">**Ответ бота на ЛЮБОЙ комментарий под ЛЮБЫМ постом.**</mark>*

Если вы введете только общий префикс callback `client_wall_reply_new` в поле **«Trigger»** , ваш комментарий будет опубликован в ответ на комментарии под **всеми постами** (независимо от текста, который написал пользователь).

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

*<mark style="color:зелёный;">**Ответ бота на КОНКРЕТНУЮ ФРАЗУ под ЛЮБЫМ постом.**</mark>*

Если вы оставите в поле «Trigger» **`client_wall_reply_new`**` ``и ключевое слово`, тогда ваш комментарий будет отправлен **в ответ на комментарии с этим ключевым словом под всеми постами.**

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

*<mark style="color:зелёный;">**Ответ бота на КОНКРЕТНУЮ ФРАЗУ под КОНКРЕТНЫМ постом.**</mark>*

Скопируйте полный callback из раздела клиентов и поместите его в поле **Start** блока:

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

{% hint style="warning" %}
Вы можете отвечать на комментарии, которые пользователи оставляют во время прямого эфира (для этого есть отдельный ключ **client\_wall\_reply\_new\_live)**.

У прямых эфиров есть одна особенность: бот будет реагировать только во время трансляции. Если трансляция закончилась, бот не будет видеть комментарии под ней и не сможет отвечать.
{% endhint %}

### Как сохранить текст комментария в переменную

Чтобы сохранить текст комментария пользователя, используйте `comment_text()` .

Вставьте поле callback `client_wall_reply_new` в поле **Trigger** . Затем в поле **«Калькулятор»** присвойте текст переменной — например, `comm` (можно использовать любое другое имя):

`comm = comment_text()`

Далее нажмите **«Добавить условие»** в калькуляторе и укажите:

`comm = comment_text()`

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

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

### Как удалить комментарий&#x20;

Функция `insta_delete_comment(comment_id)` удаляет комментарий.

Если `comment_id` не указан, функция использует переменную клиента `instagram_last_comment_id`.

При успешном выполнении она возвращает `{"success":true}`. Если указан несуществующий `comment_id` она возвращает `{"An unexpected error has occurred. Please retry your request later."}`.

## Работа с упоминаниями аккаунта

### Как упоминать в медиа

Когда пользователь отмечает ваш профиль в своем посте, ваш бот получит следующий callback:

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

Появляются следующие переменные:

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

**mention\_caption** — подпись к посту

**post\_url** — ссылка на пост

**mention\_comments\_count** — количество комментариев

**mention\_like\_count** — количество лайков

**mention\_media\_id** — ID поста

Давайте настроим реакцию на ответ на упоминание.

Для этого создайте **"Primary Condition Check"** или **"State with Condition"** блок. В **"Condition"** введите `mention_in_media` и установите тип совпадения **«Совпадение по ключевому слову»**.

Во вкладке **«Калькулятор»** поле, введите следующий метод:

**reply\_to\_mention**(text)

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

**Пример:**

Шаг 1. Перейдите в конструктор и создайте блок с триггером (**Start** блок или **Trigger** блок). Затем в **Trigger** поле укажите callback `mention_in_media`.

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

Выберите **"Mention in post"** в списке триггеров, а в качестве метода калькулятора выберите **"Reply comment to a post"**. Затем введите текст ответа-комментария.

Шаг 2. Нажмите **"Add trigger"**. После этого триггер вместе с методом будет добавлен в блок:

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

### Как упомянуть в комментарии

Когда пользователь отмечает ваш аккаунт в комментариях, в чат придёт callback вида:

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

{% hint style="info" %}
Если ваш аккаунт отмечен в приватном профиле, callback не будет получен.
{% endhint %}

В карточке клиента также появятся следующие переменные:

* `mention_like_count` — количество лайков
* `mention_media_id` — ID поста

Давайте настроим реакцию на ответ на упоминание в комментарии.

Для этого создайте **«Start»** или **«Trigger»** блок. В **"Condition"** введите `mention_in_comment` и установите тип совпадения **«Совпадение по ключевому слову»**.

Во вкладке **«Калькулятор»** поле, введите следующий метод:

**reply\_to\_mention**(text)

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

**Пример:**

Шаг 1. Перейдите в конструктор, создайте блок с триггером (**Start** блок или **Trigger** блок) и введите следующий callback в **«Trigger»** :

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

Далее выберите условие **"Mention in comment"**.

Шаг 3. Нажмите на **Калькуляторе** и в появившемся поле введите метод:

`reply_to_mention("Текст ответа на упоминание в комментарии")`

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

{% hint style="warning" %}
Если в чате с пользователем не открыто 24-часовое окно, вы **не можете** отправить личное сообщение в ответ на упоминание. Можно только ответить комментариями.

Если 24-часовое окно **открыто** , вы можете ввести текст в поле **Response** , который пользователь получит в личном сообщении после упоминания вашего аккаунта.
{% endhint %}

### Как упоминать другие профили в комментариях под вашими постами

Если кто-то отмечен в комментариях под вашим аккаунтом, в карточке клиента создаётся переменная `mentioned_in_comment` .

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

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

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

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

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

Если вам нужно сегментировать пользователей, которые отметили двух или более друзей, вы можете присвоить переменной значение, например `len = arr_len(mentioned_in_comment)` а затем сравнить эту переменную с нужным значением.

{% hint style="warning" %}
Если в чате с пользователем не открыто 24-часовое окно для сообщений, вы не можете отправить личное сообщение в ответ на упоминание. Можно только ответить комментариями.
{% 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/settings/kak-vruchnuyu-upravlyat-kommentariyami.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.
