MS Forms on mainio ja erittäin helpokäyttöinen työkalu. Vastapainona sillä toteutettuja lomakkeita ei voi juurikaan muokata. Se ei ole paras lomaketyökaluista, mutta useimpiin tarpeisiin riittävän hyvä. Varsinkin ottaen huomioon sen hyvät puolet:

  • Hinta (sisältyy M365 lisensseihin)
  • Integroitavuus (Power Automate -> maailma on auki)

Yksi sen puutteista tulee kuitenkin usein vastaan. Vastaaja voi liittää vastaukseen liitetiedostoja ainoastaan mikäli lomake on julkaistu organisaation omille käyttäjille. Tunnistamattomien käyttäjien kanssa vastaukseen ei voi liittää liitetiedostoja.

Haluaisimme kuitenkin kerätä liitetiedostoja myös tunnistamattomilta käyttäjiltä. Käydään tällä kertaa läpi, miten tämän voi toteuttaa.

Tietojen kerääminen MS Forms -lomakkeella

Tehdään MS Forms:lla yksinkertainen lomake, jolla kuka tahansa voi raportoida häiriön (incident). Lomakkeella kysytään haluaako täyttäjä toimittaa tapahtumaan liiittyviä liitetiedostoja.

Lomakkeen kuittausviestissä kerromme käyttäjälle seuraavasta vaiheesta. Mikäli hän halusi liittää tapahtumaan liitetiedostoja, hän saa pian sähköpostia.

Vaihtoehto 1 – Dokumenttikirjaston kansion jakaminen

Tarvitsemme paikan, jonne vastaajien liitetiedostot kerätään. Luodaan SharePoint-sivustolle tarkoitusta varten dokumenttikirjasto (MS Forms Attachments).

Tämän jälkeen luodaan flow, joka käynnistyy käyttäjän lähetettyä lomakkeen (When a new response is submitted). Haetaan ensin käyttäjän lomakkeelle antamat vastaukset (Get response details).

Seuraavaksi tarkistamme halusiko käyttäjä toimittaa myös liitteitä (Condition: I like to deliver attachment(s) related to the incident = Yes).

Mikäli näin oli, luodaan dokumenttikirjastoon uusi kansio jonka nimenä on käyttäjän sähköpostiosoite täydennettynä vastauksen tunnisteella.

Muodostetaan jakamista varten linkki luotuun kansioon (Create sharing link for a file or folder). Linkin käyttö tulee sallia kaikille (Link Scope: Anyone with the link, including anonymous). Asetetaan linkille myös voimassaoloaika (Link Expiration).

Luodulla linkillä vastaaja pääsee pudottamaan tiedostonsa SharePoint dokumenttikirjastoon. Häntä varten luotuun kansioon.

Lopuksi vastaajalle lähetetään sähköpostilla tämä linkki.

SharePoint-sivuston asetukset

Tunnistautumattomat käyttäjät eivät oletusarvoisesti pääse käsiksi dokumenttikirjastoihin. Vaikka heille olisi lähtettetty linkki kaikilla oikeuksilla. Pääsy tulee vielä erikseen sallia. Asetus (External file sharing) tehdään SharePointin hallintakeskuksesta ja se on sivustokohtainen.

Miten se toimii käytännössä?

Lähetetään lomakkeella häiriön tiedot.

Flow luo dokumenttikirjastoon uuden kansion.

Jonka jälkeen flow lähettää asianosaiselle linkin dokumenttien lisäämiseksi.

Näin käyttäjä pääsee lisäämään liitteitä. Hän näkee SharePoint-sivuston, käytetyn dokumenttikirjaston sekä hänelle luodun kansion nimen.

Vaihtoehto 2 – Tiedostojen pyytäminen (request files)

Tiedostoja voi myös pyytää SharePointin ”Pyydä tiedostoja” -ominaisuutta hyödyntäen.

Erona edelliseen tapaan on se, että loppukäyttäjä näkee ainoastaan pyyntöön kirjoittamasi kuvauksen. Hänellä ei ole näkyvyyttä varsinaisen dokumenttikirjastoon.

Tämäkin menetelmä edellyttää tiedostojen jakamisen sallimisen tunnistamattomille käyttäjille SharePoint -sivustolla.

Pyyntöä ei voi tehdä flow’n vakiotoiminnoilla, mutta Nick DeCourcy esitteli youtube videollaan miten linkin voi muodostaa SharePoint API:n avulla.

Korvataan juuri tekemästämme työnkulusta Create sharing link for a file or folder -toiminto Send an HTTP request to SharePoint -toiminnolla.

Toiminnossa käyttämämme body on seuraava:

{
    "request":{
        "createLink":true,
         "settings": {
            "allowAnonymousAccess":true,
            "linkKind":6,
            "expiration": null,
            "restrictShareMembership":false,
            "updatePassword":false,
            "password":"",
            "description":"Thank you for you response. Please drop your attachments to here",
            "role":8,
            "applicationLink":false,
            "limitUseToApplication":false
            }
        }
    }

Toiminto palauttaa pitkän JSON-sanoman.

Se oleellinen (käyttäjälle lähetettävä linkkí) löytyy helpoiten seuraavalla komennolla.

body('Send_an_HTTP_request_to_SharePoint')?['d']?['ShareLink']?['sharingLinkInfo']?['Url']

Päivitetään lopuksi sähköpostissa oleva linkki tähän uuteen.

Valmista!

Miten se toimii käytännössä?

Lomakkeen täyttäjälle tulee edelleen sähköposti lomakkeen täyttämisen jälkeen. Mutta linkistä avautuu seuraava sivu.

Käyttäjä valitsee tiedostot ja lataa ne dokumenttikirjastoon.

Käyttäjä ei pääse selaamaan kansion sisältöä. Hän voi ainoastaan pudottaa sinne tiedostoja.

Tunnus, jonka nimissä pyyntö tehtiin, saa ilmoituksen aina kun uusia tiedostoja on ladattu.

Tiedostojen linkittäminen vastauksiin

Olemme saaneet kerättyä liitetiedostot vastaajilta. Miten liitetiedostot linkitetään varsinaisiin vastauksiin?

Helpoimmalla pääsee, jos vastaukset tallennetaan (flow’lla) jonnekin (Dataverse tai SharePoint). Samalla vastaukseen liitetään linkki kansioon, jossa sen liitetiedostot sijaitsevat.