Примеры запросов на Webitel API
Table of Contents
1. Дайлеры.
1.1. Загрузка абонентов в дайлер.
https://swagger.webitel.com/#/MemberService/MemberService_CreateMemberBulk
...
Code Block | ||||
---|---|---|---|---|
| ||||
{ "items": [ // массив абонентов (мемберов). Каждый отдельный объект – это отдельный абонент. { "agent": { // определяет привязку абонента к конкретному оператору, необязательно. "id": "${id}" // идентификатор оператора }, "bucket": { "id": "${id}" // идентификатор корзины. Применяется для привязки оператора и клиента. Предусматривается использование корзин для продуктов в рамках очереди для одной страны. }, "communications": [ // в этом массиве передается номер/номера клиентов. { "description": "${description}", // описание способа связи. "destination": "${destination}", // номер абонента, обязательное. "display": "${display}", // номер, который будет отображаться абоненту во время звонка, необязательное. "priority": 0, // приоритет destination в рамках абонента. Когда в массиве communications есть несколько номеров, приоритет будет определять порядок их обзвона. Чем больше число, тем выше приоритет. Обязательное. "resource": { // определяет привязку абонента к конкретному ресурсу, с которого будет проводиться обзвон. Не обязательное. "id": "${id}" // идентификатор ресурса. См. "Получение списка ресурсов". }, "type": { "id": "${id}" // идентификатор типа коммуникации из справочника Webitel, обязательное. Див. "Получение списка типов коммуникации". } } ], "expire_at": "${expire_at}", // указывает время, когда удалить абонента с прозвона (Unix time) "min_offering_at": "${min_offering_at}", // указывает время начала обзвона абонента. Timestamp во временной зоне UTC. "name": "${name}", // имя абонента, обязательное. "priority": 0, // приоритет абонента в рамках очереди. Чем больше число, тем выше приоритет обзвона абонента. "timezone": { "id": "${id}" // идентификатор временной зони (справочник на странице Webitel). См. "Получение списка временных зон" }, "variables": { // дополнительные переменные по клиенту, которые будут отображаться оператору при приеме звонка. "additionalProp1": "${additionalProp1}", "additionalProp2": "${additionalProp2}", "additionalProp3": "${additionalProp3}" } } ], "queue_id": "${queue_id}" // идентификатор очереди, в которую загружаются абоненты. } |
1.2. Получение списка временных зон.
https://swagger.webitel.com/#/CalendarService/CalendarService_SearchTimezones
1.3. Получение списка корзин.
https://swagger.webitel.com/#/BucketService/BucketService_SearchBucket
1.4. Получение списка типов коммуникации.
1.5. Отмена прозвона абонента дайлером.
https://swagger.webitel.com/#/MemberService/MemberService_PatchMember
...
Другие параметры заполнять не нужно.
2. Инициация ручного исходящего звонка из CRM (Click-to-call)
https://swagger.webitel.com/#/CallService/CallService_CreateCall
...
Code Block | ||||
---|---|---|---|---|
| ||||
{ "destination": "${agent_id}", // номер назначения, обязательное. "from": { "extension": "${extension}" // внутренний номер оператора, обязательное. См. "Получение списка операторов". }, "params": { "disable_auto_answer": true, // выключает автоподнятие трубки. Если передать параметр, то дополнительно оператору нужно будет принять у Workspace. "variables": { // дополнительные переменные по клиенту, которые могут использоваться для статистики. "additionalProp1": "${additionalProp1}", "additionalProp2": "${additionalProp2}", "additionalProp3": "${additionalProp3}" } } } |
3. Управление навыками операторов.
3.1. Получение списка операторов.
https://swagger.webitel.com/#/AgentService/AgentService_SearchAgent
3.2. Получение списка навыков Webitel.
https://swagger.webitel.com/#/SkillService/SkillService_SearchSkill
3.3. Получение навыков оператора.
https://swagger.webitel.com/#/AgentSkillService/AgentSkillService_SearchAgentSkill
Обязательные параметры:
- идентификатор оператора.
3.4. Добавление навыка оператору.
https://swagger.webitel.com/#/AgentSkillService/AgentSkillService_CreateAgentSkill
...
Code Block | ||||
---|---|---|---|---|
| ||||
{ "agent_id": "${agent_id}", // идентификатор оператора. См. "Получение списка операторов" "capacity": 0, // потенциал (уровень владения навыком). Возможные значения: 0-100 "enabled": true, // состояние навыка (он может быть включен/выключен) "skill": { "id": "${id}" // идентификатор навыка из справочника Webitel. См. "Получение списка навыков Webitel" } } |
3.5. Удаление навыка оператора.
https://swagger.webitel.com/#/AgentSkillService/AgentSkillService_DeleteAgentSkill
...
- идентификатор оператора;
- идентификатор навыка у оператора (См. "Получение навыков оператора")
3.6. Редактирование навыка оператора.
https://swagger.webitel.com/#/AgentSkillService/AgentSkillService_PatchAgentSkill
...
Code Block | ||||
---|---|---|---|---|
| ||||
{ "agent_id": "${agent_id}", // идентификатор оператора "capacity": 0, // потенциал (уровень владения навыком). Возможные значения: 0-100 "enabled": true, // состояние навыка (он может быть включен/выключен) "id": "${id}", // идентификатор навыка оператора, который редактируется "skill": { "id": "${id}", // идентификатор навыка из справочника Webitel. См. "Получение списка навыков Webitel". Если заполнено, то поточный навык буде заменен. } } |
4. Постобработка.
4.1. Управление постобработкой.
https://swagger.webitel.com/#/MemberService/MemberService_AttemptCallback
...
Code Block | ||||
---|---|---|---|---|
| ||||
{ "agent_id": "${agent_id}", // идентификатор оператора "attempt_id": "${attempt_id}", // идентификатор попытки дозвона дайлера, по которой передается результат постобработки. Получается из RabbitMQ "description": "${description}", // комментарий, оставленный оператором при постобработке звонка "display": true, // отвечает за прикрепление номера отображения к этому абоненту "exclude_current_communication": true, // при значении true на текущий способ связи больше не будет звонков "expire_at": "${expire_at}", // указывает время, когда удалить абонента с прозвона (Unix time) "min_offering_at": "${min_offering_at}", // timestamp значение конкретного времени перезвона дайлером в таймзоне UTC. Календарь дайлера имеет более высокий приоритет. Если указанное здесь время не входит в рабочее время дайлера, то повторная попытка будет сделана в рабочее время с наиболее высоким приоритетом. "status": "${status}", // статус попытки "variables": { "additionalProp1": "${additionalProp1}", "additionalProp2": "${additionalProp2}", "additionalProp3": "${additionalProp3}" } } |
5. Другое.
5.1. Получение списка очередей.
https://swagger.webitel.com/#/QueueService/QueueService_SearchQueue
6. История звонков.
6.1. Подключение к базе данных Webitel.
В случае разворачивания Webitel On-Site, получение данных по звонкам и операторам возможно через подключение к БД Webitel (PostgreSQL 14).
Ссылка на описание структуры БД: Database SDK
6.2. Получение истории звонков.
https://swagger.webitel.com/#/CallService/CallService_SearchHistoryCall
...
Далее по идентификатору файла можно получить конкретный файл.
6.3. Получение записей по id файлов.
GET https://:WEBITEL_SERVER/api/storage/recordings/:FileID/stream?access_token=:TOKEN
...
- :FileID - идентификатор файла, полученный с CallService_SearchHistoryCall;
- :TOKEN - токен.
6.4. Поиск звонков по значению переменной.
GET https://:WEBITEL_SERVER/api/calls/history?page=1&size=10&number=110&variables[Company]=eb0b368c39305630464fa34c2af0e45f
...