Webhook
Webhook — bu qo'ng'iroq hodisalari yuz berganda tizim tomonidan tashqi URL manzilga avtomatik HTTP POST so'rov yuborilishini ta'minlovchi mexanizm. Bu orqali uchinchi tomon tizimlar (CRM, bot, monitoring va boshqalar) real-time qo'ng'iroq hodisalaridan xabardor bo'lishi mumkin.
Misol: Qo'ng'iroq boshlanganda https://myapp.com/webhook manziliga event ma'lumotlari yuboriladi.
Hodisalar (Events)
Quyidagi hodisalar uchun webhook sozlanishi mumkin:
| Hodisa | Maydon | Izoh |
|---|---|---|
| Qo'ng'iroq boshlandi | call_started | Kiruvchi yoki chiquvchi qo'ng'iroq boshlanganda |
| Qo'ng'iroq tugadi | call_ended | Qo'ng'iroq to'liq tugaganda |
| Dial boshlandi | dial_started | Telefon chalina boshlanganda (ring) |
| Dial javob berildi | dial_answered | Telefon ko'tarilganda |
| Dial tugadi | dial_ended | Bir bosqich tugaganda (guruh/queue/user) |
| Qo'ng'iroq o'tkazildi | call_transferred | Qo'ng'iroq boshqa modulga o'tkazilganda |
| Qo'ng'iroq saqlandi | call_saved | Qo'ng'iroq yozuvi saqlanganda |
Bir nechta URL
Tizim bir vaqtda bir nechta webhook URL ni qo'llab-quvvatlaydi. Har bir URL uchun alohida hodisalar sozlanishi mumkin.
Muhim
PUT /integration/webhook so'rovi barcha mavjud webhook larni o'chirib, yangi ro'yxat bilan almashtiradi. Mavjud webhook larni saqlab qolish uchun ularni ham request'ga kiritish kerak.
API
Ogohlantirish
Barcha endpointlar Bearer token talab qiladi. Batafsil: Auth
Ro'yxat olish
Endpoint
GET /integration/webhook
Response
| Field | Type | Description |
|---|---|---|
status | string | success yoki error |
code | int | HTTP status kodi |
result | array of WebhookResource | Webhook ro'yxati |
message | string | Xabar |
Example
{
"status": "success",
"code": 200,
"result": [
{
"url": "https://myapp.com/webhook/calls",
"call_started": true,
"call_ended": true,
"dial_started": false,
"dial_answered": false,
"dial_ended": false,
"call_transferred": false,
"call_saved": true
}
],
"message": "Ok"
}Saqlash (to'liq almashtirish)
Endpoint
PUT /integration/webhook
DANGER
Ushbu endpoint barcha mavjud webhook larni o'chirib, yuborilgan ro'yxat bilan almashtiradi. Webhook larni o'chirish uchun bo'sh array [] yuborish kifoya.
Request
Request body — WebhookResource array:
| Field | Type | Required | Description |
|---|---|---|---|
[*].url | string (URL) | Yes | Webhook manzili |
[*].call_started | boolean | Yes | Qo'ng'iroq boshlanganda yuborilsinmi |
[*].call_ended | boolean | Yes | Qo'ng'iroq tugaganda yuborilsinmi |
[*].dial_started | boolean | Yes | Dial boshlanganda yuborilsinmi |
[*].dial_answered | boolean | Yes | Dial javob berilganda yuborilsinmi |
[*].dial_ended | boolean | Yes | Dial tugaganda yuborilsinmi |
[*].call_transferred | boolean | Yes | Qo'ng'iroq o'tkazilganda yuborilsinmi |
[*].call_saved | boolean | Yes | Yozuv saqlanganda yuborilsinmi |
Example — 1 ta webhook saqlash
[
{
"url": "https://myapp.com/webhook/calls",
"call_started": true,
"call_ended": true,
"dial_started": false,
"dial_answered": false,
"dial_ended": false,
"call_transferred": false,
"call_saved": true
}
]Example — barcha webhook larni o'chirish
[]Response
| Field | Type | Description |
|---|---|---|
status | string | success yoki error |
code | int | HTTP status kodi |
result | array of WebhookResource | Yangi webhook ro'yxati |
message | string | Xabar |
Webhook payload formati
Barcha webhook so'rovlari {"time": "...", "data": {...}} tuzilishida yuboriladi.
To'liq payload formati
Har bir hodisaning to'liq payload tuzilishi uchun Webhook integratsiyasi bo'limiga qarang.
Developer notes:
- So'rovlar
POSTmetodi,Content-Type: application/jsonvaUser-Agent: UtelHttpAgent/1.0header bilan yuboriladi - Tashqi server 10 soniya ichida
2xxjavob qaytarishi kerak call_transferredhodisasi ikki xil bo'lishi mumkin:call_blind_transferredvacall_attended_transferred