Skip to content

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:

HodisaMaydonIzoh
Qo'ng'iroq boshlandicall_startedKiruvchi yoki chiquvchi qo'ng'iroq boshlanganda
Qo'ng'iroq tugadicall_endedQo'ng'iroq to'liq tugaganda
Dial boshlandidial_startedTelefon chalina boshlanganda (ring)
Dial javob berildidial_answeredTelefon ko'tarilganda
Dial tugadidial_endedBir bosqich tugaganda (guruh/queue/user)
Qo'ng'iroq o'tkazildicall_transferredQo'ng'iroq boshqa modulga o'tkazilganda
Qo'ng'iroq saqlandicall_savedQo'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 ​

FieldTypeDescription
statusstringsuccess yoki error
codeintHTTP status kodi
resultarray of WebhookResourceWebhook ro'yxati
messagestringXabar

Example

json
{
  "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:

FieldTypeRequiredDescription
[*].urlstring (URL)YesWebhook manzili
[*].call_startedbooleanYesQo'ng'iroq boshlanganda yuborilsinmi
[*].call_endedbooleanYesQo'ng'iroq tugaganda yuborilsinmi
[*].dial_startedbooleanYesDial boshlanganda yuborilsinmi
[*].dial_answeredbooleanYesDial javob berilganda yuborilsinmi
[*].dial_endedbooleanYesDial tugaganda yuborilsinmi
[*].call_transferredbooleanYesQo'ng'iroq o'tkazilganda yuborilsinmi
[*].call_savedbooleanYesYozuv saqlanganda yuborilsinmi

Example — 1 ta webhook saqlash

json
[
  {
    "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

json
[]

Response ​

FieldTypeDescription
statusstringsuccess yoki error
codeintHTTP status kodi
resultarray of WebhookResourceYangi webhook ro'yxati
messagestringXabar

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 POST metodi, Content-Type: application/json va User-Agent: UtelHttpAgent/1.0 header bilan yuboriladi
  • Tashqi server 10 soniya ichida 2xx javob qaytarishi kerak
  • call_transferred hodisasi ikki xil bo'lishi mumkin: call_blind_transferred va call_attended_transferred