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