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ä.

employee 1.png

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.

employee 36.png

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.

employee 4.png

Lopputuloksena tuleva työntekijä saa sähköpostin.

employee 37.png

Kaikki kunnossa. Puuttuu ainoastaan itse botti.

Power Virtual Agentin luominen

Siirrytään https://powervirtualagents.microsoft.com/en-us/ sivustolle ja aloitetaan kokeilu (Try Preview).

employee 6.png

Kirjaudutaan Office 365 -tunnuksilla ja luodaan (Create) botti.

employee 7.png

Annetaan botille vielä nimi.

employee 8.png

Loimme juuri yhteen tenanttimme ympäristöistä botin. Se näyttää tältä.

employee 9.png

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).

employee 10.png

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).

employee 11.png

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)

employee 12.png

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.

Näyttökuva 2019-11-10 kello 11.49.27.png

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.

employee 14.png

Tallennamme käyttäjän antaman avaimen muuttujaan, joten luodaan sellainen (Add variable).

Annetaan muuttujalle nimi.

employee 15.png

Ja näin käyttäjän vastaus on tallennettu muuttujaan.

employee 16.png

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!

employee 17.png

Avataan solution ja lisätään uusi Flow (New -> Flow).

employee 18.png

Flow:n käynnistimenä (trigger) tulee olla HTTP-pyynnön saapuminen (When a HTPP request is received).

employee 19.png

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.

employee 20.png

Annettu salasana on väärä, mikäli yhtään riviä ei löytynyt. Vaihdetaan tällöin muuttujan arvoksi Ei (No).

employee 38.png

Paluuviestissä kerrotaan, oliko käyttäjän syöttämä salasana kelvollinen (isFound = Yes/No).

employee 39.png

Valmista!

Flow:n kutsuminen botista

Lisätään keskustelun seuraavaksi vaiheeksi toiminto (action). Poimitaan toiminnoksi juuri luomamme Flow (check secret).

employee 23.png

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.

employee 24.png

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).

employee 25.png

Mikäli Flow:n palauttama arvo (isFound) on ”No”, pahoitellaan tilannetta käyttäjälle ja lopetetaan keskustelu.

employee 26.png

Muussa tapauksessa kysytään käyttäjältä vielä hänen sukunimensä. Vastaus tallennetaan uuteen muuttujaan  (lastname).

employee 27.png

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.

employee 28.png

Lisätään luotu Flow keskustelupolkuun. Mikäli salasana ja sukunimi eivät täsmää, päättyy keskustelu. Muussa tapauksessa jatketaan.

employee 29.png

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).

employee 30.png

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.

employee 31.png

Puhelimesta kysytään ainoastaan toivottu malli. Käyttäjä voi myös jatkaa nykyisen puhelimen käyttöä, jolloin hänelle ei tilata uutta.

employee 32.png

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.

employee 33.png

Botissa tallennus näyttää tältä.

employee-34.png

Tallennuksen jälkeen kiitetään, ohjataan kontrolli valmiseen aiheeseen (Confirmed Success) ja lopetetaan.

employee 35.png

Miltä valmis botti näyttää?

Kello on niin paljon, ettemme rakenna julkista verkkosivustoa bottiamme varten.

Kokeillaan sitä demosivustolla (Deploy -> Demo website).

employee 40.png

Bottimme demosivustolla.

article employee50.png

Keskustelu botin kanssa etenee näin.

 

 

Ja tiedot tallentuvat nätisti työntekijälle.

Näyttökuva 2019-11-10 kello 11.30.56.png

 

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.