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

  1. Sähköpostista pitää siirtyä toiseen sovellukseen suorittamaan joku pikkuinen toimenpide
  2. Ilmoitusten epäyhtenäinen visuaalinen ilme

Turha siirtyminen

Ilmoitukset sisältävät tyypillisesti vähän tietoa sekä linkin varsinaiseen työkaluun.

message 1.png

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?

card_1

Hyväksy-painiketta painamalla avautuu kenttä, johon voi syöttää sen pakollisen kommentin.

card_2.png

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

Näyttökuva 2018-3-4 kello 17.46.32.png

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:

Näyttökuva 2018-3-3 kello 20.19.32.png

  1. 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.
  2. Logic Apps 2 lähettää actionable messagen sähköpostilla käyttäjille.
  3. Sähköpostissa (Outlook) käyttäjä valitsee hupparin koon ja painaa Lähetä -painiketta.
  4. 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.
  5. 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.

Näyttökuva 2018-3-3 kello 21.13.24

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.

Näyttökuva 2018-3-3 kello 21.25.59

Lisätään luomamme viestipohja muuttujaan.

Näyttökuva 2018-3-3 kello 21.26.10

Rakennetaan sähköpostiviestin sisältö lisäämällä viestipohjan ympärille tarvittava html-runko.

Näyttökuva 2018-3-3 kello 21.26.26

Lopuksi lähetetään sähköposti.

Näyttökuva 2018-3-3 kello 21.27.49

Tärkeää on korvata viestin CALLBACKURL (osoite johon vastaukset aikanaan palautetaan) parametrina saadulla osoitteella (returnurl).
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()).

nc3a4yttc3b6kuva-2018-3-3-kello-21-37-11.png

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

Näyttökuva 2018-3-4 kello 17.26.19.png

Sähköposti saapuu

Käyttäjien sähköpostiin saapuva viesti näyttää tältä.

Näyttökuva 2018-3-4 kello 17.10.46

Käyttäjän painaessa ”Tilaa”, tekee actionable message  HttpPOST-kutsun painikkeelle määriteltyyn target-osoitteeseen.

Näyttökuva 2018-3-4 kello 17.33.09.png

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.

card ready.png

Tallennus SharePoint listaan

Logic Apps:in onnistunut suoritus näyttää tältä.

Näyttökuva 2018-3-4 kello 17.53.57.png

SharePoint-listalta löytyy tilaukseni.

Näyttökuva 2018-3-4 kello 17.55.48.png

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