Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Приклади запитів на Webitel API

1. Дайлери

1.1. Завантаження абонентів в дайлер

Додати тільки одного учасника: https://swagger.webitel.com/#/MemberService/CreateMember

Додати масив учасників: https://swagger.webitel.com/#/MemberService/CreateMemberBulk

Важливо

  • CRM має зберігати ідентифікатор завантаженого абонента для подальшого використання, наприклад, у разі скасування продзвону.
  • Для відображення назви кошика оператору при вхідному дзвінку у масиві varialbles обов'язково потрібно передавати назву кошика (bucket_name).
  • Для відкриття картки клієнта в CRM за посилання у масиві varialbles обов'язково потрібно передавати повне посилання на карту цього клієнта. Назва змінної - {link}.


Create member
{
  "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. Отримання списків типів комунікації

https://swagger.webitel.com/#/CommunicationTypeService/CommunicationTypeService_SearchCommunicationType

1.5. Відміна прозвону абонента дайлером

https://swagger.webitel.com/#/MemberService/MemberService_PatchMember

Обов'язкові параметри:

  • ідентифікатор черги дайлера
  • ідентифікатор абонента в черзі 

Щоб відмінити продзвін абонента, потрібно відправити запит:

"stop_cause": "cancel"

Щоб очистити попередній результат абонента в списку на продзвін, потрібно відправити запит:

"stop_cause": "null"  (або порожню стрічку)

Інші параметри заповнювати не потрібно.

2. Ініціація ручного вихідного дзвінка з CRM (Click-to-call)

https://swagger.webitel.com/#/CallService/CallService_CreateCall

Для здійснення вихідного дзвінка з CRM оператор повинен мати зареєстрований SIP-телефон і token для виконання запитів.

Create call
{
  "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


Create Agent Skills
{
  "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

Обов'язкові параметри:

  • ідентифікатор оператора
  • ідентифікатор навички в оператора (Див. "Отримання навичок оператора")


Update Agent Skills
{
  "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

Після завершення дзвінка оператор повинен відправити статус обробки дзвінка (постобробка) з CRM в Webitel.

Можливі значення параметра status:

  • success - успішний додзвін. Повторної спроби дозвона не буде.
  • cancel - відмінений. Повторної спроби дозвона не буде.
  • будь-яке інше передане значення (якщо таке потрібно для статистики) буде вважатися системою як статус abandoned.Буде повторна спроба дозвону згідно з налаштуваннями дайлера. 


Attempt Callback
{
  "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


В базі даних в таблиці storage.files зберігається посилання на запис розмови. 

id  |                        name                        |  size   | mime_type  |           properties            |              instance              |                 uuid                 | profile_id |  created_at   | removed | not_exists | domain_id
-----+----------------------------------------------------+---------+------------+---------------------------------+------------------------------------+--------------------------------------+------------+---------------+---------+------------+-----------
   1 | 8183fb7a-65d9-4d4c-bea2-3990f7e742d8_recordFile    |   17136 | audio/mpeg | {"directory""1/2021/5/17/18"} | storage-bsfob4a9rtdoue3mwanooxikpc | 8183fb7a-65d9-4d4c-bea2-3990f7e742d8 |            | 1621264377892 |         |

В полі uuid знаходиться унікальний ідентифікатор дзвінка.

За допомогою HTTP REST API є можливість по UUID дзвінка отримати список всіх зв'язаних файлів (це не тільки записи розмов (масив files)). 

Далі по ідентифікатору файлу можна отримати конкретний файл.

6.3. Отримання записів по ід файлів 

GET https://:WEBITEL_SERVER/api/storage/recordings/:FileID/stream?access_token=:TOKEN

:WEBITEL_SERVER - сервер Webitel.

Обов'язкові параметри:

  • :FileID - ідентифікатор файлу, отриманий з CallService_SearchHistoryCall
  • :TOKEN - токен

6.4. Пошук дзвінків за значенням змінної

GET https://:WEBITEL_SERVER/api/calls/history?page=1&size=10&number=110&variables[Company]=eb0b368c39305630464fa34c2af0e45f

:WEBITEL_SERVER - сервер Webitel.

Обов'язкові параметри:

  • number - номер телефону. Пошук здійснюється по from_number, to_number, destination.
  • Company - назва змінної (метадані)
  • page - сторінка, якщо багато записів
  • size - максимальна кількість записів
  • No labels