Sähköposti. Sitä vihaa kaikki. Yammerin piti päästää meidät pälkähästä, mutta eipä päästänytkään. Toivon todella Teams:in tulevan ja pelastavan meidät.
Mutta sähköposteihin on pesiytynyt aivan oma viestityyppinsä, erilaiset ilmoitukset (notifications). Ironista kyllä, nämä sähköpostin tappajat (Yammer ja Teams) tykkäävät lähettää ilmoituksia sähköpostilla.
Ymmärrän sähköposti-ilmoitusten käytön hyvin. Toimistotyöntekijät käyttävät lukuisia sovelluksia. Tuskin kukaan kyttää jatkuvasti matkalaskusovellusta. Jotenkin käyttäjille pitää ilmoittaa asian x odottavan toimenpidettäsi tai asian y olevan valmis.
Sähköposti on valikoitunut universaaliksi tavaksi lähettää sovelluksista ilmoituksia käyttäjille.
Minua kuitenkin risoo näissä ilmoituksissa kaksi asiaa
- Sähköpostista pitää siirtyä toiseen sovellukseen suorittamaan joku pikkuinen toimenpide
- Ilmoitusten epäyhtenäinen visuaalinen ilme
Turha siirtyminen
Ilmoitukset sisältävät tyypillisesti vähän tietoa sekä linkin varsinaiseen työkaluun.
Esimerkiksi matkalaskun hyväksyminen on useimmissa tapauksissa triviaalia. Tarvitsee tietää vain laskun tekijä, aihe ja summa.
Miksi ihmeessä hyväksyntä-painiketta täytyy mennä painamaan varsinaiseen työkaluun?
Minimaalinen toimenpide katkaisee muun tekemisen. Parhaimmillaan linkki ei avaa suoraan oikeaa laskua, vaan ohjaa minut kirjautumissivulle, josta etenen kirjautumisen jälkeen määrätietoisesti kohti oikeaa laskua. Vain painaakseni hyväksymispainiketta, jota päätin painaa heti sähköpostin nähtyäni.
Viestien visuaalinen ilme
Osa ilmoituksista tulee valmisratkaisuista, jolloin niiden ulkoasuun ei voi juurikaan vaikuttaa. Mutta ne itse tehdyt ja teetetyt ratkaisut…
Olen tuhonnut lukematta sähköposteja, jotka ovatkin olleet toimenpiteitä vaativia ilmoituksia.
Vaikka viestin visuaaliseen puoleen olisikin panostettu, yrityksen sisäisten automaatti-ilmoitusten ulkoasua on harvemmin standardoitu. Järjestelmistä tulee siistejä, mutta keskenään täysin erinäköisiä viestejä.
Visuaalisen ilmeen yhtenäistämisellä luodaan laatuvaikutelmaa. Samalla loppukäyttäjät ymmärtävät heti viestin nähdessään sen olevan organisaation sisäisen ilmoituksen.
Ratkaisu
Hieman yllättäen näihin ongelmiin on jo ratkaisu (mikäli organisaatiosi käyttää Office 365 -palvelua). Ratkaisu on toiminnallinen viesti (Actionable message).
Nimensä mukaisesti actionable messaget ovat viestejä, joihin voi sisältää toiminnallisuutta. Mitä jos hyväksyttävästä matkalaskusta tulisi seuraavanlainen viesti?
Hyväksy-painiketta painamalla avautuu kenttä, johon voi syöttää sen pakollisen kommentin.
Käyttäjä painaa Lähetä-painiketta ja se on siinä. Ei siirtymistä toiseen sovellukseen. Ei kirjautumista. Ei oikean laskun etsimistä. Ei hermojen menettämistä.
Tämä on sitä työn tehostamista.
Kuva on muuten aivan oikeasta sähköpostista.
Tuntikirjausjärjestelmän generoima muitutusviesti voisi näyttää tältä.
Katsotaan hieman tarkemmin, miten näitä mystisiä toiminnallisia viestejä oikein tehdään.
Esimerkki – Hupparitilauksen toteuttaminen
Toteutetaan ratkaisu, jolla kerätään työntekijöiden hupparitilaukset. Normitoteutus olisi rakentaa Forms-lomake, joka upotetetaan intranettiin. Me teemme kuitenkin tilauslomakkeen actionable messagella. Kokonaisuus menee suurinpiirtein näin:
- Logic Apps 1 on manuaalisesti käynnistettävä työnkulku, joka kutsuu http:llä Logic Apps 2:sta. Näin saadan Logic Apps 1:een webhook, jonne aikanaan palautetaan käyttäjän vastaus.
- Logic Apps 2 lähettää actionable messagen sähköpostilla käyttäjille.
- Sähköpostissa (Outlook) käyttäjä valitsee hupparin koon ja painaa Lähetä -painiketta.
- Vastaus lähetetään Azuressa sijaitsevaan Functions:iin. Se varmentaa vastaukseen generoidun tokenin, selvittää kuka vastauksen on lähettänyt sekä käyttäjän kortilla tekemät valinnat.
- Keräämänsä tiedot functions lähettää Logic Apps 1:ssä olevan http-kutsun paluuarvoksi. Samalla se kertoo sähköpostissa odottavalle viestille toimenpiteen olevan valmis.
Josko tämä vähän selkeytyisi kun aletaan toteuttamaan sitä…
Viestipohja
Aloitetaan rakentamalla viestipohja. Tämä onnistuu helposti Microsoftin mainiolla MessageCard Playground:lla.
Viesti on käytännössä JSON-muotoinen kuvaus.
Viestin lähettävä työnkulku
Tämä työnkulku lähettää kortin käyttäjille. Se käynnistyy http-kutsulla.
Lisätään luomamme viestipohja muuttujaan.
Rakennetaan sähköpostiviestin sisältö lisäämällä viestipohjan ympärille tarvittava html-runko.
Lopuksi lähetetään sähköposti.
replace(variables('EmailBody'),'CALLBACKURL', triggerBody()?['returnurl'])
Tilauksen käsittelevä työnkulku
Seuraavaksi teemme hupparitilauksen käsittelevän työnkulun. Se käynnistyy ajastetusti sopivalla hetkellä. Kutsutaan ensimäiseksi äsken tekemäämme sähköpostin lähettävää Logic Appsia. Parametrina välitämme webhookin tämänkertaisen suorituskerran paluuosoitteen (listCallbackUrl()).
Vastaus tulee aikanaan JSON muodossa webhookin bodyssa. Parsitaan JSON niin voimme luoda helposti SharePoint listalle uuden rivin saamillamme arvoilla (respondent = vastaaja ja choice = hupparin koko).
Sähköposti saapuu
Käyttäjien sähköpostiin saapuva viesti näyttää tältä.
Käyttäjän painaessa ”Tilaa”, tekee actionable message HttpPOST-kutsun painikkeelle määriteltyyn target-osoitteeseen.
Vastauksen käsittelevä Functions
Valitettavasti actionable message ei voi lähettää vastaustaan suoraan Logic Appsille. Tätä varten täytyy rakentaa oma palvelu, jonka toteutin Azuren Functions:lla. Tästä löytyy hyvä ohje SharePoint Wonderings -blogista, joten ohitan yksityiskohdat.
Palvelu tarkistaa actionable messagen tekemästä HttpPOST-kutsusta tokenin, selvittää kenen sähköpostista se on tullut sekä lukee header-tiedoista käyttäjän tilaaman hupparin koon. Nämä se lähettää Logic Appsissa odottavaan webhookiin. Lopuksi se lähettää actionable messagelle kuittausviestin, joka näytetään loppukäytäjälle. Näin käyttäjä tietää että tapahtuma on käsitelty.
Tallennus SharePoint listaan
Logic Apps:in onnistunut suoritus näyttää tältä.
SharePoint-listalta löytyy tilaukseni.
Kaikki tämä eikä hupparin tilaaja koskaan poistunut sähköpostista!
Yhteenveto
Actionable messaget ovat useissa tilanteissa lyömätön tapa toteuttaa ilmoitusviestit. Niitä käytetään kuitenkin aika vähän. Miksi?
Actionable messaget toimivat ainoastaan Office 365 -palvelun sähköpostissa. Eivätkä silloinkaan iOS eikä Android -laitteiden Outlook-sovelluksissa (vielä).
Aion silti ottaa nämä omaan työkalupakkiini. Tosin nämä ovat jo vanhaa tekniikkaa. On aika kääntää katseet actionable messageiden seuraajaan, mukautuviin kortteihin (Adaptive cards).