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
- A hívás befejeződik (vagy egy futás befejeződik)
- Az IntraCord aszinkron módon hajtja végre a workflow bármely
webhookNode-ját - 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. - 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_configbeá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ípus | Leírás |
|---|---|---|
workflow_run_id | egész | A befejezett futtatás azonosítója |
workflow_run_name | String | A futás neve |
workflow_id | egész | A workflow azonosítója |
workflow_name | String | A workflow neve |
campaign_id | egész szám | null | Annak a kampánynak az azonosítója, amelyhez ez a futtatás tartozik (null az ad-hoc futtatásokhoz) |
call_time | String | ISO-8601 UTC időbélyeg, amikor a futás létrejött |
initial_context | tárgy | A kontextus átment a hívás indításakor |
gathered_context | tárgy | A hívás során Agent Node-ok által kinyert adatok |
gathered_context.call_disposition | String | A hívás végeredménye (lásd: Híváselrendezés) |
cost_info | tárgy | Hívásköltségek bontása |
cost_info.call_duration_seconds | szám | Hívás időtartama másodpercben |
annotations | tárgy | QA elemzés eredményei (ha qa Node van konfigurálva) |
recording_url | String | null | Nyilvános letöltési URL a hívásfelvételhez |
transcript_url | String | null | Nyilvá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ípus | Leírás |
|---|---|
NONE | Nincs hitelesítés |
API_KEY | Egyéni fejlécben küldi el a kulcsot (pl. X-API-Key) |
BEARER_TOKEN | Küld: Authorization: Bearer <token> |
BASIC_AUTH | HTTP alapvető hitelesítés (felhasználónév + jelszó) |
CUSTOM_HEADER | Bármely egyéni fejléc kulcs-érték pár |
Webhook fogadása
Az endpointnak:
POSTkérések elfogadása aContent-Type: application/jsonsegí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}}"
}
}
}