Ugrás a fő tartalomhoz

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

  1. Bejövő hívás érkezik, vagy kimenő hívás indul.
  2. Az IntraCord szabványos payloadot tartalmazó POST kérést küld a konfigurált endpointnak.
  3. A hívó fél csengőhangot hall, miközben a válaszra vár.
  4. Az API egy initial_context objektumot tartalmazó JSON-objektummal válaszol.
  5. A változók bekerülnek a hívás kezdeti kontextusába.
  6. 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 URLAz IntraCord URL címre küldi a POST kérést.
HitelesítésOpcioná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
eventMindig "call_inbound".
call_inbound.agent_idA workflow (ügynök) azonosítója.
call_inbound.from_numberA hívó telefonszáma (caller_number a kezdeti kontextusból).
call_inbound.to_numberA 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:

  1. Nyissa meg a workflow-t, és lépjen a Beállítások elemre.
  2. 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).
  3. 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,
},
},
});
});