Hívás előtti adatlekérés
A hívás előtti adatlekérés lehetővé teszi, hogy a híváskontextust külső adatokkal gazdagítsa, mielőtt a Voice Agent beszélni kezdene. Ha engedélyezve van a Hívás indítása Node-on, az IntraCord egy HTTP-kérést küld az API-nak, amint egy hívás indul. A válasz betöltése közben a hívó visszacsengő hangot hall. Amint az adatok megérkeznek, a rendszer egyesíti a hívás kezdeti kontextusába, és sablonváltozóként elérhetővé válik a promptokban és üdvözletekben.
Hogyan működik
- Bejövő hívás érkezik, vagy kimenő hívás indul.
- Az IntraCord szabványos payloadot tartalmazó POST kérést küld a konfigurált endpointnak.
- A hívó fél csengőhangot hall, miközben a válaszra vár.
- Az API egy
initial_contextobjektumot tartalmazó JSON-objektummal válaszol. - A változók bekerülnek a hívás kezdeti kontextusába.
- A Voice Agent a
{{variable_name}}szintaxison keresztül teljes hozzáféréssel indul a lekért adatokhoz.
Konfiguráció
Nyissa meg a Hívás indítása Node Editort, és bontsa ki a Speciális beállítások elemet. Kapcsolja be az Hívás előtti adatlekérést, és konfigurálja:
| Mező | Leírás |
|---|---|
| Endpoint URL | Az IntraCord URL címre küldi a POST kérést. |
| Hitelesítés | Opcionális credential a kérelem hitelesítéséhez. Támogatja az API-kulcsot, a vivőtokent, az alapvető hitelesítést és az egyéni fejlécet. |
Kérési formátum
Az IntraCord egy POST kérést küld a következő JSON-adattartalommal:
{
"event": "call_inbound",
"call_inbound": {
"agent_id": 123,
"from_number": "+12137771234",
"to_number": "+12137771235"
}
}
| Mező | Leírás |
|---|---|
event | Mindig "call_inbound". |
call_inbound.agent_id | A workflow (ügynök) azonosítója. |
call_inbound.from_number | A hívó telefonszáma (caller_number a kezdeti kontextusból). |
call_inbound.to_number | A hívott telefonszám (called_number a kezdeti kontextusból). |
A Content-Type fejléc beállítása application/json. Ha Credential bejegyzést konfigurált, akkor a megfelelő hitelesítési fejléc is szerepel.
Várható válaszformátum
Az API-jának egy JSON objektumot kell visszaadnia egy 2xx állapotkóddal. A hívási környezetbe beillesztendő változókat a initial_context kulcson belül kell elhelyezni:
{
"call_inbound": {
"initial_context": {
"customer_name": "Jane Doe",
"account_status": "active",
"loyalty_tier": "gold",
"open_tickets": 2
}
}
}
A initial_context-t a legfelső szintre is elhelyezheti:
{
"initial_context": {
"customer_name": "Jane Doe",
"account_status": "active"
}
}
A válasz beérkezése után bárhol hivatkozhat ezekre az értékekre, ahol a sablonváltozók támogatottak:
- Üdvözlet:
Hello {{customer_name}}, thank you for calling! - Kikérő:
The customer is a {{loyalty_tier}} member with {{open_tickets}} open support tickets.
Beágyazott változók
Ha a initial_context beágyazott objektumokat tartalmaz, akkor pontjelöléssel érheti el őket:
{
"call_inbound": {
"initial_context": {
"customer": {
"name": "Jane Doe",
"address": {
"city": "Los Angeles"
}
}
}
}
}
Hozzáférés a promptokban {{customer.name}} és {{customer.address.city}} néven.
Időtúllépés
A kérésnek 10 másodperces időtúllépése van. Ha az API nem válaszol ebben az ablakban, a hívás a lekért adatok nélkül folytatódik. Tervezze meg az endpointot úgy, hogy a lehető leggyorsabban válaszoljon, hogy minimalizálja a visszacsengetési hang időtartamát.
Tesztelés teszthívásokkal
Amikor valódi telefonhívás érkezik, a caller_number és called_number kontextusváltozókat a telefonszolgáltató automatikusan beállítja, és a hívás előtti adatlekérési kérelemben from_number és to_number néven szerepel. Ha azonban teszthívást indít – akár webhívást (WebRTC), akár telefonteszthívást a workflow-szerkesztőből –, ezek a változók alapértelmezés szerint nem érhetők el.
A telefonadatok szimulálásához a tesztelés során:
- Nyissa meg a workflow-t, és lépjen a Beállítások elemre.
- A Kontextusváltozók alatt adja hozzá a következő változókat:
caller_number— állítsa be a hívó félként szimulálni kívánt telefonszámot (pl.+12137771234).called_number— állítsa be a tárcsázandó számot (pl.+12137771235).
- Mentse el a beállításokat.
Most, amikor teszthívást kezdeményez (internetes vagy telefonos), ezek az értékek a hívás előtti adatlekérési kérelemben elküldésre kerülnek az endpointnak, lehetővé téve a teljes folyamat tesztelését, mintha valódi bejövő hívás érkezne.
Integrációs példa
Egy egyszerű Node.js endpoint, amely telefonszám alapján keresi meg az ügyfelet:
app.post("/IntraCord/pre-call", async (req, res) => {
const { call_inbound } = req.body;
const customer = await db.customers.findOne({
phone: call_inbound.from_number,
});
if (!customer) {
return res.json({});
}
res.json({
call_inbound: {
initial_context: {
customer_name: customer.name,
account_status: customer.status,
loyalty_tier: customer.tier,
},
},
});
});