Деякі функції 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, скільки потрібно, призначаючи кожному різні дозволи доступу.

Далі потрібно встановити основний ключ проєкту. Це дозволяє використовувати ключ у 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 Request.
- Виберіть POST-JSON як тип запиту.
- Потім заповніть поля запиту:

URL запиту — шлях до функції, яку потрібно викликати. У документації він завжди показаний у першому рядку поруч із типом запиту:

Збережені значення — список параметрів відповіді з назвами змінних, у яких слід зберігати результати, у такому форматі:
request_parameter -> your_variable
Якщо відповідь містить параметри зі складною структурою, розбирайте їх наступним чином:
"cell_number":{"row":4,"col":2}\
\
\
cell_number|row ->String;
cell_number|col -> Column
Заголовки запиту — заповніть за потреби. Зазвичай це включає формат даних та/або токен доступу.
Параметри JSON — тіло запиту, де ви вказуєте параметри даних у форматі JSON. Приклад:
{"client_id": "#{recipient_id_in_builder}", "message":"Hello!"}
Щоб зрозуміти структуру відповіді, напишіть #{custom_answer} у полі Повідомлення, щоб вивести значення змінної.

Далі в документації перераховано дозволені параметри в розділі «Тіло»:

Як використовувати універсальний вебхук
Перераховані методи тепер можна виконувати як POST, так і GET-запити.
Раніше наші методи мали фіксовані параметри (такі як client_id та fb_id) для запуску дій підписника, що накладало певні обмеження під час інтеграції зі сторонніми сервісами.
Тепер ви можете вказати, який параметр запиту MaviBot має використовувати для пошуку ідентифікатора користувача. Використовуйте параметр з префіксом value_, наприклад, value_user_id або value_group_id.
Крім того, метод надсилання зворотного виклику тепер можна запускати за допомогою електронної пошти клієнта (client_email) або номера телефону (client_phone).
Методи callback, fb_callback та whatsapp_callback не прив'язані до конкретних назв параметрів. Ви можете вказати, який параметр містить номер телефону, електронну пошту або ідентифікатор клієнта.
Це корисно під час налаштування отримання вебхука з веб-сайту.
Щоб вказати, яка змінна містить 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.
Надсилання зворотних повідомлень списку клієнтів за 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_text.
\ Обмеження: 1 запит = максимум 300 надсилань
Приклад параметрів запиту:
{"platform_ids":[407184121, "79609879898", "2rwewefw"], "callback_text": "test_callback"}
Право доступу при генерації ключа: "Дозвіл на зміну або видалення інформації про клієнта".
Path
api key* - токен доступу
Body
platform_ids - Список ID клієнтів у месенджері
callback_text - текст зворотного виклику
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.
Надсилання зворотного повідомлення клієнту електронною поштою
**POST** https://chatter.mavibot.ai/api/#{api_key}/email_callback
URL запиту: https://chatter.mavibot.ai/api/#{api\\_key}/email\\_callback
Цей метод може запустити 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.
При надсиланні вкладення параметр повідомлення є необов'язковим.
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
Цей метод можна використовувати для надсилання сповіщень. Параметр повідомлення є обов'язковим, якщо ви не надсилаєте файл. Якщо ви надсилаєте файл, текст є необов'язковим.
Право доступу при генерації ключа: "Дозвіл на зміну або видалення інформації про клієнта".
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), формат: dd.mm.yyyy
stop_date - дата закінчення періоду вибірки (обов'язково, якщо вказано start_date), формат: dd.mm.yyyy
{
"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 - електронна пошта співробітника (необов'язково)
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 tiken
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 }
Отримати client_id за номером WhatsApp
**GET** https://chatter.mavibot.ai/api/#{api_key}/whatsapp_client_id?phone=
URL запиту: https://chatter.mavibot.ai/api/#{api\_key}/whatsapp\_client\_id?phone=
Цей метод повертає ідентифікатор клієнта для виконання запитів до API, якщо ви знаєте номер телефону клієнта у WhatsApp.
Якщо клієнта з таким номером не існує, метод поверне помилку 404.
Дозвіл доступу під час генерації ключа: "Permission to modify or delete client information".
Path
api key* - access token
Body
phone - номер телефону\ngroup_id - ідентифікатор бота
Отримати client_id за номером телефону
**GET** https://chatter.mavibot.ai/api/<api_key>/find_client_id_by_phone?phone=
URL запиту: https://chatter.mavibot.ai/api/\<api_key>/find_client_id_by_phone?phone=
Цей метод повертає ідентифікатор клієнта для виконання запитів до API.
Пошук виконується як серед клієнтів WhatsApp, так і за допомогою змінних.
Дозвіл доступу під час генерації ключа: "Permission to modify or delete client information".
Path
api key* - access token
Body
phone - номер телефону
Отримати client_id за електронною поштою
**GET** https://chatter.mavibot.ai/api/#{api_key}/find_client_id_by_email?email=
URL запиту: https://chatter.mavibot.ai/api/#{api\_key}/find\_client\_id\_by\_email?email= 
Цей метод повертає ідентифікатор клієнта для виконання запитів до API.
Пошук виконується за допомогою змінних.
Дозвіл доступу під час генерації ключа: "Permission to modify or delete client information".
Path
api key* - access token
Body
email - електронна пошта для пошуку
Отримати client_id за значенням змінної
**GET** https://chatter.mavibot.ai/api/#{api_key}/find_client_id_by_var?var=&val=
URL запиту: https://chatter.mavibot.ai/api/#{api\_key}/find\_client\_id\_by\_var?var=\&val=
Цей метод повертає ідентифікатор клієнта для виконання запитів до API.
Дозвіл доступу під час генерації ключа: "Permission to read client information"
Path
api key* - access token
Body
var - назва змінної для пошуку\nval - значення змінної\ngroup_id - ідентифікатор групи\nsearch_in - передайте значення 'order' для пошуку в змінних угоди; виконує пошук до трьох змінних для клієнтів проекту та повертає список клієнтів, які мають усі вказані змінні.
Отримати ідентифікатор останнього створеного клієнта за значенням змінної
**GET** https://chatter.mavibot.ai/api/#{api_key}/find_latest_client_id_by_var?var=&val=
URL запиту: https://chatter.mavibot.ai/api/#{api\_key}/find\_latest\_client\_id\_by\_var ?var=&val=
Цей метод повертає ідентифікатор останнього створеного клієнта для виконання запитів до API. Він виконує пошук як у змінних клієнта, так і в змінних угоди.
Дозвіл доступу під час генерації ключа: "Permission to read client information"
Path
api key* - access token
Body
var - назва змінної для пошуку\nval - значення змінної
Отримати список значень client_id за значенням змінної
**GET** https://chatter.mavibot.ai/api/#{api_key}/find_all_client_id_by_var?var=&val=
URL запиту: https://chatter.mavibot.ai/api/#{api\_key}/find\_all\_client\_id\_by\_var?var=\&val=
Цей метод повертає список ідентифікаторів клієнтів, які мають вказану змінну з вказаним значенням.
Дозвіл доступу під час генерації ключа: "Permission to read client information"
Path
api key* - access token
Body
var - назва змінної для пошуку\nval - значення змінної
{
// Response
}
Отримати список значень client_id на основі кількох значень змінних
**GET** https://chatter.mavibot.ai/api/#{api_key}/find_all_client_id_by_several_vars?var=val
URL запиту: https://chatter.mavibot.ai/api/#{api\_key}/find\_all\_client\_id\_by\_several\_vars?var=val
Дозвіл доступу під час генерації ключа: "Permission to read client information".
Path
api key* - acces token
Body
variable1 - Value1
variable2 - Value2
variable3 - Value3
{
"status":"success","client_ids":[93891114]
}
Пошук за змінними
**POST** https://chatter.mavibot.ai/api/#{api_key}/find_clients
URL запиту: https://chatter.mavibot.ai/api/#{api\_key}/find\_clients
Цей метод виконує пошук за змінними та повертає список ідентифікаторів клієнтів, які відповідають умовам запиту.
За замовчуванням пошук виконується за змінними клієнта (рекомендовано): {"q": {"result": "ok", "var": "home", "var": "60"}} – клієнт повинен мати всі вказані змінні
Пошук у змінних угоди, принаймні одна з вказаних змінних повинна бути присутня: {"q": {"result": "ok", "var": "home", "var": "60"}, "search_in": "order", "include_all": False}
Назва змінної клієнта дорівнює одному зі значень списку: {"q": {"name": {"_in": ["Joe", "Jane", "Donald"]}}}
Назва змінної клієнта НЕ дорівнює жодному зі значень списку: {"q": {"name": {"_not_in": ["Joe", "Jane", "Donald"]}}}
Назва змінної клієнта не дорівнює "Joe": {"q": {"name": {"_not": "Joe"}}}
Примітка: Порівняння чисел працює лише тоді, коли всі клієнти мають числові значення в шуканій змінній. Якщо хоча б один клієнт має рядок, запит завершиться помилкою.
Дозвіл доступу під час генерації ключа: "Permission to read client information"
Параметри
Path
api key* - access token
Body
q – обов'язковий параметр, містить умови запиту для пошуку змінних
search_in – визначає, у змінних якої сутності виконувати пошук; якщо не вказано, пошук виконується за змінними клієнта. Може приймати значення order.
include_all – чи повинні всі умови в q бути виконані;
False – якщо збігається хоча б одна умова, сутність вибирається
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"}
Як працювати з угодами
Отримати ідентифікатор поточної угоди
**GET** https://chatter.mavibot.ai/api/#{api_key}/get_current_order_id
URL запиту: https://chatter.mavibot.ai/api/#{api\_key}/get\_current\_order\_id
Дозвіл доступу під час генерації ключа: "Permission to read CRM information".
Path
api key* - access token
Body
client_id - ідентифікатор клієнта
Успішна відповідь: {"status":"success","order_id":40632}, де
order_id - ідентифікатор поточної угоди
Відповідь з помилкою: {"status":"client_not_found"}
Отримати список угод
**GET** https://chatter.mavibot.ai/api/#{api_key}/get_orders
URL запиту: https://chatter.mavibot.ai/api/#{api\_key}/get\_orders
Дозвіл доступу під час генерації ключа: "Permission to read CRM information"
Path
api key* - access token
Body
client_id - ідентифікатор клієнта
order_status - етап угоди:
0 - активні угоди
1 - успішні угоди
2 - неуспішні угоди
Успішна відповідь: {"status":"success","order_id":[40338,40340,40341]}
Відповідь з помилкою: {"status":"client_not_found"}
Перемістити угоду на наступний етап у воронці Mavibot
**POST** https://chatter.mavibot.ai/api/#{api_key}/move_order_to_next_state
URL запиту: https://chatter.mavibot.ai/api/#{api\_key}/move\_order\_to\_next\_state
Дозвіл доступу під час генерації ключа: "Permission to modify/delete CRM information"
Path
api key* - access token
Body
client_id - ідентифікатор клієнта
order_id - ідентифікатор угоди
Успішна відповідь:
{"status":"success","state_id":37}, де
state_id - ідентифікатор етапу в MavibotCRM
Відповідь з помилкою:
{"status":"client_not_found"}
Отримати дані угоди
**POST** https://chatter.mavibot.ai/api/#{api_key}/get_order_vars
URL запиту: https://chatter.mavibot.ai/api/#{api\_key}/get\_order\_vars
Дозвіл доступу під час генерації ключа: "Permission to read CRM information"
Path
api key* - access token
Body
client_id - ідентифікатор клієнта
order_id - ідентифікатор угоди
variables - масив змінних
(формат:["var_name1", "var_name2"])
Успішна відповідь:
{"status":"success","result":{"var_name1":"111","var_name2":"13.04.2023"}}
Приклад помилки:
{"status":"client_not_found"}
Додати змінні угоди
**POST** https://chatter.mavibot.ai/api/#{api_key}/set_order_vars
URL запиту: https://chatter.mavibot.ai/api/#{api\_key}/set\_order\_vars
Дозвіл доступу під час генерації ключа: "Permission to modify/delete CRM information"
Path
api key* - access token
Body
client_id - ідентифікатор клієнта
order_id - ідентифікатор угоди
variables - словник змінних (ключ — назва змінної, а значення — те, що потрібно зберегти в цій змінній)
(формат:{"var_name": "var_velue"})
Успішна відповідь: {"status":"success"}
Відповідь з помилкою: {"status":"order 12345 not found"}
Створити угоду
**POST** https://chatter.mavibot.ai/api/#{api_key}/create_order
URL запиту: https://chatter.mavibot.ai/api/#{api\_key}/create\_order
Дозвіл доступу під час генерації ключа: "Permission to modify/delete CRM information"
Path
api key* - access token
Body
client_id - ідентифікатор клієнта
name - назва угоди
description - опис угоди
budget - сума угоди
У запиті необхідно вказати один із наступних параметрів: client_id, email або phone.
Якщо вказано кілька параметрів, буде використано лише один. Пріоритетність: client_id > phone > email.
Якщо вказано phone або email і клієнта з таким номером телефону або електронною поштою не існує, буде створено нового клієнта.
Успішна відповідь: {"status":"success","order_id":40654},
де order_id — ідентифікатор нової активної угоди.
Відповідь з помилкою: {"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 - ідентифікатор клієнта
state_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 - ідентифікатор клієнта
state_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} – для отримання ідентифікатора клієнта
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}****
Ви також можете отримати лише ідентифікатор або лише номер телефону:
https://chatter.salebot.pro/api/\<api_key>/callback****?delimiter=1&delimiter_value_client_id={key1}1{key2} -**** лише ідентифікатор клієнта;
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
- Надіслати зворотне повідомлення клієнту електронною поштою: 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
Якщо вам потрібні додаткові методи, зверніться до служби підтримки.