Přeskočit obsah

Rozhodovací stromy

Rozhodovací stromy jsou vestavěný chatbot Daktely: provedou zákazníka předdefinovanými otázkami a odpověďmi, umí si vyžádat data z externích API a vytvářet tickety — to vše před spojením zákazníka s operátorem (nebo místo něj).

Rozhodovací stromy jsou dostupné pro webchat, Facebook Messenger, Instagram DM, SMS, Viber a WhatsApp a nastavují se pro každý kanál zvlášť.

Warning

Rozhodovací stromy pro Facebook Messenger, Viber a WhatsApp jsou aktuálně ve fázi Beta.

Rozhodovací stromy si nastavíte pod Spravovat → Směrování → váš kanál → Rozhodovací stromy (např. Spravovat → Směrování → Web chaty → Rozhodovací stromy). Zobrazí se přehled vašich rozhodovacích stromů.

Chcete-li zobrazit diagram rozhodovacího stromu, klikněte na šedé tlačítko Strom ve sloupci Akce.

Chcete-li rozhodovací strom upravit, klikněte na jeho Název. Chcete-li vytvořit nový rozhodovací strom, klikněte na Přidat nový. Otevře se editor rozhodovacího stromu.

Warning

Když upravíte stávající nebo vytvoříte nový rozhodovací strom, klikněte na Uložit a po návratu na přehled rozhodovacích stromů klikněte na tlačítko Aplikovat změny konfigurace v pravém horním rohu.

Tlačítko Aplikovat změny konfigurace v pravém horním rohu

U webchatů se změny na vašem webu projeví až po několika minutách. Pokud chcete nová nastavení vidět ihned, otevřete web v novém okně v anonymním režimu.


Editor rozhodovacího stromu

Editor rozhodovacího stromu zobrazuje diagram jednotlivých rozhodnutí. Když vytváříte nový rozhodovací strom, uvidíte pouze první krok, „Welcome message“. Chcete-li upravit rozhodnutí, vyberte ho kliknutím a poté klikněte na tlačítko upravit v pravé části obrazovky:

Výběr a úprava rozhodnutí v editoru rozhodovacího stromu

Otevře se detail rozhodnutí.

Zadejte Název a Popis (nepovinný) v hlavičce a pak nastavte rozhodnutí. Můžete používat všechny dostupné objekty – doporučujeme projít také dokumentaci templatovacího jazyka.

Přetáhněte položky z Actions, Groups a Targets do rozhodnutí. Doporučujeme u každé položky vyplnit Popis pro lepší orientaci.

Actions

Akce Popis
Request Odeslat dotaz na data z URL. Vyplňte URL adresu, kde jsou vaše data uložena, a pojmenujte objekt, který bude obsahovat přijatá data, abyste je mohli zobrazit v konverzaci.
Send message Poslat v konverzaci zprávu. Zadejte výchozí zprávu, případně překlady do dalších jazyků – u webchatu je jazyk zákazníka určen nastavením jazyka v konektoru, u ostatních kanálů se detekuje automaticky.
Save data Uložit vlastní data pro pozdější použití. Data zadejte do pole Hodnota a do pole Název klíče zadejte klíč, pod kterým data načtete. Např.: Hodnota: 097HNOU93RNidhfsJ77 Název klíče: accessToken Chcete-li data použít ve zprávě nebo dotazu, jednoduše zadejte: {{nazevklice}} v tomto příkladu: {{accessToken}}
Create ticket Zadejte Název ticketu, jeho Kategorii a Komentář.

Groups

Typ Popis
Condition Nastavte podmíněné akce. Nejdříve nastavte parametry podmínky, klikněte na Hotovo a pak přetáhněte další akce do polí v podmínce.
Loop Projít položky pole. Pokud použijete akci Target, Loop skončí.

Targets

Target

  1. Další cíl: zvolte, zda je cílem další rozhodnutí ve stromu (Rozhodnutí), nebo koncový cíl jako např. fronta nebo časová podmínka (Aplikace).

    Pokud jste vybrali:

    • Rozhodnutí – zvolte rozhodnutí z rozbalovacího seznamu nebo, chcete-li vytvořit nové rozhodnutí, klikněte na modré tlačítko plus. Zadejte název nového rozhodnutí. Nové rozhodnutí můžete upravit poté, co dokončíte úpravy současného a vrátíte se zpět do editoru rozhodovacího stromu.
    • Aplikace – zvolte typ cíle (Automatické zprávy, Přerušit, Rozhodovací strom, Fronta, Časová podmínka) a cíl. Dostupné typy cílů se mohou u jednotlivých kanálů lišit.
  2. Provést: zvolte, zda na další cíl pokračovat, jakmile se zákazník dostane k danému rozhodnutí (Ihned), nebo až po jeho interakci (Po interakci klienta).

    Pokud jste vybrali Po interakci klienta, dále zvolte Typ odpovědi:

    • Tlačítko (webchat, WhatsApp a Facebook Messenger): zákazník odpoví na otázky bota pomocí tlačítek. Text tlačítka zadejte do pole níže.
    • Generovaná tlačítka (webchat, WhatsApp a Facebook Messenger): tlačítka se vygenerují z externího zdroje.
    • Vzor: zákazník svou odpověď napíše. Zadejte vzor ohraničený lomítky, kterému musí odpověď zákazníka odpovídat, aby byla vyvolána akce. Např. vzoru /[0-9]{6}/ bude odpověď odpovídat, pokud zákazník zadá alespoň šestimístné číslo. Více informací o vzorech viz Základní syntaxe regulárních výrazů.
    • Similar: zákazník svou odpověď napíše. Zadejte seznam slov, která tuto akci vyvolají, oddělených čárkou.

Warning

Pokud použijete Similar nebo Vzor jako jednu z možností odpovědi, u každé odpovědi se zobrazí přepínač Výchozí odpověď. Zaškrtněte tu odpověď, jejíž akce se má vyvolat, pokud odpověď zákazníka nebude odpovídat žádnému slovu ani vzoru.

Jazykové varianty můžete nastavit u všech kombinací kromě Rozhodnutí-Ihned a Rozhodnutí-Po interakci klienta-Generovaná tlačítka.

Chcete-li nastavit více cílů závislých na odpovědi zákazníka, přidejte další Target.

Tip

Praktické příklady použití jednotlivých možností rozhodovacích stromů najdete v Příkladu rozhodovacího stromu níže.


Příklad rozhodovacího stromu

Zde je uveden příklad rozhodovacího stromu, ve kterém může zákazník požádat o kalkulaci dovolené nebo zjistit stav požadavku a případně do něj přidat další informace. Je vytvořen webchatový konektor s povinnými vstupy Jméno a Email a s rozhodovacím stromem nastaveným jako Další cíl.

Rozhodovací strom si můžete vyzkoušet v praxi na adrese https://miktest.daktela.com/demo/DT.html.

Přehled rozhodovacího stromu:

Přehled ukázkového rozhodovacího stromu se všemi rozhodnutími

Welcome message

V prvním rozhodnutí se zákazník rozhodne, kterou větví stromu se bude pohybovat. Může kliknout na jedno ze dvou tlačítek nastavených v cílech.

Krok Nastavení
Odeslat zprávu Dobrý den, máte u nás už rezervovanou dovolenou, nebo chcete novou kalkulaci?
Cíl Přejít na rozhodnutí: New holiday Provést: Po interakci klienta Typ odpovědi: Tlačítko Odpověď: Nová kalkulace
Cíl Přejít na rozhodnutí: I have a booking Provést: Po interakci klienta Typ odpovědi: Tlačítko Odpověď: Mám rezervaci

New holiday

V tomto rozhodnutí uložíme webchatovou interakci a accessToken uživatele a data použijeme v URL dotazu. Název interakce je zákazníkovo jméno, které vyplnil před zahájením webchatu. Vezmeme ho z odpovědi dotazu a použijeme ho ve zprávě. Veškeré dostupné atributy naleznete v API dokumentaci.

Krok Nastavení Komentář
Uložit data Hodnota: {{lastMessage.interaction}} Název klíče: chatName Ukládáme {{lastMessage.interaction}}, což je unikátní jméno interakce v Daktele, např. web_608144b8b7c1f169851283. Nastavíme název klíče chatName, který nám umožní interakci poté použít jinde.
Uložit data Hodnota: aaa111bbb222 Název klíče: accessToken Ukládáme access token uživatele. To nám ulehčí jeho zadávání v dalších krocích. Uživatelův accessToken naleznete ve Spravovat → Uživatelé → Seznam uživatelů → detail uživatele.
Dotaz URL adresa: https://miktest.daktela.com/api/v6/activitiesWeb/ {{chatName}}.json?accessToken={{accessToken}} Objekt: interaction_response Posíláme dotaz na informace o webchatové interakci dostupné na api/v6/activitiesWeb/. {{chatName}} a {{accessToken}} budou nahrazeny hodnotami uloženými v předchozích dvou krocích, takže dotaz bude vypadat takto: https://miktest.daktela.com/api/v6/activitiesWeb/ web_608144b8b7c1f169851283.json?accessToken=aaa111bbb222 Odpověď jsme nazvali interaction_response. Použijeme ji v dalším kroku.
Odeslat zprávu Dobrá, {{interaction_response.result.title}}, kam chcete jet? Název interakce je zákazníkovo jméno, které vyplnil před zahájením webchatu. Díky načtení z odpovědi na dotaz můžeme odeslat personalizovanou zprávu.
Dotaz URL adresa: https://miktest.daktela.com/api/v6/formFields/destination_option.json?accessToken={{accessToken}} Objekt: destination_list Posíláme dotaz na seznam možností selectboxu ve vlastním poli „Destination options“ dostupném na api/v6/formFields/. Tato pole lze nastavit ve Spravovat → Tickety → Kategorie → Formulář. Odpověď obsahuje seznam destinací, které se v rámci webchatu budou zákazníkům nabízet. Odpověď jsme nazvali destination_list. Použijeme ji v dalším kroku pro vygenerování tlačítek.
Cíl Přejít na rozhodnutí: Create new ticket Provést: Po interakci klienta Typ odpovědi: Generovaná tlačítka Zdroj: {{destination_list.result.items}} Hodnota / Název:{{item.title}} / {{item.title}} Zákazník si kliknutím na tlačítko vybere destinaci dovolené. Tlačítka se generují automaticky ze seznamu možností selectboxu z odpovědi z předešlého kroku. Každá destinace je item a v proměnných lze používat jeho vlastnosti. Část Hodnota v poli Hodnota / Název určuje, co rozhodovací strom odešle jako zprávu webchatu, když na tlačítko zákazník klikne. Část Název určuje text tlačítka. V tomto případě jsou obě proměnné stejné a obsahují pouze názvy destinací: Egypt, Morocco, Tunisia.

Create new ticket

V tomto rozhodnutí použijeme zákazníkovu volbu z minulého rozhodnutí k vytvoření nového ticketu.

Krok Nastavení Komentář
Dotaz URL adresa: (adresa je zde rozdělena na více řádků, ale zadává se samozřejmě vcelku) https://miktest.daktela.com/api/v6/tickets.json? accessToken={{accessToken}}& title={{interaction_response.result.title}}+–+Dovolená+v+{{lastMessage.text}}& category=categories_6080569f6fc48365002493& priority=LOW& stage=OPEN& customFields[destination_option]={{lastMessage.text}}& customFields[email]={{interaction_response.result.email}}& comment=Customer:+{{interaction_response.result.title}}+Destination:+ {{lastMessage.text}}.+Contact:+{{interaction_response.result.email}}.& _method=POST Objekt: new_ticket Používáme metodu POST (na konci dotazu), takže budeme vytvářet nový záznam v seznamu ticketů dostupných na api/v6/tickets.json. - Použijeme access token uložený v New holiday výše. - Název ticketu bude „jméno zákazníka“ – Dovolená v „vybraná destinace“. Obě proměnné se vezmou z New holiday výše. - Kategorii ticketu nastavíme posláním jejího unikátního názvu (povinné pole). - Prioritu ticketu nastavíme na nízkou (povinné pole). - Text předchozí zprávy – vybraná destinace – zapíšeme do vlastního pole Destination. - Emailovou adresu, kterou zákazník zadal a kterou načteme z objektu interaction_response z rozhodnutí New holiday výše, zapíšeme do vlastního pole Email. - V ticketu vytvoříme komentář s použitím dat z předchozí zprávy a z objektu interaction_response. - Objekt: odpověď jsme nazvali new_ticket. Použijeme ji v dalším kroku.
Odeslat zprávu Dobrá volba {{interaction_response.result.title}}! Hned se do toho pustíme a budeme Vás kontaktovat. Informace o Vašem požadavku: Číslo rezervace: {{new_ticket.result.name}}. Destinace: {{new_ticket.result.customFields.destination_option[0]}}. Stav: {{new_ticket.result.stage}}. Poslední změna: {{new_ticket.result.edited}}. Odešleme zprávu, která shrne ticket vytvořený v minulém kroku. Data vezmeme z odpovědi new_ticket.
Cíl Další cíl: Přerušit Provést: Ihned Když zákazník dostane zprávu, chat se ukončí. Konečný cíl rozhodovacího stromu můžete samozřejmě upravit dle potřeby.

I have a booking

Když zákazník v prvním rozhodnutí vybere Mám rezervaci, přejde sem.

Krok Nastavení Komentář
Uložit data Hodnota: {{lastMessage.interaction}} Název klíče:chatName Ukládáme {{lastMessage.interaction}}, což je unikátní jméno interakce v Daktele, např. web_608144b8b7c1f169851283. Nastavíme název klíče chatName, který nám umožní interakci poté použít jinde.
Uložit data Hodnota: aaa111bbb222 Název klíče:accessToken Ukládáme access token uživatele. To nám ulehčí jeho zadávání v dalších krocích. Uživatelův accessToken naleznete ve Spravovat → Uživatelé → Seznam uživatelů → detail uživatele.
Dotaz URL adresa: https://miktest.daktela.com/api/v6/activitiesWeb/ {{chatName}}.json?accessToken={{accessToken}} Objekt: interaction_response Posíláme dotaz na informace o webchatové interakci dostupné na api/v6/activitiesWeb/. {{chatName}} a {{accessToken}} budou nahrazeny hodnotami uloženými v předchozích dvou krocích, takže dotaz bude vypadat takto: https://miktest.daktela.com/api/v6/activitiesWeb/ web_608144b8b7c1f169851283.json?accessToken=aaa111bbb222 Odpověď jsme nazvali interaction_response. Použijeme ji v dalším kroku.
Odeslat zprávu Dobrá, {{interaction_response.result.title}}, zadejte prosím číslo Vaší rezervace. Název interakce je zákazníkovo jméno, které vyplnil před zahájením webchatu. Díky načtení z odpovědi na dotaz můžeme odeslat personalizovanou zprávu.
Cíl Přejít na rozhodnutí: Ticket Provést: Po interakci klienta Typ odpovědi: Vzor Odpověď: /[0-9]/ Pokud zákazník zadá sadu číslic, přejde na tento cíl. Více informací o tom, jak zadávat vzory, naleznete v Základech syntaxe regulárních výrazů.
Cíl Přejít na rozhodnutí: invalid Provést: Po interakci klienta Typ odpovědi: Vzor Odpověď: /.$/* Pokud zákazník zadá cokoli kromě čísel, přejde sem. Více informací o tom, jak zadávat vzory, naleznete v Základech syntaxe regulárních výrazů. Zákazník poté dostane zprávu, že jeho rezervace neexistuje, a vrátí se na začátek chatu.

Ticket

V tomto rozhodnutí se pokusíme nalézt ticket dle čísla rezervace, které zákazník zadal v minulém rozhodnutí, a pokud se to podaří, vypíšeme detaily ticketu.

Krok Nastavení Komentář
Uložit data Hodnota: {{lastMessage.text}} Název klíče: ticketName Uložíme číslo, které zákazník zadal v předchozím rozhodnutí, a pojmenujeme ho ticketName.
Dotaz URL adresa: https://miktest.daktela.com/api/v6/tickets/ {{ticketName}}.json?accessToken={{accessToken}} Objekt:check_ticket Pošleme dotaz na informace o ticketu dostupné na api/v6/tickets/. {{ticketName}} je číslo zadané zákazníkem a uložené v předchozím kroku. Objekt: odpověď jsme nazvali check_ticket. Použijeme ji v dalším kroku.
Podmínka Pokud {{check_ticket.result}} ISNOTNULL: - Odeslat zprávu 1 - Odeslat zprávu 2 - Cíl 1 - Cíl 2 Jinak: - Odeslat zprávu 3 - Cíl 3 Pokud odpověď na dotaz z předchozího kroku obsahuje data, odešlou se 2 zprávy a vytvoří 2 cíle. V opačném případě se odešle jiná zpráva a vytvoří jiný cíl. Viz kroky níže.
Odeslat zprávu 1 Číslo rezervace: {{check_ticket.result.name}}. Destinace: {{check_ticket.result.customFields.destination_option[0]}}. Stav: {{check_ticket.result.stage}}. Poslední změna: {{check_ticket.result.edited}}. Uživatel: {{check_ticket.result.user.title}}. Další požadavky: {{check_ticket.result.customFields.additional_requests[0]}}. Když je ticket nalezen, odešle se o něm zpráva obsahující data z odpovědi check_ticket.
Odeslat zprávu 2 Chcete k požadavku něco přidat?
Cíl 1 Přejít na rozhodnutí: Add request Provést: Po interakci klienta Typ odpovědi: Tlačítko Odpověď: Ano Zákazník přejde na další rozhodnutí.
Cíl 2 Další cíl: Přerušit Provést: Po interakci klienta Typ odpovědi: Tlačítko Odpověď: Ne Chat se ukončí.
Odeslat zprávu 3 Tuto rezervaci se nám bohužel nepodařilo nalézt. Tato zpráva se odešle, když zadaný ticket není nalezen.
Cíl 3 Přejít na rozhodnutí: I have a booking Provést: Ihned Zákazník znovu přejde na rozhodnutí I have a booking, kde může číslo rezervace zadat znovu.

Add request

V tomto rozhodnutí může zákazník zadat, co chce k požadavku přidat.

Krok Nastavení Komentář
Odeslat zprávu Co chcete k rezervaci přidat?
Cíl Přejít na rozhodnutí: Add to ticket Provést: Po interakci klienta Typ odpovědi: Vzor Odpověď: /.$/* Když zákazník odešle jakoukoli zprávu, přejde na další rozhodnutí.

Add to ticket

V tomto rozhodnutí se zákazníkův další požadavek přidá k jeho případným předchozím požadavkům.

Krok Nastavení Komentář
Dotaz URL adresa: https://miktest.daktela.com/api/v6/tickets/{{ticketName}}.json? accessToken={{accessToken}}& customFields[additional_requests]= {{check_ticket.result.customFields.additional_requests[0]}}+ {{lastMessage.text}}&_method=PUT Objekt: update_ticket Aktualizujeme ticket dostupný na api/v6/tickets/ pomocí metody PUT (na konci dotazu). Pokud v ticketu již byla nějaká data v poli Additional requests, nechceme je přepsat. Proto nejdříve do tohoto pole zadáme data, která tam již byla v odpovědi check_ticket v rozhodnutí Ticket – {{check_ticket.result.customFields.additional_requests[0]}}. Poté zadáme text předchozí zprávy s dalším požadavkem – {{lastMessage.text}}. Objekt: odpověď jsme nazvali update_ticket. Použijeme ji v dalším kroku.
Odeslat zprávu Číslo ticketu: {{update_ticket.result.name}}. Destinace: {{update_ticket.result.customFields.destination_option[0]}}. Další požadavky: {{update_ticket.result.customFields.additional_requests[0]}} Stav: {{update_ticket.result.stage}}. Poslední změna: {{update_ticket.result.edited}}. Uživatel: {{update_ticket.result.user.title}}. Zákazníkovi opět pošleme shrnutí ticketu s daty obdrženými v odpovědi update_ticket.
Cíl Další cíl: Přerušit Provést: Ihned Chat je ukončen.