Tento scénář ukazuje, jak pomocí Call Flow vybudovat linku podpory, která volajícího automaticky ověří podle telefonního čísla. Pokud číslo není v systému rozpoznáno, vyzve volajícího k zadání PINu – má tři pokusy. Po jejich vyčerpání může požádat podporu o zaslání PINu e-mailem.
Použité komponenty: Počáteční akce · HTTP požadavek · Podmínka · Výzva · Smyčka · Uživatelský vstup · Menu · Odesílatel e-mailu · Přesměrování · Zavěsit hovor
Jak scénář funguje
Při příchozím hovoru ústředna ihned odešle dotaz na externí API s telefonním číslem volajícího. Pokud API zákazníka najde, hovor je okamžitě přepojen do fronty podpory. Pokud ne, volající je vyzván k zadání PINu. Po třetím neúspěšném pokusu může volající požádat podporu o zaslání PINu, nebo hovor ukončit.
Blok 1 – Začátek hovoru a kontrola čísla volajícího
Hovor přichází na číslo +420 530 333 542. Flow okamžitě odešle HTTP dotaz na externí systém, aby zjistil, zda je volající znám. Podle výsledku se hovor buď rovnou přepojí na VIP frontu, nebo pokračuje na zadání PINu.
HTTP požadavek 1 – ověření čísla volajícího
Komponenta odešle GET požadavek na adresu https://testweb.fayn.cz/php?caller_id= s telefonním číslem volajícího. URI se sestavuje funkcí:
FX_CONCATENATE("https://testweb.fayn.cz/php?caller_id=", $Session.ani)
$Session.ani je systémová proměnná obsahující číslo volajícího. Přehled všech systémových proměnných najdete v dokumentaci – Proměnné.
- Typ požadavku: GET
- Typ obsahu: application/json
Podmínka 1 – je číslo v systému?
Jakmile API vrátí odpověď, Podmínka 1 vyhodnotí výsledek pomocí výrazu:
FX_EQUAL(FX_JSON_GET_STRING($HttpRequest1.responseContent, "exist"), "Y")
Funkce FX_JSON_GET_STRING přečte z JSON odpovědi hodnotu pole exist a porovná ji s hodnotou "Y". Více o dostupných funkcích v dokumentaci – Funkce.
Podmínka má dvě větve:
- FX_EQUAL(...) – shoda: číslo bylo nalezeno → hovor se přepojí na frontu 6400 – Operátoři VIP podpory (komponenta Přesměrovat 1). Po ukončení hovoru se automaticky odešle e-mail s informací o proběhlém hovoru (viz níže).
- Bez shody: číslo není v systému → flow pokračuje na Blok 2 (zadání PINu).
Odesílatel e-mailu 1 – notifikace po VIP hovoru
Po úspěšném přepojení a ukončení hovoru se automaticky odešle e-mail na adresu podpora@fayn.cz s informací o proběhlém hovoru.
- Předmět: Proběhlý hovor na VIP lince
- Obsah: Na VIP lince proběhl hovor s číslem
$Session.ani, čas hovoru:{{.EventTime}}
Blok 2 – Zadání a ověření PINu
Pokud číslo volajícího nebylo nalezeno v systému, flow pokračuje na zadání PINu. Sekvence tří komponent je obdobná jako v Bloku 1 – nejprve se sbírá vstup od volajícího, poté se ověří přes API a výsledek vyhodnotí podmínka.
Uživatelský vstup 1 – výzva k zadání PINu
Komponenta přehraje vlastní hlášku CALL_FLOW_pin.wav a čeká na zadání číslic volajícím.
- Konfigurace výzvy: Vlastní hláška – soubor
CALL_FLOW_pin.wav - Časový limit zadávání: 10 sekund
- Časový limit odezvy komponenty: 10 sekund
Hláška volajícímu sdělí, že má zadat zákaznický PIN a potvrdit křížkem. Pokud volající v časovém limitu nic nezadá, pokus se vyhodnotí jako neúspěšný.
HTTP požadavek 2 – ověření PINu
Funguje stejným způsobem jako HTTP požadavek 1 v Bloku 1, pouze místo čísla volajícího předává zadaný PIN. API vrátí JSON odpověď, kterou vyhodnotí následující podmínka.
Podmínka 2 – je PIN správný?
Výraz podmínky je stejné struktury jako v Bloku 1 (FX_EQUAL(FX_JSON_GET_STRING(...),"Y")). Flow se rozdělí na dvě větve:
- Shoda: PIN je správný → hovor se přepojí na frontu VIP podpory.
- Bez shody: PIN je nesprávný → flow pokračuje do Bloku 3 (smyčka s opakováním).
Blok 3 – Opětovná kontrola PINu (smyčka, max. 3×)
Pokud volající zadal v Bloku 2 nesprávný PIN, vstoupí do smyčky, která mu dá ještě 3 další pokusy. Smyčka obsahuje stejnou sekvenci komponent jako Blok 2, ale s odlišnou hláškou – volající je upozorněn, že zadal špatný PIN.
Smyčka 1
- Metoda smyčky: Opakovat, dokud není dosažen pevný počet
- Počet opakování: 3
Uvnitř smyčky jsou tři komponenty:
- Uživatelský vstup 2 – přehraje hlášku
CALL_FLOW_spatny_pin.wav(upozornění na špatný PIN) a čeká na nové zadání. - HTTP požadavek 3 – stejná logika jako HTTP požadavek 2 v Bloku 2, ověří nově zadaný PIN přes API.
- Podmínka 3 – stejná struktura výrazu jako v předchozích blocích:
- Shoda: PIN správný → přepojení na frontu VIP podpory.
- Bez shody: PIN nesprávný → smyčka se opakuje, dokud není dosažen limit 3 pokusů.
Po třetím neúspěšném pokusu smyčka skončí a flow automaticky pokračuje na Blok 4.
Blok 4 – Žádost o zaslání PINu nebo ukončení hovoru
Po vyčerpání všech pokusů flow přehraje hlášku CALL_FLOW_neznam_pin.wav, která volajícímu vysvětlí situaci a nabídne mu možnost požádat podporu o zaslání PINu stisknutím klávesy.
Uživatelský vstup 3
Přehraje hlášku CALL_FLOW_neznam_pin.wav a čeká na stisk klávesy. Hláška volajícímu sdělí například: „Nepodařilo se vám ověření. Stiskněte 1, pokud chcete, aby vám podpora zaslala PIN. Jinak hovor ukončíme."
Podmínka 4 – co volající stiskl?
Podmínka porovná hodnotu proměnné $UserInput3 s klávesou 1. Flow se rozdělí na dvě větve:
- Shoda (stisknuta klávesa 1):
- Odesílatel e-mailu 4 – odešle e-mail podpoře s informací, že volající žádá o zaslání PINu (předmět: Požadavek na zaslání PINu).
- Výzva 2 – přehraje rozlučkovou hlášku
CALL_FLOW_rozlouceni.wav. - Zavěsit hovor 1 – ukončí hovor.
- Bez shody (jakákoliv jiná klávesa nebo vypršení limitu):
- Výzva 1 – přehraje rozlučkovou hlášku
CALL_FLOW_rozlouceni.wav. - Zavěsit hovor 2 – ukončí hovor.
- Výzva 1 – přehraje rozlučkovou hlášku