Некоторые функции 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-запрос

Перейдите в настройки блока, где данные будут записаны в таблицу.

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

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

Этот метод позволяет запустить рассылку.

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

  1. Параметр list — рассылка будет отправлена указанному списку клиентов.
  2. Параметр clients — рассылка будет отправлена массиву ID клиентов.
  3. Параметры platform_ids и group_id — рассылка будет отправлена массиву platform_ids (ID в мессенджере) для указанного бота (group_id).
  4. Если ни один из вышеуказанных параметров не предоставлен, рассылка не будет отправлена.

Обязательные параметры: 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=&#x20;

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:

  1. Запустить бота: https://chatter.mavibotbot.ai/api/\<api_key>/callback
  2. Запустить бота по номеру WhatsApp: https://chatter.mavibotbot.ai/api/\<api_key>/whatsapp_callback
  3. Запустить бота по Telegram ID: https://chatter.mavibotbot.ai/api/\<api_key>/tg_callback
  4. Отправить callback-сообщение клиенту по email: https://chatter.mavibotbot.ai/api/\<api_key>/email_callback
  5. Отправить сообщение клиенту: https://chatter.mavibotbot.ai/api/\<api_key>/message
  6. Отправить WhatsApp-сообщение: https://chatter.mavibotbot.ai/api/\<api_key>/whatsapp_message
  7. Массовая рассылка: https://chatter.mavibotbot.ai/api/\<api_key>/broadcast
  8. Назначить переменные: https://chatter.mavibotbot.ai/api/\<api_key>/save_variables\

Если вам нужны дополнительные методы, обратитесь в службу поддержки.