# API редактора

* [Як отримувати повідомлення на Webhook URL, який вказано в налаштуваннях проєкту](#how-to-get-messages-on-webhook-url-that-is-specified-in-the-projects-settings)&#x20;
* [Як використовувати універсальний webhook](#how-to-use-a-universal-webhook)&#x20;
* [Як запустити бота](#how-to-launch-the-bot)&#x20;
* [Як працювати з повідомленнями](#how-to-work-with-messages)&#x20;
* [Як розподіляти клієнтів](#how-to-distribute-the-clients)&#x20;
* [Як працювати зі змінними](#how-to-work-with-variables)&#x20;
* [Як отримати client\_id](#how-to-get-client_id)&#x20;
* [Які ще є можливості](#what-other-possibilities-there-are)

Запити виконуються методом **POST** за URL, тобто **<https://chatter.mavibot.ai/api/{api\\_key}/{action}>**

Де це знаходиться: **api\_key** є ключем для доступу до API, який отримується в налаштуваннях проєкту:

![](https://lh4.googleusercontent.com/NMHfsMXf9aqYBwcLqud8V-NoFMxqqxkcSdhxjckgEtowma_UmtxTmDqHFIsQwrpjc7kR8afwlpnC5FGMjLxYHtNwhnkR6xF0iwlUPjXTlkqRlYtoHfWrhp_dce8r5I5R-pPgDMzV)

{% hint style="success" %}
**Ви можете отримати ключ доступу, використовуючи змінну #{api\_key}.** Вона містить відповідний згенерований ключ. Не забудьте згенерувати його перед використанням.
{% endhint %}

{% hint style="danger" %}
Під час копіювання URL запиту з цієї сторінки вставляється пробіл, який потрібно видалити під час виклику&#x20;

Приклад неправильного копіювання посилання: <https://chatter.mavibot.ai/api/callback&#x20>;

Пробіл після .pro легко не помітити, але якщо його залишити, запит не спрацює
{% endhint %}

{% hint style="warning" %}
**Під час надсилання запиту методом GET не використовуйте заборонені слова.** Перевірте правильність формування GET-запитів
{% endhint %}

## Як отримувати повідомлення на Webhook URL, який вказано в налаштуваннях проєкту

![Налаштування проєкту](https://lh5.googleusercontent.com/042KfsD4dxlKvcCDd-bReA7zTmfMHDr2LoX5jD1maPuo5OIwkyQ4qEXwFpwX41YA1Sx7SHES2TwLQD6Trs_TmwO57Pso2ogV4w8lJdmwhtIi7JdSwJvoePaXSYxO8NKLVm6kooPc)

Кожне вхідне або вихідне повідомлення передається з такими POST-запитами json:

```
{
    'id': ідентифікатор повідомлення в системі,
    'client': {
        'id': ідентифікатор клієнта в системі,
        'recepient': ідентифікатор клієнта в месенджері,
        'client_type': тип месенджера,
        'name': ім'я клієнта,
        'avatar': аватар клієнта,
        'created_at': дата створення клієнта,
        'tag': ключ підписки,
        'group': бот, до якого прив'язано клієнта,
    },
    'message': текст повідомлення,
    'attachments': масив посилань на файли,
    'message_id': id блоку, з якого було надіслано повідомлення,
    'project_id': id проєкту,
    'is_input': 1, якщо повідомлення від клієнта, 0, якщо від бота,
    'delivered': 1, якщо повідомлення успішно надіслано, 0, якщо сталася помилка,,
    'error_message': повідомлення, що пояснює помилку
}
```

Якщо запит повернув помилку, він не буде надісланий повторно. Якщо сервер повернув помилку, сповіщення все одно надходитимуть.

## Як використовувати універсальний webhook

Тепер ці методи можна запускати як через POST, так і через GET-запит.

* [callback ](#the-bots-launch)
* [whatsapp\_callback](#launching-the-bot-through-the-number-on-whatsapp)&#x20;
* [message ](#sending-the-message-to-the-client)
* [whatsapp\_message](#sending-messages-in-whatsapp)

Раніше параметри (за допомогою яких запускалися методи клієнтів, тобто **client\_id**) були дуже жорстко прописані в наших методах, і це накладало певні обмеження під час використання їх зі сторонніми сервісами.

Тепер ви можете вказати, у якому параметрі запиту Mavibot шукатиме ідентифікатор користувача: для цього використовується параметр з префіксом **value\_** наприклад **value\_user\_id** та **value\_group\_id**.

Також метод для надсилання callback **callback** можна запускати, передаючи email (**client\_email**) і номер телефону клієнта (**client\_phone**).

{% hint style="success" %}
Методи **callback** та **whatsapp\_callback** не прив'язані до назв параметрів. Ви можете вказати, який параметр міститиме номер телефону клієнта, email та id.
{% endhint %}

Це корисно, коли ви налаштовуєте отримання webhook через інший сайт.

**Щоб вказати, яка змінна містить client\_id** потрібно передати **value\_client\_id** і вказати назву параметра, що містить це значення

**Щоб вказати, яка змінна містить phone** потрібно передати **value\_phone** і вказати назву параметра, що містить це значення

**Щоб вказати, яка змінна містить email** потрібно передати **value\_email** і вказати назву параметра, що містить це значення

**Щоб вказати, яка змінна містить user\_id** потрібно передати **value\_user\_id** і вказати назву параметра, що містить це значення

**Щоб вказати, яка змінна містить group\_id** потрібно передати **value\_group\_id** і вказати назву параметра, що містить це значення

Приклад:

Укажіть у полі value\_client\_id = my\_client

`https://chatter.mavibot.ai/api/d3f31dabef80ddeb73d43938b4ef8bb0/callback?value_client_id=my_client`\
`{"my_client":49177759, "message":"Hello world"}`

Запит буде еквівалентний наведеному нижче запиту:

`https://chatter.mavibot.ai/api/d3f31dabef80ddeb73d43938b4ef8bb0/callback`\
`{"client_id":49177759, "message":"Hello world"}`

{% hint style="info" %}
Як бачите, назва параметра, що містить ім'я, відрізняється за префіксом **value\_**
{% endhint %}

## Як запустити бота

## Запуск бота

<mark style="color:green;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/callback`

Метод можна використовувати для запуску сценарію для клієнта або для підтвердження дії на сторонньому сервісі. Це повідомлення не буде видно клієнту. \
**Додатково передані параметри зберігаються в змінних.** \
Метод для надсилання callback тепер можна увімкнути, передавши email (client\_email) або номер телефону клієнта (client\_phone)

#### Параметри шляху

| Введені користувачем дані зберігаються в змінній | Тип      | Опис          |
| ------------------------------------------------ | -------- | ------------- |
| api\_key                                         | рядкових | токен доступу |

#### Тіло запиту

| Введені користувачем дані зберігаються в змінній | Тип      | Опис                                       |
| ------------------------------------------------ | -------- | ------------------------------------------ |
| client\_phone                                    | рядкових | номер телефону, за яким знаходиться клієнт |
| client\_email                                    | рядкових | email, за яким знаходиться клієнт          |
| client\_id                                       | рядкових | id клієнта в редакторі                     |
| message                                          | рядкових | текст повідомлення                         |

{% tabs %}
{% tab title="200: OK " %}

```javascript
import requests
import json
 
params = {"message": "some_text", "client_id": "25554"}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/callback'
requests.post(url, json=params)
```

{% endtab %}
{% endtabs %}

## Запуск бота через номер у WhatsApp

<mark style="color:green;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/whatsapp_callback`

Цей метод запускає бота у WhatsApp після того, як клієнт зареєструвався через сайт або залишив заявку зі своїм номером телефону \
**Додатково передані параметри зберігаються у змінних**

#### Параметри шляху

| Введені користувачем дані зберігаються в змінній | Тип      | Опис          |
| ------------------------------------------------ | -------- | ------------- |
| api\_key                                         | рядкових | токен доступу |

#### Тіло запиту

| Введені користувачем дані зберігаються в змінній | Тип      | Опис                   |
| ------------------------------------------------ | -------- | ---------------------- |
| name                                             | рядкових | ім'я клієнта           |
| message                                          | рядкових | текст повідомлення     |
| phone                                            | рядкових | номер телефону клієнта |
| bot\_id                                          | рядкових | id бота                |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Відповідь
}
```

{% endtab %}
{% endtabs %}

## Запуск бота через Telegram id

<mark style="color:green;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/tg_callback`

Метод можна використовувати для запуску сценарію або підтвердження дій на сторонньому сайті. Це повідомлення не буде видно клієнту.&#x20;

**Додатково передані параметри зберігаються у змінних**

#### Параметри шляху

| Введені користувачем дані зберігаються в змінній | Тип      | Опис          |
| ------------------------------------------------ | -------- | ------------- |
| api\_key                                         | рядкових | токен доступу |

#### Тіло запиту

| Введені користувачем дані зберігаються в змінній | Тип      | Опис                                     |
| ------------------------------------------------ | -------- | ---------------------------------------- |
| message                                          | рядкових | текст повідомлення                       |
| user\_id                                         | рядкових | ідентифікатор користувача в Telegram     |
| group\_id                                        | рядкових | ім'я бота (має закінчуватися на **bot**) |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Відповідь
}
```

{% endtab %}
{% endtabs %}

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

**Параметри для надсилання повідомлень**

**attachment\_type** може приймати такі значення: **зображення, відео, посилання, файл, аудіо** \
Під час надсилання вкладень параметр **message** не є обов'язковим

**buttons** визначає кнопки, які будуть прикріплені до повідомлення. Формат кнопок подібний до розширених налаштувань кнопок. Можливі два варіанти передачі кнопок: з підказкою в месенджерах без кнопок і без неї

Ось приклад параметра buttons:

```
"buttons": {"hint": "Цей текст буде показано у WhatsApp",
 "buttons": [
    {"type": "reply", 
     "text": "Які послуги ми можемо надати", 
     "line": 0, "index_in_line": 0}, 
       
    {"type": "reply", 
     "text": "Інформація про оплату", 
     "line": 0, 
     "index_in_line": 1}, 
        
    {"type": "reply", 
     "text": "Наші контактні дані", 
     "line": 1, "index_in_line": 0}, 
        
    {"type": "reply", 
     "text": "Залишити заявку", 
     "line": 1, "index_in_line": 1}
   ] 
}
```

## Надсилання повідомлення клієнту

<mark style="color:green;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/message`

Цей метод можна використовувати для надсилання повідомлень зі сповіщеннями. Параметр **message** є обов'язковим, якщо ви не надсилаєте файл. Якщо надсилаєте файл, тоді текст не потрібен

#### Параметри шляху

| Введені користувачем дані зберігаються в змінній | Тип      | Опис         |
| ------------------------------------------------ | -------- | ------------ |
| api\_key                                         | рядкових | ключ доступу |

#### Тіло запиту

| Введені користувачем дані зберігаються в змінній | Тип      | Опис                     |
| ------------------------------------------------ | -------- | ------------------------ |
| message\_id                                      | рядкових | номер блоку відправлення |
| message                                          | рядкових | текст повідомлення       |
| client\_id                                       | рядкових | id клієнта в редакторі   |
| attachment\_type                                 | рядкових | тип відображення файлу   |
| attachment\_url                                  | рядкових | URL файлу                |
| buttons                                          | об'єкт   | buttons                  |

{% tabs %}
{% tab title="200: OK " %}

```javascript
import requests
import json

params = {"message": "some_text", "client_id": "25554"}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/message'
requests.post(url, json=params)
```

{% endtab %}
{% endtabs %}

## Надсилання повідомлень у WhatsApp

<mark style="color:green;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/whatsapp_message`

Дозволяє надіслати повідомлення від імені підключеного бота на вказаний номер **whatsapp\_bot\_id** потрібно взяти з розділу «Месенджери та чати». Кожна підключена сторінка WhatsApp отримує унікальний ідентифікатор

#### Параметри шляху

| Введені користувачем дані зберігаються в змінній | Тип      | Опис         |
| ------------------------------------------------ | -------- | ------------ |
| api\_key                                         | рядкових | ключ доступу |

#### Тіло запиту

| Введені користувачем дані зберігаються в змінній | Тип      | Опис                                     |
| ------------------------------------------------ | -------- | ---------------------------------------- |
| message\_id                                      | рядкових | номер блоку відправлення                 |
| whatsapp\_bot\_id                                | номер    | WhatsApp-бот, який надсилає повідомлення |
| attachment\_url                                  | рядкових | url файлу                                |
| attachment\_type                                 | рядкових | тип відображення файлу                   |
| message                                          | рядкових | текст повідомлення                       |
| phone                                            | рядкових | номер телефону одержувача                |

{% tabs %}
{% tab title="200: OK " %}

```javascript
import requests
import json

params = {"message": "some_text", "phone": "79875146788"}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/whatsapp_message'
requests.post(url, json=params)
```

{% endtab %}
{% endtabs %}

## Масове надсилання повідомлень

<mark style="color:green;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/broadcast`

Метод дозволяє розсилку повідомлень. Якщо параметр **clients** не вказано, розсилка буде надіслана всім користувачам. Необхідно надіслати або файл, або текст

#### Параметри шляху

| Введені користувачем дані зберігаються в змінній | Тип      | Опис         |
| ------------------------------------------------ | -------- | ------------ |
| api\_key                                         | рядкових | ключ доступу |

#### Тіло запиту

| Введені користувачем дані зберігаються в змінній | Тип      | Опис                                                      |
| ------------------------------------------------ | -------- | --------------------------------------------------------- |
| message\_id                                      | рядкових | номер блоку відправлення                                  |
| list                                             | рядкових | список номерів одержувачів                                |
| shift                                            | рядкових | кількість секунд між повідомленнями. За замовчуванням 0.2 |
| message                                          | рядкових | текст повідомлення                                        |
| clients                                          | масив    | id одержувачів                                            |
| attachment\_type                                 | рядкових | тип відображення файлу                                    |
| attachment\_url                                  | рядкових | URL файлу                                                 |
| buttons                                          | рядкових | buttons                                                   |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{import requests
import json

params = {"message": "some_text", "clients": ["5", "58", "110"]}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/broadcast'
requests.post(url, json=params)
```

{% endtab %}
{% endtabs %}

## Отримання історії повідомлень

<mark style="color:blue;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/get_history?client_id=`

Отримання історії повідомлень. Ви можете отримати **client\_id** параметр [ТУТ](#how-to-get-client_id)

#### Параметри шляху

| Введені користувачем дані зберігаються в змінній | Тип      | Опис         |
| ------------------------------------------------ | -------- | ------------ |
| api\_key                                         | рядкових | ключ доступу |

#### Параметри запиту

| Введені користувачем дані зберігаються в змінній | Тип      | Опис       |
| ------------------------------------------------ | -------- | ---------- |
| client\_id                                       | рядкових | id клієнта |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
  "status": "success",
  "result": [
    {
      "id": 104500,
      "answered": true,
      "client_replica": false,
      "message_id": 390,
      "message_from_outside": 0,
      "created_at": 1587895014,
      "text": "CouCou",
      "attachments": {
        
      },
      "delivered": true,
      "error_message": "true"
    },
  ]
}
```

{% endtab %}
{% endtabs %}

## Очищення історії повідомлень

<mark style="color:blue;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/clear_history?client_id=`

#### Параметри шляху

| Введені користувачем дані зберігаються в змінній | Тип      | Опис         |
| ------------------------------------------------ | -------- | ------------ |
| api\_key                                         | рядкових | ключ доступу |

#### Параметри запиту

| Введені користувачем дані зберігаються в змінній | Тип      | Опис       |
| ------------------------------------------------ | -------- | ---------- |
| client\_id                                       | рядкових | id клієнта |

{% tabs %}
{% tab title="200: OK " %}

```javascript
import requests
import json


token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/clear_history?client_id=85856'
requests.get(url)
```

{% endtab %}
{% endtabs %}

## Як розподіляти клієнтів

## Призначення клієнта співробітнику

<mark style="color:blue;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/assign_to_user`

Метод дозволяє призначити клієнта співробітнику. Параметр email необов'язковий. Якщо email не вказано, розподіл відбуватиметься за алгоритмом системи

#### Параметри шляху

| Введені користувачем дані зберігаються в змінній | Тип      | Опис         |
| ------------------------------------------------ | -------- | ------------ |
| api\_key                                         | рядкових | ключ доступу |

#### Параметри запиту

| Введені користувачем дані зберігаються в змінній | Тип   | Опис                             |
| ------------------------------------------------ | ----- | -------------------------------- |
| client\_id                                       | Рядок | id клієнта                       |
| e-mail                                           | Рядок | email працівника (необов'язково) |

{% tabs %}
{% tab title="200: OK " %}

```javascript
import requests
import json

params = {"message": "some_text", "clients": ["5", "58", "110"]}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/broadcast'
requests.post(url, json=params)
```

{% endtab %}
{% endtabs %}

## Завантаження клієнтів у систему

<mark style="color:blue;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/load_clients`

Метод дозволяє завантажувати клієнтів у систему. Під час завантаження клієнтів WhatsApp можна передавати номер у будь-якому форматі з @s.whatsapp.net у кінці або без нього.&#x20;

Ви можете отримати id групи (**group\_id**) [тут ](#what-other-possibilities-there-are)через /api/\<api\_key>/connected\_channels&#x20;

(якщо client\_type=13 (телефонія), тоді group\_id=””)&#x20;

Ви можете побачити тип месенджера, з якого прийшов клієнт (**client\_type**)&#x20;

Напр.: \[{"platform\_id":"79875555555","group\_id":34810,"client\_type":6}]

#### Параметри шляху

| Введені користувачем дані зберігаються в змінній | Тип      | Опис         |
| ------------------------------------------------ | -------- | ------------ |
| api\_key                                         | рядкових | ключ доступу |

#### Тіло запиту

| Введені користувачем дані зберігаються в змінній | Тип   | Опис                                   |
| ------------------------------------------------ | ----- | -------------------------------------- |
| platform\_id                                     | Рядок | номер телефону                         |
| group\_id                                        | Рядок | id групи                               |
| client\_type                                     | Рядок | тип месенджера, з якого прийшов клієнт |

{% tabs %}
{% tab title="200: OK " %}

```javascript
import requests
import json


token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/load_clients'

params = [{ "platform_id": 274827917, "group_id": 169166236, "client_type":0},
{"platform_id":"79538550785@s.whatsapp.net", "group_id": "1hwF7lwEjv4SKYIGFhQnBw==", "client_type": 6}]
requests.post(url, json=params)
# у разі успіху функція повертає для кожного елемента його id та додатковий статус
# приклад відповіді
# {"status":"success","items":[{"platform_id":"700000000@s.whatsapp.net","group_id":"5kqchxwyvdvFZOsp80q2qw==","client_type":6,"status":"success","id":1469409}]}
```

{% endtab %}
{% endtabs %}

## Додавання клієнтів до списку

<mark style="color:green;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/add_to_list`

#### Параметри шляху

| Введені користувачем дані зберігаються в змінній | Тип      | Опис         |
| ------------------------------------------------ | -------- | ------------ |
| api\_key                                         | рядкових | ключ доступу |

#### Тіло запиту

| Введені користувачем дані зберігаються в змінній | Тип   | Опис                   |
| ------------------------------------------------ | ----- | ---------------------- |
| list\_id                                         | ціле  | номер списку           |
| clients                                          | масив | масив номерів клієнтів |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Відповідь
}
```

{% endtab %}
{% endtabs %}

## Видалення клієнтів зі списку

<mark style="color:green;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/remove_from_list`

#### Параметри шляху

| Введені користувачем дані зберігаються в змінній | Тип      | Опис         |
| ------------------------------------------------ | -------- | ------------ |
| api\_key                                         | рядкових | ключ доступу |

#### Тіло запиту

| Введені користувачем дані зберігаються в змінній | Тип   | Опис                   |
| ------------------------------------------------ | ----- | ---------------------- |
| list\_id                                         | ціле  | номер списку           |
| clients                                          | масив | масив номерів клієнтів |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Відповідь
}
```

{% endtab %}
{% endtabs %}

## Отримання списку клієнтів

<mark style="color:green;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/get_clients`

#### Параметри шляху

| Введені користувачем дані зберігаються в змінній | Тип      | Опис         |
| ------------------------------------------------ | -------- | ------------ |
| api\_key                                         | рядкових | ключ доступу |

#### Параметри запиту

| Введені користувачем дані зберігаються в змінній | Тип      | Опис                                                             |
| ------------------------------------------------ | -------- | ---------------------------------------------------------------- |
| offset                                           | рядкових | зсув від першого елемента                                        |
| limit                                            | ціле     | кількість елементів у відповіді. За замовчуванням 500, макс. 500 |
| list                                             | рядкових | номер списку                                                     |

{% tabs %}
{% tab title="200: OK Повертає статус і масив елементів" %}

```javascript
{
"status":"success",
"clients":[{
    "id":44483,
    "platform_id":"146467928",
    "client_type":0,
    "name":null,
    "avatar":null,
    "message_id":null,
    "project_id":1,
    "created_at":1588248599,
    "updated_at":1588248599,
    "custom_answer":null,
    "tag":null,
    "group":"143414131",
    "operator_start_dialog":null
    }
]
}
```

{% endtab %}
{% endtabs %}

## Отримання списку підписників у будь-якому месенджері

<mark style="color:green;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/subscribers`

Отримання інформації про клієнтів у вибраному месенджері

#### Параметри шляху

| Введені користувачем дані зберігаються в змінній | Тип      | Опис         |
| ------------------------------------------------ | -------- | ------------ |
| api\_key                                         | рядкових | ключ доступу |

#### Параметри запиту

| Введені користувачем дані зберігаються в змінній | Тип      | Опис                                                                                                   |
| ------------------------------------------------ | -------- | ------------------------------------------------------------------------------------------------------ |
| page                                             | ціле     |                                                                                                        |
| tag                                              | рядкових | тег, який було вказано на сторінці підписки                                                            |
| group                                            | ціле     | id групи, до якої прив'язано підписника                                                                |
| date\_from                                       | ціле     | timestamp дати після підписки                                                                          |
| date\_to                                         | ціле     | timestamp дати, до якої вони підписалися                                                               |
| client\_type                                     | ціле     | id месенджера, до якого потрібно отримати список. якщо нічого не змінювати, відображаються всі клієнти |

{% tabs %}
{% tab title="200: OK " %}

```javascript
[
  {
    "id": 44886,
    "tag": null,
    "created_at": 1609867984,
    "name": "John Smith",
    "tg_id": "146467928",
    "group": "155824294",
    "variables": null
  },
  {
    "id": 44889,
    "tag": null,
    "created_at": 1609867984,
    "name": "Jane Austen",
    "tg_id": "1609867984",
    "group": "155824294",
    "variables": {
      "utm_source": "some_value"
    }
  }
]
```

{% endtab %}
{% endtabs %}

### Дозвіл на видалення клієнтів

<mark style="color:green;">**`POST`**</mark>` ``https://chatter.mavibot.ai/api/<api_key>/get_clients`

Права доступу під час генерації ключа: «Дозвіл на видалення клієнтів»

Параметри

Шлях\
api key\* — токен доступу

Тіло\
client\_ids — список ID клієнтів, яких потрібно видалити. Максимум 500. Приклад: \[199571, 199707, 1935722]

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

## Прив'язування змінних

<mark style="color:green;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/save_variables`

Дозволяє зберігати змінні в застосунку та в клієнті. \
Запит на прив'язування змінних за замовчуванням додає їх до змінних транзакції. \
Якщо потрібно змінити змінні в профілі, додайте префікс **client**. \
Напр. для мобільного: client.phone&#x20;

Параметр **clients** дозволяє прив'язувати змінні масово&#x20;

Напр.: {"client\_id":49177759, "variables":\
{"client.phone":"1234567890"}}

#### Параметри шляху

| Введені користувачем дані зберігаються в змінній | Тип      | Опис         |
| ------------------------------------------------ | -------- | ------------ |
| api\_key                                         | рядкових | ключ доступу |

#### Тіло запиту

| Введені користувачем дані зберігаються в змінній | Тип      | Опис                                      |
| ------------------------------------------------ | -------- | ----------------------------------------- |
| clients                                          | масив    | масив id клієнтів для призначення змінних |
| client\_id                                       | рядкових | id клієнта                                |
| змінні                                           | об'єкт   | хеш змінної (ключ-значення)               |

{% tabs %}
{% tab title="200: OK " %}

```javascript
import requests
import json

params = {"client_id": "25554", "variables": {"var_name": "var_value"}}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/save_variables'
requests.post(url, json=params)
```

{% endtab %}
{% endtabs %}

## Отримання змінних

<mark style="color:blue;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/get_variables?client_id=`

#### Параметри шляху

| Введені користувачем дані зберігаються в змінній | Тип      | Опис          |
| ------------------------------------------------ | -------- | ------------- |
| api\_key                                         | рядкових | токен доступу |

#### Параметри запиту

| Введені користувачем дані зберігаються в змінній | Тип      | Опис       |
| ------------------------------------------------ | -------- | ---------- |
| client\_id                                       | рядкових | id клієнта |

{% tabs %}
{% tab title="200: OK " %}

```javascript
import requests
import json


token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/get_variables?client_id=85856'
requests.get(url)
```

{% endtab %}
{% endtabs %}

## **Як отримати client\_id**

## Отримання client\_id за значенням platform\_id

<mark style="color:green;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/find_client_id_by_platform_id`

Метод повертає id клієнта для виконання запитів до API

Приклад параметрів: {"platform\_ids": \["571830542", "256865200"]}

#### Параметри шляху

| Введені користувачем дані зберігаються в змінній | Тип      | Опис         |
| ------------------------------------------------ | -------- | ------------ |
|                                                  | рядкових | ключ доступу |

#### Тіло запиту

| Введені користувачем дані зберігаються в змінній | Тип      | Опис                  |
| ------------------------------------------------ | -------- | --------------------- |
| platform\_ids                                    | рядкових | масив id у месенджері |

{% tabs %}
{% tab title="200: OK " %}

```javascript
[{
"id":15099119,
"tag":null,
"created_at":1618815253,
"name":"Oscar Wilde",
"avatar":"https:\\/\\/files.salebot.pro\\/uploads\\/avatars\\/256865200.jpg",
"platform_id":"2568652",
"group":"Salebotpro_bot",
"variables":{"tg_username":"@wildeo"}},

{"id":21087377,
"tag":null,
"created_at":1626275893,
"name":"Freddie Mercury",
"avatar":"https:\\/\\/files.salebot.pro\\/uploads\\/avatars\\/571830542.jpg",
"platform_id":"571830542",
"group":"Salebotpro_bot",
"variables":{"tg_username":"@freddieisqueen"}
}]
```

{% endtab %}
{% endtabs %}

## Як отримати client id в Online chat

<mark style="color:blue;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/online_chat_client_id?recipient=`

Цей метод дозволяє інтегрувати сайт і чат-бота, тобто якщо людина перейшла на сторінку зі спецпропозицією, ви можете миттєво надіслати повідомлення про цю пропозицію в чаті

#### Параметри шляху

| Введені користувачем дані зберігаються в змінній | Тип      | Опис          |
| ------------------------------------------------ | -------- | ------------- |
| api\_key                                         | рядкових | токен доступу |

#### Параметри запиту

| Введені користувачем дані зберігаються в змінній | Тип      | Опис                |
| ------------------------------------------------ | -------- | ------------------- |
| tag                                              | рядкових | тег клієнта         |
| name                                             | рядкових | ім'я клієнта        |
| recipient                                        | рядкових | id діалогу на сайті |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{ "client_id": 36553 }
```

{% endtab %}
{% endtabs %}

Де взяти recipient? На сайті, який використовує онлайн-чат «Mavibot.ai», потрібно отримати параметр SaleBotPro.recipient\_id за допомогою JS.

![](https://lh4.googleusercontent.com/kTHJGnkdMXxirfxHrmgHcg3n9nRn35lHIiWbQ6LZyaQZ4IbO8TnOtgihTt4MdAqFa1bWujmpYDOId9ALFfmud8n-XD2AJlxep2luxjL4nCl2YgDTpdemE4wJVsgFuPw1h382oUL5)

## Як отримати client id за номером WhatsApp

<mark style="color:blue;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/whatsapp_client_id?phone=`

Метод повертає id клієнта для виконання запитів до API, якщо ви знаєте номер телефону клієнта в WhatsApp. \
Якщо такого клієнта з цим номером немає, ви отримаєте 404.

#### Параметри шляху

| Введені користувачем дані зберігаються в змінній | Тип      | Опис          |
| ------------------------------------------------ | -------- | ------------- |
| api\_key                                         | рядкових | токен доступу |

#### Параметри запиту

| Введені користувачем дані зберігаються в змінній | Тип      | Опис           |
| ------------------------------------------------ | -------- | -------------- |
| phone                                            | рядкових | номер телефону |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Відповідь
}
```

{% endtab %}
{% endtabs %}

## Отримання client id за номером телефону

<mark style="color:blue;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/find_client_id_by_phone?phone=`

Метод повертає id клієнта для виконання запитів до API. \
Пошук відбувається як через клієнтів WhatsApp, так і через змінні.

#### Параметри шляху

| Введені користувачем дані зберігаються в змінній | Тип      | Опис          |
| ------------------------------------------------ | -------- | ------------- |
| api\_key                                         | рядкових | токен доступу |

#### Параметри запиту

| Введені користувачем дані зберігаються в змінній | Тип      | Опис           |
| ------------------------------------------------ | -------- | -------------- |
| phone                                            | рядкових | номер телефону |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Відповідь
}
```

{% endtab %}
{% endtabs %}

## Отримання client id через email

<mark style="color:blue;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/find_client_id_by_email?email=`

Метод повертає id клієнта для виконання запитів до API. Пошук відбувається через змінні.

#### Параметри шляху

| Введені користувачем дані зберігаються в змінній | Тип      | Опис          |
| ------------------------------------------------ | -------- | ------------- |
| api\_key                                         | рядкових | токен доступу |

#### Параметри запиту

| Введені користувачем дані зберігаються в змінній | Тип      | Опис             |
| ------------------------------------------------ | -------- | ---------------- |
| email                                            | рядкових | email для пошуку |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Відповідь
}
```

{% endtab %}
{% endtabs %}

## Отримання client id за значенням змінної

<mark style="color:blue;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/find_client_id_by_var?var=&val=`

Метод повертає id клієнта для виконання запитів до API

#### Параметри шляху

| Введені користувачем дані зберігаються в змінній | Тип      | Опис          |
| ------------------------------------------------ | -------- | ------------- |
| api\_key                                         | рядкових | токен доступу |

#### Параметри запиту

| Введені користувачем дані зберігаються в змінній | Тип      | Опис                                           |
| ------------------------------------------------ | -------- | ---------------------------------------------- |
| var                                              | рядкових | назва змінної, за якою буде виконуватися пошук |
| val                                              | рядкових | значення змінної                               |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Відповідь
}
```

{% endtab %}
{% endtabs %}

## **Які ще є можливості**

## Переведення транзакції в стан MavibotCRM

<mark style="color:green;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/set_order_state`

Номер транзакції можна отримати у вікні редагування сценарію MavibotCRM.

#### Параметри шляху

| Введені користувачем дані зберігаються в змінній | Тип      | Опис         |
| ------------------------------------------------ | -------- | ------------ |
| api\_key                                         | рядкових | ключ доступу |

#### Тіло запиту

| Введені користувачем дані зберігаються в змінній | Тип      | Опис                                                      |
| ------------------------------------------------ | -------- | --------------------------------------------------------- |
| client\_id                                       | рядкових | id клієнта                                                |
| state\_id                                        | рядкових | номер стану, у який потрібно перевести транзакцію клієнта |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Відповідь
}
```

{% endtab %}
{% endtabs %}

## Перевірка, чи стежить людина за акаунтом Instagram&#x20;

<mark style="color:blue;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/check_insta_subscription`

Може викликатися як методом POST, так і методом GET

#### Параметри шляху

| Введені користувачем дані зберігаються в змінній | Тип      | Опис         |
| ------------------------------------------------ | -------- | ------------ |
| api\_key                                         | рядкових | ключ доступу |

#### Тіло запиту

| Введені користувачем дані зберігаються в змінній | Тип      | Опис                                        |
| ------------------------------------------------ | -------- | ------------------------------------------- |
| user\_name                                       | рядкових | ім'я користувача, якого потрібно перевірити |
| login                                            | рядкових | логін бота, який перевіряється              |

{% tabs %}
{% tab title="200: OK Поле is\_follower містить інформацію про те, чи стежить людина за ним, чи ні" %}

```javascript
{
"username": "beyonce",
"account_id": "1463220603",
"avatar": "https://instagram.fhel6-1.fna.fbcdn.net/v/t51.2885-19/1060168..",
"real_name": "Beyonce",
"is_follower": true,
"status": 200
}
```

{% endtab %}
{% endtabs %}

## Перевірка, чи є у номера телефону WhatsApp

<mark style="color:blue;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/check_whatsapp`

**Для використання методу у вас ПОВИННІ бути підключені WhatsApp і Mavibot**

Може викликатися як методом POST, так і методом GET \
Номер телефону можна передавати в будь-якому форматі

#### Параметри шляху

| Введені користувачем дані зберігаються в змінній | Тип      | Опис          |
| ------------------------------------------------ | -------- | ------------- |
| api\_key                                         | рядкових | токен доступу |

#### Тіло запиту

| Введені користувачем дані зберігаються в змінній | Тип      | Опис           |
| ------------------------------------------------ | -------- | -------------- |
| phone                                            | рядкових | номер телефону |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Відповідь
}
```

{% endtab %}
{% endtabs %}

## Отримання списку месенджерів, підключених до проєкту (включно з group\_id)

<mark style="color:blue;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/connected_channels`

Функція повертає параметр **group\_id** для кожного месенджера, і саме його потрібно передавати під час завантаження клієнтів&#x20;

Поле **status** також повертається для WhatsApp, і він має значення: \
**NOT\_STARTED = 0** \
**STARTED = 1** \
**ASLEEP = 2** \
**STOPPED = 3**

#### Параметри шляху

| Введені користувачем дані зберігаються в змінній | Тип      | Опис          |
| ------------------------------------------------ | -------- | ------------- |
| api\_key                                         | рядкових | токен доступу |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{'project_id': 1, 
'viber': [{
        'id': 14, 
        'uri': 'salebotstage', 
        'name': 'salebotstage', 
        'enabled': true,
        'group_id': 11}], 
'facebook': [], 
'telegram': [{
        'id': 23, 
        'short_name': 'bulls_vs_bears_bot', 
        'name': 'bulls_vs_bears_bot', 
        'enabled': true,
        'group_id': 'bulls_vs_bears_bot'}], 
'whatsapp': [] 
}
```

{% endtab %}
{% endtabs %}

## Отримання списку блоків зі схеми бота

<mark style="color:blue;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/get_messages`

#### Параметри шляху

| Введені користувачем дані зберігаються в змінній | Тип      | Опис          |
| ------------------------------------------------ | -------- | ------------- |
| api\_key                                         | рядкових | токен доступу |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Відповідь
}
```

{% endtab %}
{% endtabs %}

{% hint style="success" %}
Якщо вам потрібні додаткові методи, будь ласка, зверніться до служби підтримки&#x20;
{% 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/integrations/api/settings.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.
