Ugrás a fő tartalomhoz

Webhook hasznos terhek

Az IntraCord aszinkron módon hajtja végre a webhook Node-okat a workflow futtatása után. A cél URL-t, a HTTP-módszert, a fejléceket és a payload template-et közvetlenül a workflow-definícióban konfigurálhatja.


Hogyan működnek a webhookok

  1. A hívás befejeződik (vagy egy futás befejeződik)
  2. Az IntraCord aszinkron módon hajtja végre a workflow bármely webhook Node-ját
  3. A payload template a futtatás környezetével együtt jelenik meg, és JSON POST (vagy a konfigurált metódus) formátumban kerül elküldésre az endpointnak.
  4. A 200-tól eltérő válaszokat a rendszer naplózza, de alapértelmezés szerint nem blokkolja vagy próbálja újra (a retry_config beállításával módosíthatja)

A Payload kontextusváltozói

A következő változók érhetők el a payload_template-ben dupla kapcsos zárójeles szintaxissal (például {{workflow_run_id}}):

VáltozóTípusLeírás
workflow_run_idegészA befejezett futtatás azonosítója
workflow_run_nameStringA futás neve
workflow_idegészA workflow azonosítója
workflow_nameStringA workflow neve
campaign_idegész szám | nullAnnak a kampánynak az azonosítója, amelyhez ez a futtatás tartozik (null az ad-hoc futtatásokhoz)
call_timeStringISO-8601 UTC időbélyeg, amikor a futás létrejött
initial_contexttárgyA kontextus átment a hívás indításakor
gathered_contexttárgyA hívás során Agent Node-ok által kinyert adatok
gathered_context.call_dispositionStringA hívás végeredménye (lásd: Híváselrendezés)
cost_infotárgyHívásköltségek bontása
cost_info.call_duration_secondsszámHívás időtartama másodpercben
annotationstárgyQA elemzés eredményei (ha qa Node van konfigurálva)
recording_urlString | nullNyilvános letöltési URL a hívásfelvételhez
transcript_urlString | nullNyilvános letöltési URL a hívás átiratához

Hívásrendelet

A hívás végeredménye {{gathered_context.call_disposition}} néven érhető el. Megtartja a hívás során beállított diszpozíciót, és visszaáll a hívás befejezésének okára (pl. user_hangup, voicemail_detected, call_transferred, call_duration_exceeded).

Példa payload sablon

{
"run_id": "{{workflow_run_id}}",
"customer": "{{initial_context.customer_name}}",
"outcome": "{{gathered_context.resolution}}",
"disposition": "{{gathered_context.call_disposition}}",
"duration": "{{cost_info.call_duration_seconds}}",
"recording": "{{recording_url}}"
}

Hitelesítés

A webhook kérések a következő hitelesítési módszereket támogatják, tárolt Credentials adatokkal konfigurálva:

TípusLeírás
NONENincs hitelesítés
API_KEYEgyéni fejlécben küldi el a kulcsot (pl. X-API-Key)
BEARER_TOKENKüld: Authorization: Bearer <token>
BASIC_AUTHHTTP alapvető hitelesítés (felhasználónév + jelszó)
CUSTOM_HEADERBármely egyéni fejléc kulcs-érték pár

Webhook fogadása

Az endpointnak:

  • POST kérések elfogadása a Content-Type: application/json segítségével
  • Azonnal (30 másodpercen belül) válaszoljon a 2xx állapotkóddal
  • A duplikált kézbesítések azonnali kezelése (az újrapróbálkozások többször is kézbesíthetik ugyanazt a payloadot)

Minimális példa vevő (Python)

from fastapi import FastAPI, Request

app = FastAPI()

@app.post("/webhook/IntraCord")
async def handle_IntraCord_webhook(request: Request):
payload = await request.json()
run_id = payload.get("run_id")
outcome = payload.get("outcome")
# process the call result...
return {"status": "ok"}

Webhook Node egy workflow-definícióban

A teljes konfigurációs referenciaért lásd a Workflow Definition Schema részt.

{
"id": "webhook-1",
"type": "webhook",
"position": { "x": 600, "y": 0 },
"data": {
"name": "Notify CRM",
"enabled": true,
"http_method": "POST",
"endpoint_url": "https://your-service.com/webhook/IntraCord",
"payload_template": {
"run_id": "{{workflow_run_id}}",
"customer": "{{initial_context.customer_name}}",
"outcome": "{{gathered_context.resolution}}"
}
}
}