Некоторые функции API-запросов могут выполняться в Калькуляторе.
Запросы отправляются методом POST или GET на URL в следующем формате:
https://chatter.mavibot.ai/api/{api\_key}/{action}
Где:
api_key — ключ доступа к API, сгенерированный в настройках проекта.

Чтобы использовать токен в URL-запросе, сначала необходимо сгенерировать ключ API.
Инструкции по этому поводу приведены в разделе «Генерация ключа API». ссылка
При копировании URL с этой страницы может появиться пробел, который необходимо удалить.
Пример некорректной ссылки:
https://chatter.mavibot.pro /api/callbackЕсли пробел после .pro останется, запрос не сработает.
Не используйте запрещённые символы при отправке GET-запроса.
Убедитесь, что вы понимаете правильный формат GET-запросов.
Как сгенерировать ключ API
Старая функция генерации ключа API по-прежнему работает, но недоступна для новых проектов.
Если в вашем проекте уже есть ключи API, сгенерированные без настроек доступа, описанных в этом разделе, эти существующие ключи API продолжат нормально работать.
Если вам нужно сгенерировать новые ключи, используйте обновлённые настройки.
Чтобы сгенерировать ключ API, перейдите в настройки проекта:

Затем перейдите в раздел «Интеграции»:

Кнопка «Добавить ключ API» находится в разделе «Интеграции»:

После нажатия на кнопку откроется модальное окно с настройками доступа и параметрами генерации ключа API:

Затем необходимо выбрать разрешения доступа для ключа API:

Функция API будет работать в соответствии с выбранными разрешениями доступа.
Обратите внимание!
Функция API зависит от установленных вами разрешений доступа: если вы сгенерируете ключ API с доступом только для чтения информации о клиенте, а затем используете его для отправки сообщения клиенту или изменения его переменных, запрос API завершится ошибкой.
Необходимое разрешение для каждого запроса API указано в карточке запроса API:![]()
Затем введите имя для ключа API:

Сгенерируйте ключ API, нажав кнопку «Сгенерировать»:

После чего нажмите «Готово», и ключ API добавится в раздел:

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

Затем необходимо установить основной ключ проекта. Это позволяет использовать ключ в URL-запросе с плейсхолдером #{api_key}.
Для этого нажмите кнопку «{+}» справа от нужного ключа API:

После этого рядом с ключом появится метка, указывающая, что это основной ключ проекта.

Вы можете получить доступ к основному ключу проекта через api_key: просто сгенерируйте нужный ключ, установите его разрешения и назначьте его основным ключом проекта. Затем в Калькуляторе используйте URL-запрос с плейсхолдером #{api_key}, который будет содержать значение основного ключа проекта.


Любые другие сгенерированные ключи с настройками доступа будут считаться вторичными ключами. В URL-запросе вы можете использовать их значение вместо #{api_key}. Для этого скопируйте значение вторичного ключа:

и вставьте его в URL-запрос вместо #{api_key}:

Ключ API, сгенерированный старым методом, по умолчанию устанавливается как основной ключ проекта и имеет полные разрешения.
Примечание!
Если вы удалите ключ, установленный как основной ключ проекта, вам потребуется вручную назначить новый ключ в качестве основного.
Обратите внимание!
Если у вас есть ключи API, сгенерированные старым методом, они продолжат нормально работать. Сгенерировать новые ключи API старого типа невозможно.
Как получать сообщения по URL-адресу Webhook, указанному в настройках проекта
Каждое входящее или исходящее сообщение будет отправлено в виде следующего JSON POST-запроса:
{
"id": "ID сообщения в системе",
"client": {
"id": "ID клиента в системе",
"recepient": "ID клиента в мессенджере",
"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": "текст ошибки доставки сообщения"
}
Если запрос возвращает ошибку, он не будет повторён. Даже если сервер возвращает ошибки, уведомления будут продолжать отправляться.
Как создать JSON-запрос
Перейдите в настройки блока, где данные будут записаны в таблицу.

- Добавьте раздел API-запроса.
- Выберите POST-JSON в качестве типа запроса.
- Затем приступите к заполнению полей запроса:

URL запроса — путь к вызываемой функции. В документации он всегда показан на первой строке рядом с типом запроса:

Сохранённые значения — список параметров ответа с именами переменных, в которые следует сохранить результаты, в следующем формате:
request_parameter -> your_variable
Если ответ содержит параметры со сложной структурой, разберите их следующим образом:
"cell_number":{"row":4,"col":2}\n> > \n> > \n> > cell_number|row ->String; \n> > cell_number|col -> Column
Заголовки запроса — заполните при необходимости. Обычно это включает формат данных и/или токен доступа.
Параметры JSON — тело запроса, где вы указываете параметры данных в формате JSON. Пример:
{"client_id": "#{recipient_id_in_builder}", "message":"Hello!"}
Чтобы понять структуру ответа, напишите #{custom_answer} в поле «Сообщение», чтобы вывести значение переменной.

Далее в документации перечислены разрешённые параметры в разделе «Тело»:

Как использовать универсальный вебхук
Перечисленные методы теперь могут выполняться как POST-, так и GET-запросы.
Ранее наши методы имели фиксированные параметры (такие как client_id и fb_id) для запуска действий подписчика, что накладывало определённые ограничения при интеграции со сторонними сервисами.
Теперь вы можете указать, какой параметр запроса MaviBot должен использовать для поиска ID пользователя. Используйте параметр с префиксом value_, например, value_user_id или value_group_id.
Кроме того, метод отправки обратного вызова теперь можно запускать, используя адрес электронной почты клиента (client_email) или номер телефона (client_phone).
Методы callback, fb_callback и whatsapp_callback не привязаны к конкретным именам параметров. Вы можете указать, какой параметр содержит номер телефона, адрес электронной почты или ID клиента.
Это полезно при настройке приёма вебхуков с веб-сайта.
Чтобы указать, какая переменная содержит client_id, используйте параметр value_client_id и укажите имя параметра, содержащего это значение.
Чтобы указать, какая переменная содержит номер телефона, используйте value_phone.
Чтобы указать, какая переменная содержит адрес электронной почты, используйте value_email.
Чтобы указать, какая переменная содержит user_id, используйте value_user_id.
Чтобы указать, какая переменная содержит group_id, используйте value_group_id.
Чтобы указать переменную, содержащую само сообщение в вебхуке, используйте value_message (передаётся так же, как и другие параметры).
Пример:
В адресе укажите 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.pro/api/d3f31dabef80ddeb73d43938b4ef8bb0/callback
{"client_id":49177759, "message":"Hello world"}
Как видите, имя параметра, содержащего значение, имеет префикс value_.
Обратите внимание!
Некоторые события генерируют системные уведомления в рамках проекта.
Например, существуют системные уведомления с полем сообщения, которое не пусто, но не содержит текста клиента.
В то же время проект может генерировать хуки сообщений с определённым содержимым, например, "message: new_chat_member".
Поэтому важно проверять содержимое: это будет либо системное уведомление, либо хук для конкретного события.
Как запустить бота
Запуск бота
**POST** https://chatter.mavibot.ai/api/#{api_key}/callback
URL запроса: https://chatter.mavibot.ai/api/#{api\_key}/callback
Этот метод можно использовать для запуска воронки для клиента или подтверждения действия на внешнем ресурсе. Клиент не увидит это сообщение.
Обратите внимание: любые дополнительные переданные вами параметры будут сохранены в переменной
Метод обратного вызова теперь также можно запускать, используя адрес электронной почты клиента (client_email) или номер телефона (client_phone).
Разрешение доступа при генерации ключа: «Разрешение на изменение/удаление информации о клиенте».
Путь
api key* - токен доступа
Тело
client_phone - номер телефона для поиска клиента
client_email - адрес электронной почты для поиска клиента
client_id - ID клиента в конструкторе
message - текст сообщения
resume_bot - True (необязательный параметр). Если бот приостановлен, используется для его возобновления.
Пример: resume_bot = True
time_shift - число. Если указано, сообщение будет отправлено через заданное количество секунд от текущего времени.
send_time - дата и время в формате "%Y-%m-%d %H:%M:%S" (например, "2024-10-16 13:15:59"). Устанавливает дату и время отправки сообщения. Если указаны и time_shift, и send_time, приоритет имеет time_shift.
import requests
import json
params = {"message": "some_text", "client_id": "25554"}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.salebot.pro/api/{token}/callback'
requests.post(url, json=params)
Запуск бота с использованием номера WhatsApp
**POST** https://chatter.mavibot.ai/api/<api_key>/whatsapp_callback
URL запроса: https://chatter.mavibot.ai/api/\\<api_key>/whatsapp_callback
Этот метод может запустить WhatsApp-бота после того, как клиент зарегистрируется на сайте или отправит запрос с номером телефона.
Обратите внимание: любые дополнительные переданные параметры будут сохранены в переменной
Право доступа при генерации ключа: «Разрешение на изменение или удаление информации о клиенте».
Path
api key* - токен доступа
Body
name - имя клиента
message - текст сообщения
phone - номер телефона клиента
bot_id - ID бота
resume_bot - True (необязательный параметр). Если бот приостановлен, используйте этот параметр, чтобы возобновить его. Пример: resume_bot = True
time_shift - число. Если указано, сообщение будет отправлено через заданное количество секунд от текущего времени.
send_time - дата и время в формате "%Y-%m-%d %H:%M:%S" (например, "2024-10-16 13:15:59"). Устанавливает дату и время отправки сообщения. Если указаны и time_shift, и send_time, приоритет имеет time_shift.
Запуск бота с помощью Telegram ID
**POST** https://chatter.mavibot.pro/api/#{api_key}/tg_callback
URL запроса: https://chatter.mavibot.pro/api/#{api\\_key}/tg\\_callback
Этот метод можно использовать для запуска воронки для клиента или подтверждения действия на внешнем сайте. Клиент не увидит это сообщение.
Обратите внимание: любые дополнительные переданные параметры будут сохранены в переменных.
Право доступа при генерации ключа: «Разрешение на изменение или удаление информации о клиенте».
Path
api key* - токен доступа
Body
message - текст сообщения
user_id - ID пользователя Telegram
group_id - имя бота (оканчивается на bot)
resume_bot - True (необязательный параметр). Если бот приостановлен, используйте этот параметр, чтобы возобновить его. Пример: resume_bot = True
time_shift - число. Если указано, сообщение будет отправлено через заданное количество секунд от текущего времени.
send_time - дата и время в формате "%Y-%m-%d %H:%M:%S" (например, "2024-10-16 13:15:59"). Устанавливает дату и время отправки сообщения. Если указаны и time_shift, и send_time, приоритет имеет time_shift.
Отправка callback-сообщений списку клиентов по platform_id
**POST** https://chatter.mavibot.ai/api/#{api_key}/send_callback_by_platform_id
URL запроса: https://chatter.mavibot.ai/api/#{api\\_key}/send\\_callback\\_by\\_platform\\_id
Когда в проекте находятся клиенты с platform_id из списка, будет отправлен callback с текстом из поля callback_text.
\ Лимит: 1 запрос = максимум 300 отправок
Пример параметров запроса:
{"platform_ids":[407184121, "79609879898", "2rwewefw"], "callback_text": "test_callback"}
Право доступа при генерации ключа: «Разрешение на изменение или удаление информации о клиенте».
Path
api key* - токен доступа
Body
platform_ids - Список ID клиентов в мессенджере
callback_text - текст callback
group_id - ID бота
time_shift - число. Если указано, сообщение будет отправлено через заданное количество секунд от текущего времени.
send_time - дата и время в формате "%Y-%m-%d %H:%M:%S" (например, "2024-10-16 13:15:59"). Устанавливает дату и время отправки сообщения. Если указаны и time_shift, и send_time, приоритет имеет time_shift.
Отправка callback-сообщения клиенту по email
**POST** https://chatter.mavibot.ai/api/#{api_key}/email_callback
URL запроса: https://chatter.mavibot.ai/api/#{api\\_key}/email\\_callback
Этот метод может запустить email-бота после того, как клиент зарегистрируется на сайте или отправит запрос с email. Метод найдет email клиента или создаст его, если не найден.
Право доступа при генерации ключа: «Разрешение на изменение или удаление информации о клиенте».
Обратите внимание: любые дополнительные переданные параметры будут сохранены в переменной
Path
api key* - токен доступа
Body
name - имя клиента
message - текст сообщения
email - адрес электронной почты
email_id_bot - адрес электронной почты бота
resume_bot - True (необязательный параметр).
Если бот приостановлен, используйте этот параметр, чтобы возобновить его. Пример: resume_bot = True
time_shift - число. Если указано, сообщение будет отправлено через заданное количество секунд от текущего времени.
send_time - дата и время в формате "%Y-%m-%d %H:%M:%S" (например, "2024-10-16 13:15:59"). Устанавливает дату и время отправки сообщения. Если указаны и time_shift, и send_time, приоритет имеет time_shift.
Как работать с сообщениями
Параметры отправки сообщений
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
}
]
}
Отправка сообщения клиенту
**POST** https://chatter.mavibot.ai/api/#{api_key}/message
URL запроса: https://chatter.mavibot.ai/api/#{api\\_key}/message
Этот метод можно использовать для отправки уведомительных сообщений. Параметр message обязателен, если только вы не отправляете файл. Если вы отправляете файл, текст необязателен.
Право доступа при генерации ключа: «Разрешение на изменение или удаление информации о клиенте».
Path
api key* - токен доступа
Body
message_id - номер блока для отправки
message - текст сообщения
client_id - ID клиента в конструкторе
attachment_type - тип отображения файла. Обязателен, если указан attachment_url.
attachment_url - URL файла
buttons - кнопки
time_shift - число. Если указано, сообщение будет отправлено через заданное количество секунд от текущего времени.
send_time - дата и время в формате "%Y-%m-%d %H:%M:%S" (например, "2024-10-16 13:15:59"). Устанавливает дату и время отправки сообщения. Если указаны и time_shift, и send_time, приоритет имеет time_shift.
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)
# Отправка вложения
params = {
"message": "some message",
"client_id": "1234565",
"attachment_type": "video/image/file",
"attachment_url": "https://qwreqw"
}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/message'
requests.post(url, json=params)
# В 'attachment_type' укажите 'video', 'image' или 'file'
# в зависимости от типа вложения: видео, изображение или документ.
Отправка сообщения в WhatsApp
**POST** https://chatter.salebot.pro/api/<api_key>/whatsapp_message
URL запроса: https://chatter.mavibot.pro/api/\\<api_key>/whatsapp_message
Позволяет отправить сообщение от имени подключенного бота на указанный номер. whatsapp_bot_id необходимо взять из раздела «Мессенджеры и чаты». Каждому подключенному аккаунту WhatsApp присваивается уникальный идентификатор конструктором.
Право доступа при генерации ключа: «Разрешение на изменение или удаление информации о клиенте».
Path
api key* - токен доступа
Body
message_id - номер блока для отправки
whatsapp_bot_id - ID WhatsApp-бота, от которого должно быть отправлено сообщение
attachment_url - URL файла
attachment_type - тип отображения файла. Обязателен, если указан attachment_url.
message - текст сообщения
phone - номер телефона получателя
time_shift - число. Если указано, сообщение будет отправлено через заданное количество секунд от текущего времени.
send_time - дата и время в формате "%Y-%m-%d %H:%M:%S" (например, "2024-10-16 13:15:59"). Устанавливает дату и время отправки сообщения. Если указаны и time_shift, и send_time, приоритет имеет time_shift.
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)
Массовая отправка сообщений
**POST** https://chatter.mavibot.ai/api/#{api_key}/broadcast
URL запроса: https://chatter.mavibot.ai/api/#{api\\_key}/broadcast
Этот метод позволяет запустить рассылку.
Вы можете использовать один из следующих взаимоисключающих вариантов:
- Параметр list — рассылка будет отправлена указанному списку клиентов.
- Параметр clients — рассылка будет отправлена массиву ID клиентов.
- Параметры platform_ids и group_id — рассылка будет отправлена массиву platform_ids (ID в мессенджере) для указанного бота (group_id).
- Если ни один из вышеуказанных параметров не предоставлен, рассылка не будет отправлена.
Обязательные параметры: message (и/или attachment_type и attachment_url) или message_id.
Право доступа при генерации ключа: «Разрешение на изменение или удаление информации о клиенте».
Path
api key* - токен доступа
Body
list - номер списка, на который должна быть отправлена рассылка
clients - ID клиентов в конструкторе
message - текст сообщения
platform_ids - ID получателей в мессенджере. Должен использоваться вместе с обязательным параметром group_id
group_id - обязателен только при использовании platform_ids. Игнорируется с другими опциями. Указывает бота для отправки на указанные platform_ids
attachment_url - URL файла
attachment_type - тип отображения файла. Обязателен, если указан attachment_url.
buttons - кнопки
message_id - номер блока для отправки
shift — количество секунд между сообщениями. По умолчанию 0.2.
time_shift - число. Если указано, сообщение будет отправлено через заданное количество секунд от текущего времени.
send_time - дата и время в формате "%Y-%m-%d %H:%M:%S" (например, "2024-10-16 13:15:59"). Устанавливает дату и время отправки сообщения. Если указаны и time_shift, и send_time, приоритет имеет time_shift.
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)
Получение истории сообщений
**GET** https://chatter.mavibot.ai/api/#{api_key}/get_history?client_id=
URL запроса: https://chatter.mavibot.ai/api/#{api\_key}/get\_history?client\_id=
Параметр client_id можно получить здесь. ссылка
Право доступа при генерации ключа: «Разрешение на чтение информации о клиенте».
Path
api key* - токен доступа
Body
client_id - ID клиента
limit - количество элементов в ответе. По умолчанию: 2000, максимум: 2000
start_date - дата начала периода выборки (обязательно, если указан stop_date), формат: дд.мм.гггг
stop_date - дата окончания периода выборки (обязательно, если указан start_date), формат: дд.мм.гггг
{
"status": "success",
"result": [
{
"id": 104500,
"answered": true,
"client_replica": false,
"message_id": 390,
"message_from_outside": 0,
"created_at": 1587895014,
"text": "Meow meow",
"attachments": {
},
"delivered": true,
"error_message": "true",
"manager_id": 12486,
"manager_email": "[email protected]"
},
]
}
Очистить историю сообщений
**GET** https://chatter.mavibot.ai/api/#{api_key}/clear_history?client_id=
URL запроса: https://chatter.mavibot.ai/api/#{api\_key}/clear\_history?client\_id=
Удаляет историю чата
Право доступа при генерации ключа: «Разрешение на изменение/удаление информации о клиенте».
Path
api key* - токен доступа
Body
client_id - ID клиента
import requests
import json
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/clear_history?client_id=85856'
requests.get(url)
Как назначать клиентов
Назначение клиента сотруднику
**POST** https://chatter.mavibot.ai/api/#{api_key}/assign_to_user
URL запроса: https://chatter.mavibot.ai/api/#{api\_key}/assign\_to\_user
Этот метод позволяет назначить клиента сотруднику. Параметр email является необязательным. Если email не указан, система назначит клиента в соответствии со своим алгоритмом.
Право доступа при генерации ключа: «Разрешение на изменение/удаление информации о клиенте».
Path
api key* - токен доступа
Body
client_id - ID клиента
email - email сотрудника (необязательно)
import requests
import json
params = {"client_id":"#{client_id}","email":"[email protected]"}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/broadcast'
requests.post(url, json=params)
Импорт клиентов в систему
**POST** https://chatter.mavibot.ai/api/#{api_key}/load_clients
URL запроса: https://chatter.mavibot.pro/api/#{api\_key}/load\_clients
Этот метод позволяет импортировать клиентов в систему. При загрузке клиентов WhatsApp вы можете указать номер в любом формате, как с окончанием @s.whatsapp.net, так и без него.
ID группы (group_id) можно получить ЗДЕСЬ через /api/<api_key>/connected_channels. (Если client_type = 13 (телефония), то group_id — пустая строка: ""). ссылка
Тип мессенджера, из которого пришел клиент (client_type), можно найти ЗДЕСЬ. ссылка
Пример: [{"platform_id":"79875555555","group_id":34810,"client_type":6}]
Право доступа при генерации ключа: «Разрешение на изменение или удаление информации о клиенте».
Path
api key* - токен доступа
Body
platform_id - номер телефона
group_id - ID группы
client_type - тип мессенджера, из которого пришел клиент
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":"[email protected]", "group_id": "1hwF7lwEjv4SKYIGFhQnBw==", "client_type": 6}]
requests.post(url, json=params)
# в случае успеха функция вернет ID и статус добавления для каждого элемента
# пример ответа
# {"status":"success","items":[{"platform_id":"[email protected]","group_id":"5kqchxwyvdvFZOsp80q2qw==","client_type":6,"status":"success","id":1469409}]}
Добавить клиентов в список
**POST** https://chatter.mavibot.ai/api/<api_key>/add_to_list
URL запроса: https://chatter.mavibot.ai/api/\<api_key>/add_to_list
Добавляет клиентов в список
Право доступа при генерации ключа: «Разрешение на изменение или удаление информации о клиенте».
Path
api key* - токен доступа
Body
list_id - номер списка
clients - массив ID клиентов
Пример:
Параметры JSON
{"list_id":1170282, "clients":[411262772, 646410963]}
Удалить клиентов из списка
**POST** https://chatter.mavibot.ai/api/#{api_key}/remove_from_list
URL запроса: https://chatter.mavibot.ai/api/#{api\_key}/remove\_from\_list
Удаляет клиентов из списка
Право доступа при генерации ключа: «Разрешение на изменение или удаление информации о клиенте».
Path
api key* - токен доступа
Body
list_id - номер списка
clients - массив номеров клиентов в конструкторе Mavibot (значения client_id)
Получить список клиентов
**GET** https://chatter.mavibot.ai/api/<api_key>/get_clients
URL запроса: https://chatter.mavibot.a/aipi/\<api_key>/get_clients
Право доступа при генерации ключа: «Разрешение на изменение или удаление информации о клиенте».
Path
api key* - токен доступа
Body
offset – Смещение от первого элемента
limit – Количество элементов в ответе / По умолчанию: 500, Максимум: 500
list – Номер списка
reverse – Указывает на обратную сортировку (от самой старой записи к самой новой). Этот параметр работает только в том случае, если список не указан.
Возвращает статус и массив элементов.
{
"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
}
]
}
Получить список подписчиков бота в любом мессенджере
**GET** https://chatter.mavibot.ai/api/#{api_key}/subscribers
URL запроса: https://chatter.mavibot.ai/api/#{api\_key}/subscribers
Извлекает информацию о клиенте из выбранного мессенджера.
Примечание! Этот метод не возвращает переменные.
Право доступа при генерации ключа: «Разрешение на изменение или удаление информации о клиенте».
Path
api key* - токен доступа
Body
page
tag – Тег, указанный на странице подписки
group – ID группы VK, к которой привязан подписчик
date_from – Подписан после этой даты (timestamp)
date_to – Подписан до этой даты (timestamp)
client_type – ID мессенджера, для которого получить список подписчиков. Если не указан, будут возвращены все клиенты
[
{
"id": 44886,
"tag": null,
"created_at": 1609867984,
"name": "John Smith",
"vk_id": "146467928",
"group": "155824294",
"variables": null
},
{
"id": 44889,
"tag": null,
"created_at": 1609867984,
"name": "Anna Smith",
"vk_id": "1609867984",
"group": "155824294",
"variables": {
"utm_source": "some_value"
}
}
]
Как работать с переменными
Назначение переменных
**POST** https://chatter.mavibot.ai/api/#{api_key}/save_variables
URL запроса: https://chatter.mavibot.ai/api/#{api\_key}/save\_variables
!** **Для этого запроса ограничений нет.
Позволяет сохранять переменные как в лиде, так и в клиенте.
По умолчанию запрос на назначение переменной добавляет их в переменные сделки.
Чтобы обновить переменные в профиле клиента, используйте префикс client.. Например, для телефона: client.phone.
Право доступа при генерации ключа: «Разрешение на изменение или удаление информации о клиенте».
Обновление: Параметр clients позволяет назначать переменные массово.
Пример: {"client_id":49177759, "variables":{"client.phone":"88888888888"}}
Path
api key* - токен доступа
Body
clients – Массив ID клиентов для назначения переменных
client_id – ID клиента
variables – Хэш переменных (пары ключ-значение)
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)
Получить переменные
**GET** https://chatter.mavibot.ai/api/#{api_key}/get_variables?client_id=
URL запроса: https://chatter.mavibot.ai/api/#{api\_key}/get\_variables?client\_id=
Право доступа при генерации ключа: «Разрешение на изменение или удаление информации о клиенте».
Пример: https://chatter.mavibot.ai/api/d3f31dabef80ddeb73d43938b4ef8bb0/get\_variables?client\_id=49177759
Path
api key* - токен доступа
Body
client_id - ID клиента
import requests
import json
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/get_variables?client_id=85856'
requests.get(url)
Как получить ID клиента (client_id)
Получить client_id, используя значение platform_id
**POST** https://chatter.mavibot.ai/api/#{api_key}/find_client_id_by_platform_id
URL запроса: https://chatter.mavibot.ai/api/#{api\_key}/find\_client\_id\_by\_platform\_id
Право доступа при генерации ключа: «Разрешение на изменение или удаление информации о клиенте».
Path
api key* - токен доступа
Body
platform_ids - Массив ID в мессенджере
group_id - ID бота
[{
"id":15099119,
"tag":null,
"created_at":1618815253,
"name":"ОЛЬГА БЕЛИК",
"avatar":"https:\\/\\/files.mavibot.ai\\/uploads\\/avatars\\/256865200.jpg",
"platform_id":"2568652",
"group":"Mavibotai_bot",
"variables":{"tg_username":"@belik"}},
{"id":21087377,
"tag":null,
"created_at":1626275893,
"name":"John Smith",
"avatar":"https:\\/\\/files.mavibot.ai\\/uploads\\/avatars\\/571830542.jpg",
"platform_id":"571830542",
"group":"Mavibotai_bot",
"variables":{"tg_username":"@jsmith61"}
}]
Получить ID клиента из онлайн-чата
**GET** https://chatter.mavibot.ai/api/#{api_key}/online_chat_client_id?recipient=
URL запроса: https://chatter.mavibot.ai/api/#{api\_key}/online\_chat\_client\_id?recipient=
Этот метод позволяет интегрировать веб-сайт с чат-ботом. Например, если пользователь заходит на страницу акции, вы можете немедленно отправить сообщение в чат с персонализированным предложением.
Право доступа при генерации ключа: «Разрешение на изменение или удаление информации о клиенте».
Path
api key* - access token
Body
tag - tag (client tag)\nname - client name\nrecipient - dialog ID on a website
Where to get the recipient?
You can get it on the website with the Mavibot.ai online chat, use JS to get the property MavibotAi.recipient_id.
{ "client_id": 36553 }
Retrieve client_id by WhatsApp number
**GET** https://chatter.mavibot.ai/api/#{api_key}/whatsapp_client_id?phone=
URL request: https://chatter.mavibot.ai/api/#{api\_key}/whatsapp\_client\_id?phone=
This method returns the client ID for making API requests if you know the client’s WhatsApp phone number.
If no client exists with that number, the method will return a 404 error.
Access permission when generating a key: "Permission to modify or delete client information".
Path
api key* - access token
Body
phone - phone number
group_id - bot ID
Retrieve client_id by phone number
**GET** https://chatter.mavibot.ai/api/<api_key>/find_client_id_by_phone?phone=
URL request: https://chatter.mavibot.ai/api/\<api_key>/find_client_id_by_phone?phone=
This method returns the client ID for making API requests.
The search is performed both among WhatsApp clients and via variables.
Access permission when generating a key: "Permission to modify or delete client information".
Path
api key* - access token
Body
phone - phone number
Retrieve client_id by email
**GET** https://chatter.mavibot.ai/api/#{api_key}/find_client_id_by_email?email=
URL request: https://chatter.mavibot.ai/api/#{api\_key}/find\_client\_id\_by\_email?email= 
This method returns the client ID for making API requests.
The search is performed using variables.
Access permission when generating a key: "Permission to modify or delete client information".
Path
api key* - access token
Body
email - email for search
Retrieve client_id by variable value
**GET** https://chatter.mavibot.ai/api/#{api_key}/find_client_id_by_var?var=&val=
URL request: https://chatter.mavibot.ai/api/#{api\_key}/find\_client\_id\_by\_var?var=\&val=
This method returns the client ID for making API requests.
Access permission when generating the key: "Permission to read client information"
Path
api key* - access token
Body
var - variable name to search by
val - variable value
group_id - group ID
search_in - pass the value 'order' to search in deal variables; searches up to three variables for project clients and returns a list of clients that have all the specified variables.
Retrieve the ID of the most recently created client by variable value
**GET** https://chatter.mavibot.ai/api/#{api_key}/find_latest_client_id_by_var?var=&val=
URL request: https://chatter.mavibot.ai/api/#{api\_key}/find\_latest\_client\_id\_by\_var ?var=&val=
This method returns the ID of the most recently created client for making API requests. It searches both client and deal variables.
Access permission when generating the key: "Permission to read client information"
Path
api key* - access token
Body
var - variable name to search by
val - variable value
Retrieve a list of client_id values by variable value
**GET** https://chatter.mavibot.ai/api/#{api_key}/find_all_client_id_by_var?var=&val=
URL request: https://chatter.mavibot.ai/api/#{api\_key}/find\_all\_client\_id\_by\_var?var=\&val=
This method returns a list of client IDs that have the specified variable with the specified value.
Access permission when generating the key: "Permission to read client information"
Path
api key* - access token
Body
var - variable name to search by
val - variable value
{
// Response
}
Retrieve a list of client_id values based on multiple variable values
**GET** https://chatter.mavibot.ai/api/#{api_key}/find_all_client_id_by_several_vars?var=val
URL request: https://chatter.mavibot.ai/api/#{api\_key}/find\_all\_client\_id\_by\_several\_vars?var=val
Access permission when generating the key: "Permission to read client information".
Path
api key* - access token
Body
variable1 - Value1
variable2 - Value2
variable3 - Value3
{
"status":"success","client_ids":[93891114]
}
Search by variables
**POST** https://chatter.mavibot.ai/api/#{api_key}/find_clients
URL request: https://chatter.mavibot.ai/api/#{api\_key}/find\_clients
This method searches by variables and returns a list of client IDs that meet the query conditions.
By default, the search is performed on client variables (recommended): {"q": {"result": "ok", "var": "home", "var": "60"}} – the client must have all specified variables
Search in deal variables, at least one of the specified variables must be present: {"q": {"result": "ok", "var": "home", "var": "60"}, "search_in": "order", "include_all": False}
Client variable name equals one of the list values: {"q": {"name": {"_in": ["Joe", "Jane", "Donald"]}}}
Client variable name does NOT equal any of the list values: {"q": {"name": {"_not_in": ["Joe", "Jane", "Donald"]}}}
Client variable name does not equal "Joe": {"q": {"name": {"_not": "Joe"}}}
Note: Number comparison works only if all clients have numeric values in the searched variable. If even one client has a string, the request will fail.
Access permission when generating the key: "Permission to read client information"
Parameters
Path
api key* - access token
Body
q – required parameter, contains the query conditions for searching variables
search_in – specifies which entity’s variables to search; if not provided, the search is done on client variables. Can take the value order.
include_all – whether all conditions in q must be met;
False – if at least one condition matches, the entity is selected
Success
{"status":"success","client_ids":[41203, 5622354, 785212]}
{"status":"success","client_ids":[]}
{"status": "fail", "message": "Parameter "q" required"} {"status": "fail", "message": "Error in parameter format"}
Error
{"status":"fail","message":"Something went wrong"}
How to work with deals
Retrieve the current deal ID
**GET** https://chatter.mavibot.ai/api/#{api_key}/get_current_order_id
URL request: https://chatter.mavibot.ai/api/#{api\_key}/get\_current\_order\_id
Access permission when generating the key: "Permission to read CRM information".
Path
api key* - access token
Body
client_id - client ID
Successful response: {"status":"success","order_id":40632}, where
order_id - current deal ID
Error response: {"status":"client_not_found"}
Retrieve the list of deals
**GET** https://chatter.mavibot.ai/api/#{api_key}/get_orders
URL request: https://chatter.mavibot.ai/api/#{api\_key}/get\_orders
Access permission when generating the key: "Permission to read CRM information"
Path
api key* - access token
Body
client_id - client ID
order_status - deal stage:
0 - active deals
1 - successful deals
2 - unsuccessful deals
Successful response: {"status":"success","order_id":[40338,40340,40341]}
Error response: {"status":"client_not_found"}
Move a deal to the next stage in the Mavibot funnel
**POST** https://chatter.mavibot.ai/api/#{api_key}/move_order_to_next_state
URL request: https://chatter.mavibot.ai/api/#{api\_key}/move\_order\_to\_next\_state
Access permission when generating the key: "Permission to modify/delete CRM information"
Path
api key* - access token
Body
client_id - client ID
order_id - deal ID
Successful response:
{"status":"success","state_id":37}, where
state_id - stage ID in MavibotCRM
Error response:
{"status":"client_not_found"}
Retrieve deal data
**POST** https://chatter.mavibot.ai/api/#{api_key}/get_order_vars
URL request: https://chatter.mavibot.ai/api/#{api\_key}/get\_order\_vars
Access permission when generating the key: "Permission to read CRM information"
Path
api key* - access token
Body
client_id - client ID
order_id - deal ID
variables - variable array
(format:["var_name1", "var_name2"])
Successful response:
{"status":"success","result":{"var_name1":"111","var_name2":"13.04.2023"}}
Error example:
{"status":"client_not_found"}
Add deal variables
**POST** https://chatter.mavibot.ai/api/#{api_key}/set_order_vars
URL request: https://chatter.mavibot.ai/api/#{api\_key}/set\_order\_vars
Access permission when generating the key: "Permission to modify/delete CRM information"
Path
api key* - access token
Body
client_id - client ID
order_id - deal ID
variables - A dictionary of variables (the key is the variable name, and the value is what should be saved in that variable)
(format:{"var_name": "var_value"})
Successful response: {"status":"success"}
Error response: {"status":"order 12345 not found"}
Create a deal
**POST** https://chatter.mavibot.ai/api/#{api_key}/create_order
URL request: https://chatter.mavibot.ai/api/#{api\_key}/create\_order
Access permission when generating the key: "Permission to modify/delete CRM information"
Path
api key* - access token
Body
client_id - client ID
name - deal name
description - deal description
budget - deal amount
You must specify one of the following parameters in the request: client_id, email, or phone.
If multiple parameters are provided, only one will be used. The priority order is: client_id > phone > email.
If phone or email is provided and no client exists with that phone number or email, a new client will be created.
Successful response: {"status":"success","order_id":40654},
where order_id is the ID of the new active deal.
Error response: {"status":"client_not_found"}
Переместить сделку на этап в MavibotCRM
**POST** https://chatter.mavibot.ai/api/#{api_key}/set_order_state
URL запроса: https://chatter.mavibot.ai/api/#{api\_key}/set\_order\_state
Право доступа при генерации ключа: «Разрешение на изменение/удаление CRM-информации»
Путь
api key* — токен доступа
Тело
client_id — ID клиента
state_id — номер этапа, на который нужно переместить сделку клиента
Получить ID этапа воронки в Mavibot CRM
**GET** https://chatter.mavibot.ai/api/#{api_key}/get_order_state
URL запроса: https://chatter.mavibot.ai/api/#{api\_key}/get\_order\_state
Право доступа при генерации ключа: «Разрешение на чтение CRM-информации»
Путь
api key* — токен доступа
Тело
client_id — ID клиента
state_id — ID сделки (если не указан, метод вернёт ID этапа текущей сделки)
Пример успешного ответа:
{'status': 'success', 'state_id': 123456}
Пример неуспешного ответа:
{'status': 'order not found'}
Какие ещё возможности доступны?
Проверить, есть ли у номера телефона WhatsApp
**GET** https://chatter.mavibot.ai/api/#{api_key}/check_whatsapp
URL запроса: https://chatter.mavibot.ai/api/#{api\_key}/check\_whatsapp
Для использования этого метода WhatsApp должен быть подключён к Mavibot.
Право доступа при генерации ключа: «Разрешение на изменение или удаление информации о клиенте».
Может вызываться как через GET, так и через POST.
Номер телефона можно передавать в любом формате.
Путь
api key* — токен доступа
Тело
phone — номер телефона для проверки
Получить список мессенджеров, подключённых к проекту
**GET** https://chatter.mavibot.ai/api/<api_key>/connected_channels
URL запроса: https://chatter.mavibot.ai/api/\<api_key>/connected_channels
Право доступа при генерации ключа: «Разрешение на изменение или удаление информации о клиенте».
Функция возвращает параметр group_id для каждого мессенджера, который необходимо использовать при импорте клиентов.
Для WhatsApp также возвращается поле status, которое может принимать следующие значения:
NOT_STARTED = 0
STARTED = 1
ASLEEP = 2
STOPPED = 3
Путь
api key* — токен доступа
{'project_id': 1,
'viber': [{
'id': 14,
'uri': 'mavibotstage',
'name': 'mavibotstage',
'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': [],
'avito': [],
'ok': [],
'vkontakte': [{
'id': 33,
'group': '143414131',
'group_id': '143414131'}]
}
Получить список блоков из потока бота
**GET** https://chatter.mavibot.ai/api/<api_key>/get_messages
URL запроса: https://chatter.mavibot.ai/api/\<api_key>/get_messages>
Право доступа при генерации ключа: «Разрешение на изменение или удаление информации о клиенте».
Путь
api key* — токен доступа
Извлечь вложенные данные клиента
разделитель
Чтобы извлечь client_id и/или номер телефона клиента из вложенных словарей (не на первом уровне), используйте параметр delimiter.
Добавьте в URL вашего запроса:
?delimiter=1&delimiter_value_client_id={key1}1{key2}&delimiter_value_phone={key1}1{key2}
где:
?delimiter=1 — значение разделителя, которое разделяет ключи {key1}1{key2}1{key3}
delimiter_value_client_id={key1}1{key2} — для извлечения ID клиента
delimiter_value_phone={key1}1{key2} — для извлечения номера телефона клиента
{key1}, {key2}, … — ключи, содержащие значения (могут включать любые символы, кроме разделителя). Количество ключей не ограничено:
?delimiter=1&delimiter_value_client_id={key1}1{key2}1{key3}1{key4}1{key5}1{key6}.
Ключи передаются без фигурных скобок.
Используйте разделитель между ключами. Например, если delimiter=2, то {key1}2{key2}2{key3}; если delimiter=5, то {key1}5{key2}5{key3}. Убедитесь, что ключ не содержит символ разделителя.
Пример:
https://chatter.mavibot.a/aipi/\<api_key>/callback****?delimiter=1&delimiter_value_client_id={key1}1{key2}&delimiter_value_phone={key1}1{key2}****
Также можно извлечь только ID или только номер телефона:
https://chatter.salebot.pro/api/\<api_key>/callback****?delimiter=1&delimiter_value_client_id={key1}1{key2} -**** только ID клиента;
https://chatter.salebot.pro/api/\<api_key>/callback****?delimiter=1delimiter_value_phone={key1}1{key2}**** — только номер телефона;
Методы API:
- Запустить бота: https://chatter.mavibotbot.ai/api/\<api_key>/callback
- Запустить бота по номеру WhatsApp: https://chatter.mavibotbot.ai/api/\<api_key>/whatsapp_callback
- Запустить бота по Telegram ID: https://chatter.mavibotbot.ai/api/\<api_key>/tg_callback
- Отправить callback-сообщение клиенту по email: https://chatter.mavibotbot.ai/api/\<api_key>/email_callback
- Отправить сообщение клиенту: https://chatter.mavibotbot.ai/api/\<api_key>/message
- Отправить WhatsApp-сообщение: https://chatter.mavibotbot.ai/api/\<api_key>/whatsapp_message
- Массовая рассылка: https://chatter.mavibotbot.ai/api/\<api_key>/broadcast
- Назначить переменные: https://chatter.mavibotbot.ai/api/\<api_key>/save_variables\
Если вам нужны дополнительные методы, обратитесь в службу поддержки.