Případová studie

Jak jsme do SaaS platformy přidali AI asistenta — aniž bychom ji rozbili

Malý SaaS tým měl přetíženou podporu a funkci, kterou uživatelé nemohli najít. Toto je upřímný příběh o tom, jak jsme AI asistenta dostali přímo do jejich produktu — co fungovalo, co jsme zahodili a které číslo se nakonec pohnulo.

Have a nice dayHave a nice day11 min čtení
Jak jsme do SaaS platformy přidali AI asistenta — aniž bychom ji rozbili

Každý SaaS tým, se kterým mluvíme, dříve či později nahlas vysloví tutéž větu: „Měli bychom sem dát AI asistenta.“ Někdy je to tlak od představenstva, někdy spuštění produktu konkurence, někdy je to opravdové. Zajímavá není nikdy samotná myšlenka — tu má skoro každý. Zajímavá je propast mezi tou větou a funkcí, na kterou se skuteční uživatelé opravdu spolehnou. Toto je příběh jednoho týmu, který ji překonal, a nevzhledných rozhodnutí, jež ho tam dovedla.

Malá poznámka, než začneme: klienta jsme anonymizovali a čísla zaokrouhlili. Jde o malou, ziskovou B2B SaaS firmu — pod dvacet lidí — která prodává nástroj na workflow provozním týmům. Změnili jsme dost detailů, abyste je nepoznali, ale tvar projektu je přesně takový, jaký se odehrál. Čísla jsou ilustrativní, ne auditovaná; raději vám ukážeme vzorec, než abychom nastrojili graf.

Sepisujeme to, protože projekt je téměř dokonalým příkladem toho, jak tyhle věci ve skutečnosti probíhají. Nešlo to tak, jak sliboval úvodní kick-off deck. Šlo to lépe — ale jen proto, že jsme byli ochotní smazat první verzi.

Situace: dva problémy v jednom kostýmu

Když se zakladatel poprvé ozval, požadavek byl jednoduchý: „Chceme v aplikaci AI chatbota.“ Tak začíná většina projektů a tam se také většina z nich tiše pokazí. „AI chatbot“ není cíl, je to tvar. Naším prvním úkolem tedy bylo zjistit, jaký problém měl chatbot vyřešit — a jestli to byl vůbec jeden problém.

Nebyl. Pod tím jedním požadavkem seděly dvě zcela odlišné bolesti. Ta první byla zátěž podpory: dvoučlenný tým péče o zákazníky se topil v opakujících se tiketech — „jak tohle vyexportuji“, „kde je nastavení pro tamto“, „proč se mi nespustil report“. Zhruba 60 % příchozích tiketů byly dotazy, na které už někde v nápovědě odpověď existovala. Ta druhá bolest byla tišší a dražší: aktivace. Jejich produkt měl skutečně silnou funkci pohřbenou tři kliknutí hluboko, kterou skoro nikdo sám neobjevil. Uživatelé, kteří ji našli, zůstávali roky. Ti, kdo ji nenašli, odešli během prvních dvou měsíců.

Stejný kostým, dva problémy. A táhly na různé strany. Podpůrný bot chce dotazy odrážet a jít z cesty. Aktivační asistent chce konverzace zahajovat a postrkovat lidi k věcem, na které se neptali. Kdybychom postavili „AI chatbota“ bez rozdělení, postavili bychom něco, co obě práce dělá špatně.

“„AI chatbot“ je tvar, ne cíl. První týden projektu jsme strávili zjišťováním, jaký problém nám ve skutečnosti platí za vyřešení.”
— náš vedoucí projektu v úvodních poznámkách
Náčrt na tabuli, kde se jeden mlhavý rámeček „AI chatbot“ dělí na dvě jasně popsané cesty — „odklánění podpory“ vlevo a „aktivace funkce“ vpravo — s lepicími lístky a šipkami z fixy, v malé startupové kanceláři
Prvním výstupem nebyl kód. Bylo to zjištění, že se pod jedním požadavkem skrývaly dva různé problémy.

Zúžení na něco, co jsme dokázali dokončit

Tváří v tvář dvěma problémům je pokušení postavit velkolepého asistenta, který od prvního dne zvládne obojí. Tým jsme z toho vymluvili. Ne proto, že by vize byla špatná, ale protože šestiměsíční „asistent na všechno“ je přesně ten typ projektu, který dorazí pozdě, dopadne fádně a na další dva roky každého znervózní z AI.

Tak jsme vybrali jeden. Zvolili jsme nejprve odklánění podpory, ze tří nudných, ale rozhodujících důvodů. Mělo jasný, měřitelný cíl — objem tiketů. Používalo obsah, který už existoval — jejich nápovědu a minulé tikety. A kdyby to podávalo slabý výkon, ztráta by byla malá: uživatel, který nedostal dobrou odpověď, prostě udělal to, co dělal doteď, a založil tiket. Nízké riziko, rychlá zpětná vazba, poctivá metrika. To je pokaždé dobrá první AI funkce.

Aktivační asistent nezmizel — zaparkovali jsme ho na papíře s jasnou poznámkou: fáze dvě, až se osvědčí vyhledávací vrstva. To jediné rozhodnutí projekt nejspíš zachránilo. Dalo týmu cílovou pásku, na kterou skutečně dosáhl v týdnech místo čtvrtletí.

První prototyp, který jsme postavili — a smazali

Tady je část, kterou většina případovek vynechává. Náš první funkční prototyp byl, mírně řečeno, špatný. Udělali jsme to zjevné: napojili jsme články nápovědy na velký jazykový model, přidali chatovací okno a nechali uživatele klást dotazy. V demu to vypadalo kouzelně. V reálném testování se to rozpadlo velmi konkrétním a velmi poučným způsobem.

Model se sebejistě mýlil. Na dotaz ohledně nastavení, které bylo před půl rokem přejmenováno, vesele vymyslel starou cestu v menu. Na dotaz ohledně funkce z vyššího tarifu vysvětlil, jak ji používat — zákazníkovi, který se k ní nedostal. Každá odpověď zněla autoritativně, což ty chybné dělalo horšími, než kdyby žádná odpověď nebyla. Podpůrný bot, který zdvořile lže, tikety nesnižuje; vytváří vzteklejší.

Mohli jsme to přelepit vylaďováním promptů. Místo toho jsme udělali něco, co působilo jako krok zpět a ukázalo se být celou hrou: první prototyp jsme zahodili a přestavěli ho kolem přísného pravidla — asistent smí odpovídat jen ze zdrojů, které umí odcitovat, a jinak musí říct „nevím“.

Ilustrace rozděleného rozhraní: vlevo chatová odpověď s červenou výstražnou ikonou, která dává sebejistou, ale vymyšlenou odpověď, vpravo tentýž dotaz zodpovězený zeleným zaškrtnutím, krátkou odpovědí se zdrojem a záložním tlačítkem „nejsem si jistý — kontaktujte podporu“
Verze jedna zněla skvěle a lhala. Verze dva odpovídala méně, citovala zdroje a víc se jí důvěřovalo.

Co jsme skutečně postavili

Verze, která šla ven, byla záměrně skromná v tom, o co se pokoušela, a přísná v tom, jak se chovala. Pod kapotou to byl asistent ukotvený ve vyhledávání: když se uživatel na něco zeptal, systém nejprve prohledal kurátorovanou, aktuální znalostní bázi a pak požádal model, aby odpověděl pouze z toho, co našel, s odkazem zpět na zdroj. Žádný zdroj, žádná sebejistá odpověď — jen čisté předání člověku.

Nejvíc práce odvedla tři návrhová rozhodnutí a ani jedno není vzrušující. To je právě ono — nudná rozhodnutí bývají ta, která rozhodnou, jestli se AI funkci důvěřuje, nebo se tiše vypne.

Ukotvení místo chytrosti

Každá odpověď byla svázaná se skutečným, aktuálním dokumentem. Víc času jsme strávili čištěním a strukturováním znalostní báze než laděním modelu. Nevzhledné, a zdaleka nejpákovější práce na projektu. Průměrný model nad výborným, dobře udržovaným obsahem porazí skvělý model nad zastaralým chaosem.

Elegantní předání

Když si asistent nebyl jistý, nehádal. Řekl to a nabídl cestu k člověku na jedno kliknutí — s sebou nesl kontext konverzace, takže uživatel se nikdy nemusel opakovat. Kontraintuitivně to lidi přimělo botovi víc důvěřovat: asistent, který přiznává své meze, působí poctivě, a spoléhali na něj u snadných 60 % právě proto, že u těžkých 40 % ustoupil stranou.

Vědomý toho, kdo se ptá

Protože žil uvnitř produktu, asistent znal tarif uživatele, jeho roli a to, kde se v aplikaci nachází. Nikdy tak nevysvětloval funkci, ke které uživatel neměl přístup, a mohl říct „tlačítko, které hledáte, je na obrazovce, na které už jste“. Ta znalost produktu je skutečnou výhodou vestavěného asistenta oproti generickému chatbotovi přišroubovanému na marketingový web.

  1. 1
    Vyčistili a strukturovali znalostní bázi
    Prošli jsme každý článek nápovědy, zabili zastaralé a zbytek otagovali podle tarifu a funkce. Byl to první týden a byl to nejdůležitější týden.
  2. 2
    Postavili vyhledávací vrstvu
    Nejprve vyhledávání, pak odpověď. Model viděl jen prověřený, aktuální obsah — a měl pokyn odmítnout cokoli, co nedokázal ukotvit ve zdroji.
  3. 3
    Napojili kontext produktu
    Propojili jsme asistenta s tarifem, rolí a aktuální obrazovkou uživatele, aby odpovědi byly na míru a nikdy neukazovaly na funkce, které uživatel nemohl použít.
  4. 4
    Navrhli poctivé záložní řešení
    Cestu „nejsem si jistý — tady je člověk“ jsme postavili jako plnohodnotnou funkci, s předáním celého kontextu konverzace týmu podpory.
  5. 5
    Nasadili 10 % uživatelů za příznakem
    Tiše jsme to nasadili na výsek účtů, dva týdny sledovali reálné konverzace, opravili, co se rozbilo, a pak nasazení rozšířili.

Výsledky — a ten, který nás překvapil

Poté, co byl asistent zhruba tři měsíce v provozu pro všechny, byl obraz jasný. Dáme vám zaokrouhlená, ilustrativní čísla — směr je důležitější než desetinná místa.

MetrikaPředPoZměna
Opakující se tikety podpory~100/týden~45/týdenZhruba polovina odkloněna
Medián doby první odpovědi~5 hodinTéměř okamžitě u běžných dotazůZ hodin na sekundy
Zaměření týmu podporyVětšinou opakující se dotazyVětšinou složité, hodnotné případyLepší využití dvou lidí
Míra „neumím odpovědět“ u asistenta—~20 % (předáno lidem)Poctivá, ne skrytá
Zhruba tam, kde se věci ustálily po třech měsících, ve srovnání s výchozím stavem před spuštěním. Čísla jsou zaokrouhlená a ilustrativní.

Číslo podpory bylo to, které jsme slíbili, a splnilo se: o něco víc než polovina opakujících se tiketů prostě přestala chodit a dvoučlenný tým dostal svůj týden zpátky na případy, které opravdu potřebovaly člověka. Dobrý výsledek, přesně podle rozsahu.

Ale výsledek, který zakladatele skutečně překvapil, byl ten, na který jsme vůbec neoptimalizovali. Protože asistent celý den odpovídal na dotazy „jak udělám X“, přirozeně uživatele stále navigoval k té pohřbené, návykové funkci — té spojené s udržením. Aktivačního asistenta jsme ještě nepostavili. Podpůrný bot tiše dělal výsek jeho práce jako vedlejší efekt, jen tím, že byl užitečný a znal produkt. Noví uživatelé funkci nacházeli o týdny dřív než dřív.

“Vydali jsme nástroj na podporu. Ukázalo se, že je to onboardingový nástroj v hávu nástroje na podporu — což je přesně důvod, proč fáze dvě dostala zelenou.”
— z tříměsíčního přehledu
Čistý editoriální spojnicový graf na obrazovce notebooku, kde týdenní tikety podpory klesají zhruba na polovinu během tří měsíců, a v pozadí stoupá druhá slabá čára označená „objevování funkce“, sledováno přes rameno oddechnutého zakladatele
Metrika, kterou jsme slíbili, se pohnula podle plánu. Slabá druhá čára — objevování funkce — je ta, kterou nikdo nečekal.

Co bychom řekli dalšímu týmu

Pokud jste SaaS tým, který zírá na tutéž větu „měli bychom přidat AI asistenta“, pár věcí z tohoto projektu se dobře zobecňuje daleko za jeho hranice.

  • Rozdělte problémy dřív, než budete stavět. „AI chatbot“ skoro vždy skrývá dvě nebo tři odlišné úlohy, které chtějí odlišný návrh.
  • Začněte případem, kde vás špatná odpověď stojí nejméně. Odklánění podpory je téměř dokonalý první tah; záložním řešením je status quo.
  • Vyhraďte většinu úsilí na obsah, ne na model. Ukotvení v čistých, aktuálních datech je to, co dělá asistenta důvěryhodným.
  • Udělejte z „nevím“ funkci, ne selhání. Poctivé předání buduje důvěru, díky které se uživatelé spolehnou na části, které bot dělá dobře.
  • Nasaďte nejprve za příznakem malému výseku. Reálné konverzace vás naučí věci, které vás žádné demo nikdy nenaučí.

Uvažujete o AI funkci ve svém produktu?

Nejtěžší část je zřídkakdy model — je to vymezit věc tak, aby dorazila ven a získala důvěru. Pomáháme SaaS a softwarovým týmům zjistit, co má skutečně smysl stavět, a pak to postavíme. První rozhovor vás nestojí nic než čas.

Podívejte se, jak stavíme AI funkce

Časté dotazy

Jak dlouho tento projekt trval?
Od kick-offu k plnému nasazení to bylo zhruba tři měsíce, včetně prototypu, který jsme zahodili, a etapového vydání za příznakem funkce. Takováto zaměřená první AI funkce je obvykle otázkou týdnů až pár měsíců, ne roku — pokud udržíte úzký rozsah. Co rozstřelí termíny, je snaha postavit „asistenta na všechno“ hned první den.
Potřebujeme k přidání AI asistenta obrovské množství dat?
Ne. U asistenta podpory jsou „data“ většinou obsah nápovědy a minulé tikety, které už máte. Práce není nasbírat víc — je to vyčistit a strukturovat to, co existuje, aby asistent mohl své odpovědi ukotvit v něčem přesném a aktuálním. Většina týmů je překvapená, kolik použitelného materiálu už má k dispozici.
Nebude AI asistent dávat zákazníkům špatné odpovědi?
Bude, pokud to nenavrhnete opačně. Naprosto nejdůležitějším rozhodnutím v tomto projektu bylo zakázat asistentovi odpovídat na cokoli, co nedokázal svázat se skutečným zdrojem, a dát mu čistý způsob, jak říct „nejsem si jistý, tady je člověk“. Postavený takto spolehlivě odpovídá snadné většině a u zbytku ustoupí stranou — což je přesně to, co si získává důvěru uživatelů.
Máme to postavit sami, nebo přizvat pomoc?
Fungovat může obojí, ale režim selhání je stejný: podcenění toho, jak moc výsledek závisí na nevzhledné přípravné práci — čištění obsahu, vyhledávání, pojistky, poctivé záložní řešení — spíš než na modelu samotném. Pokud má váš tým čas to udělat pečlivě, skvělé. Pokud ne, právě to je ta část, kde vám zkušený partner ušetří jeden dva smazané prototypy.
Jaká je rozumná první AI funkce pro SaaS produkt?
Vyberte tu, kde vás špatná odpověď stojí nejméně a kde je metrika zřejmá. Odklánění podpory sedí na obojí: záložním řešením je prostě to, co uživatelé dělali dřív, a objem tiketů umíte měřit přímo. Až se to osvědčí a získá důvěru, vysloužíte si právo pustit se do případů s vyšší sázkou, jako je onboarding, aktivace nebo vedení v produktu.
Have a nice day
Have a nice day
Redakce

Have a nice day je softwarové studio, které pomáhá malým a středním firmám s digitalizací — automatizace, umělá inteligence a software na míru, který funguje v každodenním provozu, ne jen na slidech.

Související služby