API конструктора

Какие запросы поддерживает конструктор и как их выполнять.

Запросы выполняются методом POST на URL, типа: https://chatter.salebot.pro/api/{api_key}/{action} Где: api_key ключ доступа к API, который получается в настройках проекта (Рисунок 1)

Рисунок 1

При копировании url запроса с этой страницы подставляется пробел, который необходимо при вызове удалить.

Пример неправильно скопированной ссылки: https://chatter.salebot.pro /api/callback

Пробел после .pro не так просто заметить. С ним запрос не будет выполняться

Доступные методы:

post
Запуск бота

https://chatter.salebot.pro/api/<api_key>/callback
Метод можно использовать для запуска воронки у клиента или подтверждения действия на стороннем ресурсе. Данное сообщение не увидит клиент. Дополнительно переданные параметры сохранятся в переменные.
Request
Response
Request
Path Parameters
api_key
required
string
Токен доступа
Body Parameters
client_id
required
string
id клиента в конструкторе
message
required
string
Текст сообщения
Response
200: OK
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)

post
Запуск бота по идентификатору пользователя ВКонтакте

https://chatter.salebot.pro/api/<api_key>/vk_callback
Метод можно использовать для запуска воронки у клиента или подтверждения действия на стороннем ресурсе. Данное сообщение не увидит клиент. Дополнительно переданные параметры сохранятся в переменные.
Request
Response
Request
Path Parameters
api_key
required
string
Токен доступа
Body Parameters
message
optional
string
Текст сообщения
user_id
required
string
id пользователя вконтакте
group_id
required
string
id группы вконтакте
Response
200: OK
params = {"user_id": '146467928', "group_id": '143414131', 'message': 'test'}
api = 'cab4233db32c8af006c91945fa03cb468d1fd845f140'
url = f'https://chatter.zmservice.ru/api/{api}/vk_callback'
requests.post(url, json=params)

post
Запуск бота по номеру Whatsapp

https://chatter.salebot.pro/api/<api_key>/whatsapp_callback
Этот метод может запустить вотсап бота, после регистрации клиента на сайте или после того, как он оставит заявку с номером телефона. Дополнительно переданные параметры сохранятся в переменные.
Request
Response
Request
Path Parameters
api_key
required
string
Токен доступа
Body Parameters
name
optional
string
Имя клиента
message
optional
string
Текст сообщения
phone
required
string
Номер телефона клиента
bot_id
optional
string
Идентификатор бота
Response
200: OK

post
Отправка сообщения клиенту

https://chatter.salebot.pro/api/<api_key>/message
Этот метод можно использовать для отправки сообщений с уведомлениями. Параметр message обязателен, если вы не отправляете файл. Если вы отправляете файл, текст необязателен.
Request
Response
Request
Path Parameters
api_key
required
string
Токен доступа
Body Parameters
message
required
string
Текст сообщения
client_id
required
string
id клиента в конструткоре
attachment_type
optional
string
Тип отображения файла
attachment_url
optional
string
URL файла
buttons
optional
object
Кнопки
Response
200: OK
import requests
import json
params = {"message": "some_text", "client_id": "25554"}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.salebot.pro/api/{token}/message'
requests.post(url, json=params)

post
Массовая отправка сообщений

https://chatter.salebot.pro/api/<api_key>/broadcast
Метод позволяет запустить рассылку. Если параметр clients не указан, рассылка будет произведена по всем пользователям. Необходимо отправлять либо файл, либо текст.
Request
Response
Request
Path Parameters
api_key
required
string
Токен доступа
Body Parameters
message
required
string
Текст сообщения
clients
optional
array
Идентификаторы получателей
attachment_type
optional
string
Тип отображения файла
attachment_url
optional
string
URL файла
buttons
optional
string
Кнопки
Response
200: OK
import requests
import json
params = {"message": "some_text", "clients": ["5", "58", "110"]}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.salebot.pro/api/{token}/broadcast'
requests.post(url, json=params)

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

attachment_type может принимать значения: image, video, link, file, audio При отправке вложения параметр message необязателен buttons - определяет кнопки, которые будут прикреплены к сообщению. Формат кнопок аналогичен расширенным настройкам кнопок. Возможны два варианта передачи кнопок: с указанием подсказки для мессенджеров без кнопок и без нее.

Пример параметра buttons:

"buttons": {"hint": "Этот текст будет отображен в вотсапе",
"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
Отправка сообщения в Whatsapp

https://chatter.salebot.pro/api/<api_key>/whatsapp_message
Позволяет отправить сообщение от имени подключенного бота на указанный номер whatsapp_bot_id необходимо взять из раздела мессенджеры и чаты. Каждому подключенному вотсапу конструктор присваивает уникальный идентификатор.
Request
Response
Request
Path Parameters
api_key
required
string
Токен доступа
Body Parameters
whatsapp_bot_id
optional
number
Идентификатор вотсап бота, от которого нужно отправить сообщение
attachment_url
optional
string
url файла
attachment_type
optional
string
тип отображения файла
message
optional
string
Текст сообщения
phone
required
string
Номер телефона получателя
Response
200: OK
import requests
import json
params = {"message": "some_text", "phone": "79875146788"}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.salebot.pro/api/{token}/whatsapp_message'
requests.post(url, json=params)

post
Присвоение переменных

https://chatter.salebot.pro/api/<api_key>/save_variables
Позволяет сохранить переменные в заявку и в клиента. Для сохранения переменной клиенту, переменная должна начинаться с префикса client.
Request
Response
Request
Path Parameters
api_key
required
string
Токен доступа
Body Parameters
client_id
required
string
id клиента
variables
required
object
Хеш переменных(ключ значение)
Response
200: OK
import requests
import json
params = {"client_id": "25554", "variables": {"var_name": "var_value"}}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.salebot.pro/api/{token}/save_variables'
requests.post(url, json=params)

get
Получение переменных

https://chatter.salebot.pro/api/<api_key>/get_variables?client_id=
Request
Response
Request
Path Parameters
api_key
required
string
Токен доступа
Query Parameters
client_id
required
string
id клиента
Response
200: OK
import requests
import json
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.salebot.pro/api/{token}/get_variables?client_id=85856'
requests.get(url)

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

https://chatter.salebot.pro/api/<api_key>/get_clients
Request
Response
Request
Path Parameters
api_key
required
string
Токен доступа
Query Parameters
offset
optional
string
Смещение относительно первого элемента
limit
optional
integer
Количество элементов в ответе/ По умолчанию 500, аксимальное значение 500.
Response
200: OK
Возвращает статус и массив элементов
{
"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.salebot.pro/api/<api_key>/get_history?client_id=
Получить историю переписки
Request
Response
Request
Path Parameters
api_key
required
string
Токен доступа
Query Parameters
client_id
required
string
id клиента
Response
200: OK
{
"status": "success",
"result": [
{
"id": 104500,
"answered": true,
"client_replica": false,
"message_id": 390,
"message_from_outside": 0,
"created_at": 1587895014,
"text": "Пышь тышь",
"attachments": {
},
"delivered": true,
"error_message": "true"
},
]
}

get
Очистить историю сообщений

https://chatter.salebot.pro/api/<api_key>/clear_history?client_id=
Удаляет историю переписки
Request
Response
Request
Path Parameters
api_key
required
string
Токен доступа
Query Parameters
client_id
required
string
id клиента
Response
200: OK
import requests
import json
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.salebot.pro/api/{token}/clear_history?client_id=85856'
requests.get(url)

get
Получить список подключенных мессенджеров к проекту

https://chatter.salebot.pro/api/<api_key>/connected_channels
Функция возвращает к каждому мессенджеру параметр group_id, именно его необходимо передавать при загрузке клиентов. Для Whatsapp также возвращается поле status, которое принимает значения: NOT_STARTED = 0 STARTED = 1 ASLEEP = 2 STOPPED = 3
Request
Response
Request
Path Parameters
api_key
required
string
Токен доступа
Response
200: OK
{'project_id': 1,
'viber': [{
'id': 14,
'uri': 'salebotstage',
'name': 'salebotstage',
'enabled': true,
'group_id': 11}],
'facebook': [],
'telegram': [{
'id': 23,
'short_name': 'bulls_vs_bears_bot',
'name': 'bulls_vs_bears_bot',
'enabled': true,
'group_id': 'bulls_vs_bears_bot'}],
'whatsapp': [],
'avito': [],
'ok': [],
'vkontakte': [{
'id': 33,
'group': '143414131',
'group_id': '143414131'}]
}

get
Получить id клиента для работы с API на сайте

https://chatter.salebot.pro/api/<api_key>/online_chat_client_id?recipient=
Этот метод позволяет интегрировать сайт и чат-бота. Например, если человек зашел на страницу с акцией, прислать сразу же сообщение в чат о персональном предложении.
Request
Response
Request
Path Parameters
api_key
required
string
Токен доступа
Query Parameters
tag
optional
string
Тег(метка клиента)
name
optional
string
Имя клиента
recipient
required
string
Идентификатор диалога на сайте
Response
200: OK
{ "client_id": 36553 }

Где взять recipient? На сайте, где размещен онлайн чат "Salebot.pro" при помощи JS получите свойство SaleBotPro.recipient_id

post
Загрузка клиентов в систему

https://chatter.salebot.pro/api/<api_key>/load_clients
Метод позволяет загрузить клиентов в систему. Параметры сложные, они разобраны в примере. При загрузке клиентов whatsapp можно передавать номер в свободном формате, без концовки @s.whatsapp.net
Request
Response
Request
Path Parameters
api_key
required
string
Ключ доступа
Response
200: OK
import requests
import json
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.salebot.pro/api/{token}/load_clients'
params = [{ "platform_id": 274827917, "group_id": 169166236, "client_type":0},
{"platform_id":"79538550785@s.whatsapp.net", "group_id": "1hwF7lwEjv4SKYIGFhQnBw==", "client_type": 6}]
requests.post(url, json=params)
# в случае успеха функция вернет каждому элементу идентификатор и статус добавления
# пример ответа
# {"status":"success","items":[{"platform_id":"700000000@s.whatsapp.net","group_id":"5kqchxwyvdvFZOsp80q2qw==","client_type":6,"status":"success","id":1469409}]}

client_type - тип мессенджера, откуда пришел клиент. Принимает значения: для вконтакте 0 для телеграмм 1 для вайбера 2 для фейсбук 3 для в вотсап 6

group_id можно получить методом Получить id клиента для работы с API на сайте

get
Получение client_id по номеру телефона

https://chatter.salebot.pro/api/<api_key>/whatsapp_client_id?phone=
Метод вернет идентификатор клиента для выполнения запросов к API, если вы знаете номер телефона клиента в Whatsapp Если клиента нет с таким номером, то метод вернет 404
Request
Response
Request
Path Parameters
api_key
optional
string
Ключ доступа
Query Parameters
phone
optional
string
Номер телефона
Response
200: OK

Получение сообщений на Webhook URL, указанный в настройках проекта

Каждое входящее или исходящее сообщение будет приходить следующий json POST запросом:

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

Если запрос вернул ошибку, повторной отправки не будет. Если сервер возвращает ошибки, уведомления продолжат отправляться несмотря на это.

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