# 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)

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

```
{
    '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:зелёный;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/callback`

Метод можно использовать для запуска сценария для клиента или для подтверждения действия в стороннем сервисе. Это сообщение не будет видно клиенту. \
**Дополнительно переданные параметры сохраняются в переменных.** \
Метод для отправки callback теперь можно включить, передав email (client\_email) или номер телефона клиента (client\_phone)

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

| Name     | Тип       | Описание      |
| -------- | --------- | ------------- |
| api\_key | строковых | токен доступа |

#### Тело запроса

| Name          | Тип       | Описание                                  |
| ------------- | --------- | ----------------------------------------- |
| 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:зелёный;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/whatsapp_callback`

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

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

| Name     | Тип       | Описание      |
| -------- | --------- | ------------- |
| api\_key | строковых | токен доступа |

#### Тело запроса

| Name    | Тип       | Описание               |
| ------- | --------- | ---------------------- |
| name    | строковых | имя клиента            |
| message | строковых | текст сообщения        |
| phone   | строковых | номер телефона клиента |
| bot\_id | строковых | id бота                |

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

```javascript
{
    // Ответ
}
```

{% endtab %}
{% endtabs %}

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

<mark style="color:зелёный;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/tg_callback`

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

**Дополнительно переданные параметры сохраняются в переменных**

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

| Name     | Тип       | Описание      |
| -------- | --------- | ------------- |
| api\_key | строковых | токен доступа |

#### Тело запроса

| Name      | Тип       | Описание                                   |
| --------- | --------- | ------------------------------------------ |
| message   | строковых | текст сообщения                            |
| user\_id  | строковых | id пользователя в Telegram                 |
| group\_id | строковых | имя бота (должно заканчиваться на **bot**) |

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

```javascript
{
    // Ответ
}
```

{% endtab %}
{% endtabs %}

## Как работать с сообщениями

**Параметры для отправки сообщений**

**attachment\_type** может принимать такие значения: **image, video, link, file, audio** \
При отправке вложений параметр **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:зелёный;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/message`

Этот метод можно использовать для отправки сообщений с уведомлениями. Параметр **message** обязателен, если вы не отправляете файл. Если отправляете, текст не нужен

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

| Name     | Тип       | Описание     |
| -------- | --------- | ------------ |
| api\_key | строковых | ключ доступа |

#### Тело запроса

| Name             | Тип       | Описание               |
| ---------------- | --------- | ---------------------- |
| 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:зелёный;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/whatsapp_message`

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

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

| Name     | Тип       | Описание     |
| -------- | --------- | ------------ |
| api\_key | строковых | ключ доступа |

#### Тело запроса

| Name              | Тип       | Описание                                   |
| ----------------- | --------- | ------------------------------------------ |
| 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:зелёный;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/broadcast`

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

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

| Name     | Тип       | Описание     |
| -------- | --------- | ------------ |
| api\_key | строковых | ключ доступа |

#### Тело запроса

| Name             | Тип       | Описание                                              |
| ---------------- | --------- | ----------------------------------------------------- |
| 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:синий;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/get_history?client_id=`

Получение истории сообщений. Можно получить **client\_id** параметр [ЗДЕСЬ](#how-to-get-client_id)

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

| Name     | Тип       | Описание     |
| -------- | --------- | ------------ |
| api\_key | строковых | ключ доступа |

#### Параметры запроса

| Name       | Тип       | Описание   |
| ---------- | --------- | ---------- |
| 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:синий;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/clear_history?client_id=`

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

| Name     | Тип       | Описание     |
| -------- | --------- | ------------ |
| api\_key | строковых | ключ доступа |

#### Параметры запроса

| Name       | Тип       | Описание   |
| ---------- | --------- | ---------- |
| 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:синий;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/assign_to_user`

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

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

| Name     | Тип       | Описание     |
| -------- | --------- | ------------ |
| api\_key | строковых | ключ доступа |

#### Параметры запроса

| Name       | Тип    | Описание                         |
| ---------- | ------ | -------------------------------- |
| 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:синий;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/load_clients`

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

Получить group id (**group\_id**) [здесь ](#what-other-possibilities-there-are)через /api/\<api\_key>/connected\_channels&#x20;

(если client\_type=13 (телефония), then group\_id=””)&#x20;

Можно посмотреть тип мессенджера, из которого пришел клиент (**client\_type**)&#x20;

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

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

| Name     | Тип       | Описание     |
| -------- | --------- | ------------ |
| api\_key | строковых | ключ доступа |

#### Тело запроса

| Name         | Тип    | Описание                                   |
| ------------ | ------ | ------------------------------------------ |
| 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:зелёный;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/add_to_list`

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

| Name     | Тип       | Описание     |
| -------- | --------- | ------------ |
| api\_key | строковых | ключ доступа |

#### Тело запроса

| Name     | Тип    | Описание                |
| -------- | ------ | ----------------------- |
| list\_id | целое  | номер списка            |
| clients  | массив | массив номеров клиентов |

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

```javascript
{
    // Ответ
}
```

{% endtab %}
{% endtabs %}

## Удаление клиентов из списка

<mark style="color:зелёный;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/remove_from_list`

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

| Name     | Тип       | Описание     |
| -------- | --------- | ------------ |
| api\_key | строковых | ключ доступа |

#### Тело запроса

| Name     | Тип    | Описание                |
| -------- | ------ | ----------------------- |
| list\_id | целое  | номер списка            |
| clients  | массив | массив номеров клиентов |

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

```javascript
{
    // Ответ
}
```

{% endtab %}
{% endtabs %}

## Получение списка клиентов

<mark style="color:зелёный;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/get_clients`

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

| Name     | Тип       | Описание     |
| -------- | --------- | ------------ |
| api\_key | строковых | ключ доступа |

#### Параметры запроса

| Name   | Тип       | Описание                                                      |
| ------ | --------- | ------------------------------------------------------------- |
| 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:зелёный;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/subscribers`

Получение информации о клиентах в выбранном мессенджере

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

| Name     | Тип       | Описание     |
| -------- | --------- | ------------ |
| api\_key | строковых | ключ доступа |

#### Параметры запроса

| Name         | Тип       | Описание                                                                                       |
| ------------ | --------- | ---------------------------------------------------------------------------------------------- |
| 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:зелёный;">**`POST`**</mark>` ``https://chatter.mavibot.ai/api/<api_key>/get_clients`

Права доступа при генерации ключа: «Разрешение на удаление клиентов»

Параметры

Путь\
api key\* — токен доступа

Тело\
client\_ids — список ID клиентов, которые нужно удалить. Максимум 500. Пример: \[199571, 199707, 1935722]

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

## Присваивание переменных

<mark style="color:зелёный;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/save_variables`

Позволяет сохранять переменные в приложении и в клиенте. \
Запрос на присваивание переменных по умолчанию добавляет их в переменные транзакции. \
Если вам нужно изменить переменные в профиле, необходимо добавить префикс **client**. \
Напр., для mobile: client.phone&#x20;

Параметр **clients** позволяет присваивать переменные массово&#x20;

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

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

| Name     | Тип       | Описание     |
| -------- | --------- | ------------ |
| api\_key | строковых | ключ доступа |

#### Тело запроса

| Name       | Тип       | Описание                                       |
| ---------- | --------- | ---------------------------------------------- |
| 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:синий;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/get_variables?client_id=`

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

| Name     | Тип       | Описание      |
| -------- | --------- | ------------- |
| api\_key | строковых | токен доступа |

#### Параметры запроса

| Name       | Тип       | Описание   |
| ---------- | --------- | ---------- |
| 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:зелёный;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/find_client_id_by_platform_id`

Метод возвращает id клиента для выполнения запросов к API

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

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

| Name | Тип       | Описание     |
| ---- | --------- | ------------ |
|      | строковых | ключ доступа |

#### Тело запроса

| Name          | Тип       | Описание                |
| ------------- | --------- | ----------------------- |
| 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:синий;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/online_chat_client_id?recipient=`

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

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

| Name     | Тип       | Описание      |
| -------- | --------- | ------------- |
| api\_key | строковых | токен доступа |

#### Параметры запроса

| Name      | Тип       | Описание            |
| --------- | --------- | ------------------- |
| 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:синий;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/whatsapp_client_id?phone=`

Метод возвращает id клиента для выполнения запросов к API, если известен номер телефона клиента в WhatsApp. \
Если клиента с таким номером нет, будет получен 404.

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

| Name     | Тип       | Описание      |
| -------- | --------- | ------------- |
| api\_key | строковых | токен доступа |

#### Параметры запроса

| Name  | Тип       | Описание       |
| ----- | --------- | -------------- |
| phone | строковых | номер телефона |

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

```javascript
{
    // Ответ
}
```

{% endtab %}
{% endtabs %}

## Получение client id по номеру телефона

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

Метод возвращает id клиента для выполнения запросов к API. \
Поиск выполняется по клиентам WhatsApp, а также по переменным.

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

| Name     | Тип       | Описание      |
| -------- | --------- | ------------- |
| api\_key | строковых | токен доступа |

#### Параметры запроса

| Name  | Тип       | Описание       |
| ----- | --------- | -------------- |
| phone | строковых | номер телефона |

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

```javascript
{
    // Ответ
}
```

{% endtab %}
{% endtabs %}

## Получение client id по email

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

Метод возвращает id клиента для выполнения запросов к API. Поиск выполняется по переменным.

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

| Name     | Тип       | Описание      |
| -------- | --------- | ------------- |
| api\_key | строковых | токен доступа |

#### Параметры запроса

| Name  | Тип       | Описание         |
| ----- | --------- | ---------------- |
| email | строковых | email для поиска |

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

```javascript
{
    // Ответ
}
```

{% endtab %}
{% endtabs %}

## Получение client id по значению переменной

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

Метод возвращает id клиента для выполнения запросов к API

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

| Name     | Тип       | Описание      |
| -------- | --------- | ------------- |
| api\_key | строковых | токен доступа |

#### Параметры запроса

| Name | Тип       | Описание                                    |
| ---- | --------- | ------------------------------------------- |
| var  | строковых | имя переменной, по которой будет идти поиск |
| val  | строковых | значение переменной                         |

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

```javascript
{
    // Ответ
}
```

{% endtab %}
{% endtabs %}

## **Какие еще есть возможности**

## Перевод транзакции в состояние MavibotCRM

<mark style="color:зелёный;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/set_order_state`

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

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

| Name     | Тип       | Описание     |
| -------- | --------- | ------------ |
| api\_key | строковых | ключ доступа |

#### Тело запроса

| Name       | Тип       | Описание                                                      |
| ---------- | --------- | ------------------------------------------------------------- |
| client\_id | строковых | id клиента                                                    |
| state\_id  | строковых | номер состояния, в которое нужно перевести транзакцию клиента |

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

```javascript
{
    // Ответ
}
```

{% endtab %}
{% endtabs %}

## Проверка, подписан ли человек на аккаунт Instagram&#x20;

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

Может вызываться как методом POST, так и методом GET

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

| Name     | Тип       | Описание     |
| -------- | --------- | ------------ |
| api\_key | строковых | ключ доступа |

#### Тело запроса

| Name       | Тип       | Описание                                           |
| ---------- | --------- | -------------------------------------------------- |
| 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:синий;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/check_whatsapp`

**Чтобы использовать метод, у вас ДОЛЖНЫ быть подключены WhatsApp и Mavibot**

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

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

| Name     | Тип       | Описание      |
| -------- | --------- | ------------- |
| api\_key | строковых | токен доступа |

#### Тело запроса

| Name  | Тип       | Описание       |
| ----- | --------- | -------------- |
| phone | строковых | номер телефона |

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

```javascript
{
    // Ответ
}
```

{% endtab %}
{% endtabs %}

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

<mark style="color:синий;">`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**

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

| Name     | Тип       | Описание      |
| -------- | --------- | ------------- |
| 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:синий;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/get_messages`

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

| Name     | Тип       | Описание      |
| -------- | --------- | ------------- |
| 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/ru/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.
