Tämän juttusarjan edellisessä osassa käytiin läpi canvas Power Appsin AI-ominaisuuksia. Tällä kertaa käydään vastaavalla tavalla läpi mitä AI-ominaisuuksia flow’n tekijälle on tarjolla.

Kaavan luonti esimerkin avulla

Tämä on edelleen kokeellinen ominaisuus. Mikäli haluat kokeilla sitä, tulee sinun sallia asetuksista kokeellisten ominaisuuksien (Experimental Feature) käyttö.

Luodaan tämän jälkeen uusi flow, joka hakee SharePoint-listalta tilausrivejä (Orders) .

Tarvitsemme tilauksen luojan (Created By) nimikirjaimet. Miten ne saisi muodostettua helpoiten?

Lisätään laadi-toiminto (compose), johon lisätään arvo kunkin tilausrivin kohdalla. Silmukka (Apply to each) on tehtävä etukäteen, jotta seuraavaa vaihe toimii.

Asetetaan laadi-toiminnolle arvo esimerkin avulla (Format data by examples).

Valitaan kenttä, josta nimikirjaimet johdetaan (rivin luojan näyttönimi, Created By DisplayName).

Annetaan esimerkkejä eri näyttönimistä sekä siitä, minkä lopputuloksen (Desired output) kustakin haluamme.

Get expression -painikkeella näemme mitä AI ehdottaa kaavaksi.

Ja sitten se tuhannen taalan kysymys. Ymmärrätkö mitä kaava tekee ja uskallatko käyttää sitä flow’ssasi?

concat(slice(items('Apply_to_each')?['Author/DisplayName'], 0, 1), substring(items('Apply_to_each')?['Author/DisplayName'], add(indexOf(items('Apply_to_each')?['Author/DisplayName'], ' '), 1), 1))

Flow’n tekijän on hyvä ymmärtää, miten muodostettu kaava toimii. Muutoin voi käydä niin että kaava toimii vain osalla syötteistä. Loppujen osalta se tuottaa väärän tuloksen.

Luotu kaavaa tekee siis seuraavan

  • Ottaa merkkijonon ensimmäisen kirjaimen (slice). Eli etunimen ensimmäisen kirjaimen.
  • Hakee merkkijonosta ensimmäisen välilyönnin (indexOf) sijainnin ja lisää (add) siihen yhden. Tämän jälkeen se poimii (substring) kyseisestä kohdasta yhden merkin. Eli sukunimen ensimmäisen kirjaimen
  • Lopuksi nämä kaksi merkkiä yhdistetään (concat)

Uskaltaa tätä käyttää. Apply-painikkeella sen saa lisättyä laadi-toimintoon.

Flow:n luominen luonnollista kieltä käyttäen

Voit myös luoda kokonaisen flow’n pelkästään kuvailemmalla mitä sen tulisi tehdä. Tämä kuulostaa huikealta!

Pyydetään copilotia luomaan meille flow, joka tarkista perjantaisin onko viikon aikana luotu uusia asiakkaita ilman ensisijaista kontaktia. Mikäli on, lähetetään muistutus asiakkaan luoneelle käyttäjälle.

Kehoite on seuraava.

Check every friday if there has been created new accounts in last 7 days without having primary contact. If there is send email notification to the user who has created the account

Copilot muodostaa flow’n hämmästyttävän nopeasti.

Painetaan next. Seuraavaksi tarkastetaan käytettävät yhteydet. Kelpaa meille eli luodaan flow (Create flow).

Copilot luo aivan oikean näköisen flow’n rungon. Vaikuttavaa. Älä hämmenny käyttöliittymästä. Copilot käyttää uutta flow editoria.

Aivan kaikkea se ei kuitenkaan vielä osaa. Suurin osa toimintojen parameteista on tyhjiä. Joudumme vielä määrittelemään

  • milloin flow käynnistyy (perjantaisin)
  • mitkä asiakkaat haetaan Dataversestä (kuluneen viikon aikana luodut)
  • millä perusteella sähköposti lähetetään (ensisijainen kontakti puuttuu)
  • kelle sähköposti lähtee (asiakkaan luoja)
  • mitä sähköpostissa lukee

Tekijälle riittää siis hommaa.

Huomaamme myös joidenkin toimintojen arvojen olevan aivan huuhaata. Ehkä parempikin ettei copilot niitä kaikkia vielä täytä.

Voit jatkaa flow’n työstämistä copilotin avulla. Valitaan Dataversen List rows -toiminto ja pyydetään copilottia asettamaan se hakemaan viimeisen 7 päivän aikana luodut rivit.

for selected list rows action. make it retrieve only accounts created during last 7 days

Myönnän hämmästyneeni. Se osasi tehdä muutoksen.

Jatketaan vielä. Pyydetään copilottia lähettämään muistutusviesti oikealle henkilölle.

For selected send email action. Send an email to the user who created the row. Email subject is "Your action is needed" and in content there is text politely saying that user has created account but forgot to add primary contact on that.

Ja kyllä. Se osaa asettaa sähköpostin vastaanottajan oikeaksi sekä täyttää otsikko- ja sisältökentät.

Flow’n muokkaaminen Copilotin avulla

Copilotin avulla voi muokata mitä tahansa flow’ta (Edit with Copilot).

Jolloin voi nauttia tästä uudesta parhaasta kaverista.

Avataan vielä lopuksi äsken tekemämme flow ja siistitään sitä hieman. Kysytään copilotilta lopuksi, mitä tämä flow itseasiassa tekee.

what this flow does?

Vastaus on hämmentävän hyvä.

”This flow sends an email to the creator of an account in Dynamics 365 if the account was created in the last 7 days and does not have a primary contact. The email reminds the creator to add a primary contact to the account. The flow runs every Friday.”

AI:n hyödyntäminen flow’ssa

Entä miten erilaisia AI-ominaisuuksia voi hyödyntää itse työnkulussa?

Helpointa on käyttä valmiita toimintoja. Sieltä löytyy esimerkiksi AI Builderin perusmallit.

Myös OpenAI:n chatGPT:tä pääsee käyttämään valmiin (Independent Publisher) yhdistimen avulla.

Muistathan ettei OpenAI -palveluun tule lähettää luottamuksellista tietoa sisältäviä kyselyitä.

Sitä varten voit luoda Azureen oman OpenAI -palvelun. Sitä (ja suurinta osaa muista API:en takaa löytyvistä palveluista) voit käyttää flow’n monipuolisimmalla toiminnolla (Http request).

Yhteenveto

Mikäli Power Appsin copilot tuntui hieman torsolta, niin flow’n copilot on aivan eri tasolla. Tämä on ymmärrettävää. Flow:n tekeminen on hyvin rajattua verrattuna sovelluksen tekemiseen canvas Power Appsilla.

Käyttäisinkö näitä ominaisuuksia itse? Rakentamiseen ja muokkaamiseen en. Monimutkaisempiin kaavoihin voisin kyllä hakea inspiraatiota.

Mutta jonkun toisen tekemän flow’n toiminnan selittäminen (what this flow does?) on kyllä toimiva ominaisuus.

Aloittelevalle flow’n tekijälle copilot on varmasti hyödyllinen. Työnalla olevalle flow’lle saa nopeasti luotua rungon. Tekemisen aikana copilottia voi pyytää tekemään siihen sitten muutoksia.

Tekijän vastuulle jää kuitenkin varmistaa, että näin rakennettu flow tekee todellakin sen mitä halutaan.