Microsoftin Power Platform -alusta laajeni jälleen. Uusi työkalu on nimeltään Power Virtual Agents ja se mahdollistaa virtuaalisten (asiakas)palvelijoiden rakentamisen.
Näitä agentteja kutsutaan tuttavallisemmin boteiksi.
Tyypillisesti palvelulla rakennetaan virtuaali agentteja Dynamics 365 -palvelun kylkeen. Lähestytään tällä kertaa Power Virtual Agenttia puhtaasti botti-työkaluna ja tehdään hieman erilainen toteutus.
Esimerkki – Tulevaa työntekijää palveleva botti
Kuvitellaan tilanne, jossa organisaatiolla on ratkaisu uusien työntekijöiden sisääntulo-prosessin hoitamiseen. Alkaen rekrytoinnista ja päättyen perehdytyssuunnitelman läpivientiin.
Kaikki tämä on toteutettu CDS:n päälle hyödyntäen sekä model-driven että canvas appseja.
Haluamme tarjota tulevalle työntekijälle modernin tavan ilmoittaa itsepalveluna toiveensa hänelle hankittavista työkaluista (tietokone/puhelin).
Mikä tähän sopisikaan paremmin kuin botti!
Työntekijälle linkki bottiin
Olemme haastatelleet Timoa ja päättäneet palkata hänet. Tuleva työntekijä näyttää työkalussamme tältä.
Haluamme tiedustella Timon tietokone ja puhelin toiveet hyvissä ajoin ennen ensimmäistä työpäivää. Lähetämme hänelle (Flow:lla) sähköpostin, joka sisältää
- Tervetuloa toivotuksen
- Linkin bottiin
- Salasanan käyttäjän tunnistamiseksi
Työnkulussa luodaan GUID, joka toimii salasanana ja joka tallennetaan tietueelle (update record).
Lopuksi tulevalle työntekijälle lähetetään sähköposti.
Työnkulku käynnistetään model-driven appsin työntekijä-näytöltä. Sen voi yhtä hyvin käynnistää automaattisesti n päivää ennen työntekijän aloituspäivää. Tai jossain määritellyssä kohdassa itse prosessia.
Lopputuloksena tuleva työntekijä saa sähköpostin.
Kaikki kunnossa. Puuttuu ainoastaan itse botti.
Power Virtual Agentin luominen
Siirrytään https://powervirtualagents.microsoft.com/en-us/ sivustolle ja aloitetaan kokeilu (Try Preview).
Kirjaudutaan Office 365 -tunnuksilla ja luodaan (Create) botti.
Annetaan botille vielä nimi.
Loimme juuri yhteen tenanttimme ympäristöistä botin. Se näyttää tältä.
Botin rakentaminen on yksinkertaista
- Luodaan erilaisia aiheita (Topic) tyyliin ”Printterin kanssa ongelmia”
- Käyttäjän esittäessä kysymyksiä, yrittää botti tunnistaa mihin aiheeseen kysymys liittyy.
- Mikäli botti tunnistaa aiheen, alkaa se suorittamaan aiheelle määriteltyä keskustelupolkua.
Aiheen luominen
Luodaan käyttötarkoitustamme varten uusi aihe (Topics -> New topic).
Annetaan aiheelle nimeksi New employee (1) ja kirjoitetaan lyhyt kuvaus (2).
Seuraavaksi määritellään ilmaisut (trigger phrases), jotka käynnistävät aiheen läpikäynnin. Syötetään useampi, mutta tärkein on ”New employee” (3), jota kehotamme sähköpostissa uutta työntekijää käyttämään.
Tallennetaan aihe, jonka jälkeen siirrymme kuvaamaan, mitä aiheen sisäinen keskustelupolku etenee (Go to authoring canvas) (4).
Aiheen keskustelupolun rakentaminen
Seuraavaksi määrittelemme miten keskustelu botin kanssa etenee. Sivun alareunassa näemme käytössä olevat työkalut
- End with survey (Keskustelu päättyy ja käyttäjältä pyydetään palautetta miten palvelutapahtuma sujui)
- Bot says (Botti sanoo jotain)
- User says (Käyttäjä sanoo jotain)
- Action (Käynnistetään Flow)
- Go to (Siirrytään toiseen aiheeseen)
- Transfer to agent (Siirretään keskustelu asiakaspalvelijalle, eli ihmiselle)
Toteutamme seuraavan keskustelun
- Käyttäjältä kysytään salasana, joka sähköpostissa on tullut
- Haetaan salasanaa vastaava käyttäjä CDS:stä
- Kysytään käyttäjältä sukunimi ja tarkistetaan että salasanan ja annettu sukunimi täsmäävät
- Kysytään työntekijän tietokone- ja puhelintoiveet
- Tallennetaan valinnat CDS:ään
- Toivotetaan hyvää päivänjatkoa
Aloitetaan tervehtimällä käyttäjää ja pyytämällä häntä syöttämään salainen avain.
Lisätään käyttäjän vastaus (User Responses) joka voi olla kahdenlainen.
- Käyttäjä valitsee yhden vaihtoehdoista, jotka lisätään manuaalisesti rakennusvaiheessa (Add user response)
- Käyttäjä vastaa vapaalla tekstillä ja vastaus tallennetaan muuttujaan (Output responses to:)
Käytämme tällä kertaa jälkimmäistä vaihtoehtoa.
Tallennamme käyttäjän antaman avaimen muuttujaan, joten luodaan sellainen (Add variable).
Annetaan muuttujalle nimi.
Ja näin käyttäjän vastaus on tallennettu muuttujaan.
Flow:n lisääminen botin käyttöön
Seuraavaksi tarkistetaan, onko käyttäjän antama salasana oikea. Tämä onnistuu Flow:lla.
Mutta miten saan Flow:n botin käyttöön?
Jotta botti näkee Flow:n, tulee se luoda saman ympäristön Common Data Service Default Solution:iin!
Avataan solution ja lisätään uusi Flow (New -> Flow).
Flow:n käynnistimenä (trigger) tulee olla HTTP-pyynnön saapuminen (When a HTPP request is received).
Määritellään pyynnön body-osan schemaksi seuraava
{ "type": "object", "properties": { "secret": { "type": "string" } } }
Eli Flow saa yhden parametrin (secret).
Alustetaan Flow:ssa muuttuja, joka kertoo löytyikö salasanaa vastaavaa työntekijää CDS:stä. Oletusarvoksi laitetaan kyllä (yes).
Tämän jälkeen haetaan CDS:stä kaikki rivit, joiden salasana-kenttä vastaa parametrina saatua salasanaa.
Annettu salasana on väärä, mikäli yhtään riviä ei löytynyt. Vaihdetaan tällöin muuttujan arvoksi Ei (No).
Paluuviestissä kerrotaan, oliko käyttäjän syöttämä salasana kelvollinen (isFound = Yes/No).
Valmista!
Flow:n kutsuminen botista
Lisätään keskustelun seuraavaksi vaiheeksi toiminto (action). Poimitaan toiminnoksi juuri luomamme Flow (check secret).
Asetetaan Flow:n parametriksi käyttäjän kirjoittama salasana (secret).
Työkalu luo Flow:n paluuarvolle automaattisesti uuden muuttujan (isFound), jolloin voimme käyttää paluuarvoa keskustelussamme.
Haarautuminen
Mikäli käyttäjän antama salaisuus oli kelvollinen, jatkamme etenemistä. Muussa tapauksessa homma loppuu tähän.
Lisätään lauseke (expression).
Mikäli Flow:n palauttama arvo (isFound) on ”No”, pahoitellaan tilannetta käyttäjälle ja lopetetaan keskustelu.
Muussa tapauksessa kysytään käyttäjältä vielä hänen sukunimensä. Vastaus tallennetaan uuteen muuttujaan (lastname).
Luodaan toinen Flow, joka tarkistaa onko käyttäjän antama sukunimi ja secret pari oikea. Flow palauttaa myös tätä paria vastaavan CDS tietueen id:n. Tarvitsemme sitä jatkossa.
Lisätään luotu Flow keskustelupolkuun. Mikäli salasana ja sukunimi eivät täsmää, päättyy keskustelu. Muussa tapauksessa jatketaan.
Puhelimen ja tietokonen valinta
Vihdoin pääsemme kysymään tulevalta työntekijältä, mitä laitteita hän haluaisi työssään käyttää.
Lisätään kysymys (Bot Says), jonka jälkeen kerätään käyttäjältä vastaus (User Responses). Tällä kertaa käyttäjän valitsee vaihtoehdoista, jotka lisätään Add user response -toiminnolla.
Käyttäjän vastaus tallennetaan muuttujaan (Computer).
Valinnan jälkeen kysytään käyttäjältä onko hänellä erityisiä toiveita tietokoneen suhteen. Mikäli on, kysytään mitä ne ovat.
Ja tallennetaan vastaus jälleen muuttujaan.
Puhelimesta kysytään ainoastaan toivottu malli. Käyttäjä voi myös jatkaa nykyisen puhelimen käyttöä, jolloin hänelle ei tilata uutta.
Kyselyleikkiä voisi jatkaa loputtomiin. Tyydytään tällä kertaa kuitenkin tähän.
Tietojen tallentaminen
Lopuksi käyttäjän vastaukset tallennetaan CDS:ään Flow:lla.
Botissa tallennus näyttää tältä.
Tallennuksen jälkeen kiitetään, ohjataan kontrolli valmiseen aiheeseen (Confirmed Success) ja lopetetaan.
Miltä valmis botti näyttää?
Kello on niin paljon, ettemme rakenna julkista verkkosivustoa bottiamme varten.
Kokeillaan sitä demosivustolla (Deploy -> Demo website).
Bottimme demosivustolla.
Keskustelu botin kanssa etenee näin.
Ja tiedot tallentuvat nätisti työntekijälle.
Botin rakennetta saattaa olla jutun perusteella vaikea hahmottaa. Näinkin yksinkertaisesta botista tulee kohtuullisen pitkä. Oheisella videolla näet sen alusta loppuun.
Yhteenveto
Power Virtual Agent on mainio tuote bottien rakentamiseen.
Hyvää
- Rakentaminen todella helppoa
- Flow:ta hyödyntämällä voit botista käsin tarkastaa, hakea ja lisätä tietoa
- Voit siirtyä aiheesta (topic) toiseen. Tämä mahdollistaa pitkien keskustelupolkujen jakamisen pienempiin kokonaisuuksiin. Voit myös toteuttaa uudelleenkäytettäviä aiheita, kuten vakiotyyliisä keskustelun lopetuksia
- Keskustelun voi siirtää ihmiselle
Huonoa
- Käyttäjälle esitettävät vastausvaihtoehdot ovat staattisia. Vaihtoehtoina ei voi käyttää esim. Flown palauttamia arvoja.
- Botin ulkoasua ei voi mitenkään muokata
Power Virtual Agent on esikatseluvaiheessa, eikä sen hinnoittelusta ole vielä tietoa.