Jak můžeme pomoci?

Call Flow: VIP linka podpory s ověřením volajícího

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.