Настройки¶
Виджеты¶
Получение данных виджетов¶
Для получения данных виджетов можно воспользоваться двумя методами:
- GET /api/widgets/{id}, чтобы получить один виджет по его ID.
- GET /api/widgets, чтобы получить информацию обо всех ваших виджетах.
В заголовках обоих методов необходимо передать данные авторизации.
Параметры запроса¶
Параметр | Тип данных | Описание |
---|---|---|
id | integer | ID для получения одного виджета. Path-параметр. |
Примеры запросов¶
Получение данных одного виджета¶
curl -X GET "https://chat.devinotele.com/api/widgets/134" \
-H "accept: */*" \
-H "authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Получение данных всех виджетов¶
curl -X GET "https://chat.devinotele.com/api/widgets" \
-H "accept: */*" \
-H "authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Параметры ответа¶
Параметр | Тип данных | Описание |
---|---|---|
id | integer | ID виджета. |
organizationId | integer | ID организации, к которой принадлежит пользователь. |
externalId | string | ID виджета для приема входящих сообщений. |
name | string | Название виджета. |
channelProfiles | array[object] | Настройки каналов для виджета. Каналов может быть несколько. |
customUrls | array[object] | Настройки URL для каналов виджета. |
timeTable | array[object] | Расписание работы группы, к которой прикреплен виджет. Может быть несколько вариантов расписания. |
timezone | integer | Часовой пояс группы. Формат - смещение в минутах, например, 180 для Москвы (GMT +3). |
alignment | string | Выравнивание виджета по горизонтали. Доступны значения: ○ |
orientation | string | Выравнивание виджета по вертикали. Доступны значения: ○ |
shiftType | string | Единица измерения для выравнивания виджета на сайте. Доступны значения: ○ |
horizontal | integer | Горизонтальный отступ от краев окна веб-сайта в единицах, выбранных в параметре shiftType. |
vertical | integer | Вертикальный отступ от краев окна веб-сайта в единицах, выбранных в параметре shiftType. |
invitation | object | Настройки приглашения пользователя - всплывающего сообщения у иконки виджета. |
color | string | Цвет виджета в формате HEX-кода. |
phone | string | Номер телефона: появляется как дополнительный канал виджета. По нему пользователь может позвонить напрямую. |
title | string | Заголовок виджета. |
description | string | Комментарий к виджету. |
СhannelProfiles¶
Параметр | Тип данных | Описание |
---|---|---|
channelType | string | Название канала. Доступны значения: ○ |
connectionString | string | Строка подключения, по которой генерируется QR-код виджета. |
ordinal | integer | Порядковый номер для расположения каналов в виджете. |
connectionStringQR | string | Ссылка на QR-код виджета. |
Timetable¶
Параметр | Тип данных | Описание |
---|---|---|
startTime | string | Время начала работы группы в формате hh:mm:ss . Пример: 10:00:00 |
endTime | string | Время окончания работы группы в формате hh:mm:ss . Пример: 20:00:00 |
days | array[string] | Дни недели, в которые группа работает в данные часы работы. Может быть несколько. |
CustomUrl¶
Параметр | Тип данных | Описание |
---|---|---|
channelType | string | Название канала. Доступны значения: ○ |
customUrl | string | URL канала для перехода. |
ordinal | integer | Порядковый номер для расположения каналов в виджете. |
customUrlQR | string | Данные сгенерированного QR-кода для URL канала в формате base64. |
Invitation¶
Параметр | Тип данных | Описание |
---|---|---|
text | string | Текст всплывающего приглашения. |
timeout | integer | Задержка перед показом текста приглашения в секундах. |
intermediateTimeout | integer | Задержка перед последующим отображением сообщений в секундах. |
Пример ответа¶
{
"result": {
"id": 10249,
"organizationId": 1,
"externalId": "844e817f-6057-4917-9485-9fa44ae7a7cf",
"name": "Changed name",
"isPremium": false,
"channelProfiles": [],
"customUrls": [
{
"customUrl": "http://viber.channel/url",
"channelType": "VIBER",
"ordinal": 1,
"customUrlQR": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAIAAgj..."
}
],
"phone": "79473237743",
"alignment": "left",
"color": "#000000",
"horizontal": 150,
"invitation": {
"text": "Hello",
"timeout": 10,
"intermediateTimeout": 0
},
"orientation": "bottom",
"shiftType": "px",
"vertical": 0,
"title": "Widget title",
"timeTable": [
{
"startTime": "07:00:00",
"endTime": "23:00:00",
"days": [
"MONDAY"
]
},
{
"startTime": "10:00:00",
"endTime": "23:00:00",
"days": [
"TUESDAY",
"THURSDAY",
"SUNDAY"
]
}
],
"timezone": 180
}
}
Боты¶
Получение информации о ботах¶
Для получения информации о ботах необходимо вызвать GET /api/bots, передавая данные авторизации в заголовке. В ответе будут указаны все боты, которых использует организация.
Данный запрос не имеет дополнительных параметров.
Пример запроса¶
curl -X GET "https://chat.devinotele.com/api/bots/" \
-H "accept: */*" \
-H "authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="
Параметры ответа¶
Параметр | Тип данных | Описание |
---|---|---|
id | integer | ID бота. |
botName | string | Название бота. |
devinoBotSpecific | object | В данном объекте указан тип канала, по которому бот взаимодействует с пользователями. Тип канала указан в параметре channelType. Могут быть получены значения: ○ |
channelProfileId | integer | ID канала чата, к которому прикреплен бот. |
Пример ответа¶
{
"result": [
{
"id": 345,
"botName": "Shop bot",
"devinoBotSpecific": {
"channelType": "TELEGRAM"
},
"channelProfileId": 10064
},
{
"id": 346,
"botName": "Bot",
"devinoBotSpecific": {
"channelType": "WHATSAPP"
},
"channelProfileId": 10065
},
{
"id": 347,
"botName": "websitechat",
"devinoBotSpecific": {
"channelType": "WEBSITE_CHAT"
},
"channelProfileId": 10464
}
]
}
Переменные¶
Получение информации о переменных¶
Для получения информации о переменных необходимо вызвать GET /api/variables/{botId}, передавая данные авторизации в заголовке. В ответе будут указаны все переменные, которые использует бот, указанный в запросе.
Параметры запроса¶
Параметр | Тип данных | Описание |
---|---|---|
botId | integer | ID бота, который использует переменные. Path-параметр. |
Пример запроса¶
curl -X GET "https://chat.devinotele.com/api/variables/11624" \
-H "accept: */*" \
-H "authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="
Параметры ответа¶
Параметр | Тип данных | Описание |
---|---|---|
id | integer | ID переменной. |
name | string | Название переменной. |
Пример ответа¶
{
"result": [
{
"id": "6527e7df8a82196a38093950",
"name": "customer"
},
{
"id": "3248f3dj435f3r234rfk53i0",
"name": "address"
},
{
"id": "5u8843r293duie991939eu23",
"name": "promocode"
}
]
}
Файлы¶
Загрузка файлов¶
Для загрузки файлов в сервис необходимо вызвать POST /api/files, передавая параметры файла данные авторизации в заголовке.
Пример запроса¶
curl -X POST "https://chat.devinotele.com/api/files" \
-H "accept: */*" \
-H "authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="
-H "Content-Type: multipart/form-data" -F "file=@myfile.png;type=image/png"
Параметры ответа¶
Параметр | Тип данных | Описание |
---|---|---|
result | integer | ID загруженного файла. |
Пример ответа¶
{
"result": "3ec3d826-7a47-4dd6-adef-fc7114da76ec"
}
Получение информации о файле¶
Для получения информации о загруженном в сервис файле необходимо вызвать GET /api/files/{fileId}/info, передавая данные авторизации в заголовке.
Параметры запроса¶
Параметр | Тип данных | Описание |
---|---|---|
fileId | integer | ID файла, полученный при загрузке. Path-параметр. |
Пример запроса¶
curl -X GET "https://chat.devinotele.com/api/files/3ec3d826-7a47-4dd6-adef-fc7114da76ec/info" \
-H "accept: */*" \
-H "authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="
Параметры ответа¶
Параметр | Тип данных | Описание |
---|---|---|
fileId | integer | ID полученного файла. |
fileName | string | Название файла. |
contentLength | integer | Размер загруженного файла. |
contentType | string | Тип файла. |
publicUrl | string | Ссылка для скачивания файла с Devino Telecom. |
Пример ответа¶
{
"result": {
"fileId": "3ec3d826-7a47-4dd6-adef-fc7114da76ec",
"fileName": "myfile.png",
"contentLength": 4826,
"contentType": "image/png",
"publicUrl": "http://devino-server-for-chat.com/business-chat//businessChat/attachments/3ec3d826-7a47-4dd6-adef-fc7114da76ec/myfile.png"
}
}
Тэги¶
Создание тэгов¶
Для создания тэгов для группировки диалогов с пользователями необходимо вызвать POST /api/tags, передавая данные авторизации в заголовке.
Параметры запроса¶
Параметр | Тип данных | Описание |
---|---|---|
name | string | Название тэга. Символы пробела должны быть закодированы как %20 (ASCII). |
Пример запроса¶
curl -X POST "https://chat.devinotele.com/api/tags?name=Customer%20Support" \
-H "accept: */*" \
-H "authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="
Параметры ответа¶
Параметр | Тип данных | Описание |
---|---|---|
result | integer | ID тэга. |
Пример ответа¶
{
"result": "140"
}
Получение информации о тэгах¶
Для получения информации о тэгах необходимо вызвать GET /api/tags, передавая данные авторизации в заголовке. В ответе будут указаны все тэги, которые используются для группировки диалогов с пользователями.
Данный запрос не имеет дополнительных параметров.
Пример запроса¶
curl -X GET "https://chat.devinotele.com/api/tags" \
-H "accept: */*" \
-H "authorization: Basic QWxhZGRp
Параметры ответа¶
Параметр | Тип данных | Описание |
---|---|---|
id | integer | ID тэга. |
name | string | Название тэга. |
Пример ответа¶
{
"result": [
{
"id": 1,
"name": "Support"
},
{
"id": 5,
"name": "Sale"
},
{
"id": 18,
"name": "Discount"
},
...
]
}
Удаление тэгов¶
Для удаления тэга необходимо вызвать DELETE /api/tags/{tagId}, передавая данные авторизации в заголовке.
Параметры запроса¶
Параметр | Тип данных | Описание |
---|---|---|
tagId | integer | ID тэга. Path-параметр. |
Пример запроса¶
curl -X DELETE "https://chat.devinotele.com/api/tags/134" \
-H "accept: */*" \
-H "authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="
Параметры ответа¶
При успешной авторизации сервис возвращает параметр result
в значении null
и HTTP-статус 200
.
Опросы¶
Получение информации об опросах CSI¶
Для получения информации об опросах CSI необходимо вызвать GET /api/csi, передавая данные авторизации в заголовке. В ответе будут указаны все CSI-опросы, которых использует организация.
Данный запрос не имеет дополнительных параметров.
Пример запроса¶
curl -X GET "https://chat.devinotele.com/api/csi/" \
-H "accept: */*" \
-H "authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="
Параметры ответа¶
Параметр | Тип данных | Описание |
---|---|---|
id | integer | ID CSI-опроса. |
name | string | Название опроса. |
channelIds | array | ID каналов, в которых используется опрос. Одному типу канала (например, WhatsApp, Telegram и т.д.) могут принадлежать сразу несколько ID. |
Пример ответа¶
{
"result": [
{
"id": "13",
"name": "Survey",
"channelIds": [
"9584",
"9595"
]
},
{
"id": "28",
"name": "Questions",
"channelIds": [
"32444"
]
},
{
"id": "41",
"name": "Service rating",
"channelIds": [
"23443"
]
}
]
}
Получение информации об одном опросе CSI¶
Для получения информации об одном опросе CSI необходимо вызвать GET /api/csi/{id}, передавая данные авторизации в заголовке.
Параметры запроса¶
Параметр | Тип данных | Описание |
---|---|---|
id | integer | ID CSI-опроса. Path-параметр. |
Пример запроса¶
curl -X GET "https://chat.devinotele.com/api/csi/145345" \
-H "accept: */*" \
-H "authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="
Параметры ответа¶
Параметр | Тип данных | Описание |
---|---|---|
id | integer | ID CSI-опроса. |
name | string | Название опроса. |
question | string | Текст опроса. |
closeChatText | string | Текст сообщения, которое будет показано после того, как пользователь ответит на вопрос. |
buttons | array[button] | Массив с кнопками. Каждая кнопка - вариант ответа на опрос. |
channelIds | array | ID каналов, в которых используется опрос. Одному типу канала (например, WhatsApp, Telegram и т.д.) могут принадлежать сразу несколько ID. |
timeout | integer | Время в минутах, которое дается пользователю для ответа на вопрос. Если пользователь ответит после истечения времени, будет начат новый диалог. |
Button¶
Параметр | Тип данных | Описание |
---|---|---|
id | integer | ID кнопки. |
name | string | Текст кнопки. Дублируется в чат, как только пользователь нажимает на кнопку. |
Пример ответа¶
{
"result": {
"id": "145345",
"name": "CSI",
"question": "How would you rate your consultation?",
"closeChatText": "Thank you for your answer",
"buttons": [
{
"id": "3922601695039122",
"name": "Perfect"
},
{
"id": "3081381436286199",
"name": "Good"
},
{
"id": "1685727515541209",
"name": "Normal"
},
{
"id": "1714109573533736",
"name": "Bad"
}
],
"channelIds": [
"10061",
"10043"
],
"timeout": 10
}
}