Siirry sisältöön
Suomi – Suomi
  • Ehdotuksia ei ole, koska hakukenttä on tyhjä.

Rakenna muutosloki webhookien avulla

Esimerkki siitä, miten voit rakentaa Humasta muutoslokin Webhooks-integraation avulla.

⚠️ Tärkeää!
Tämä on esimerkki, eikä Huma takaa sen toimivuutta.

Suosittelemme, että Webhooks-integraation määrittämisessä on apuna kehittäjä, jolla on tarvittava tekninen osaaminen.

Webhookia voi käyttää monenlaisissa tilanteissa, ja tämä on vain yksi esimerkki. Voit lukea lisää webhookeista ja siitä, mitä tuetaan, täältä.

🔔🛡️ Muista tallentaa tällainen Excel-taulukko oikeilla käyttöoikeuksilla GDPR:n mukaisesti, koska se sisältää henkilötietoja.

 

 

Mikä muutosloki on?

Muutosloki antaa sinulle luettelon käyttäjien profiileihin Humassa tehdyistä muutoksista. Näin pysyt selvillä siitä, mitä tietoja on muutettu ja milloin.

Esimerkki:
Työntekijä päivittää tilinumeronsa tai lisää henkilötunnuksensa – nämä muutokset lähetetään tietoineen muutoslokiin.


Tässä esimerkissä Humassa tehtyjen muutosten vastaanottajana on Microsoft Excel. Monet muutkin palvelut tukevat webhookeja – esimerkiksi Google Drive, Slack, Teams +++ – mutta tässä esimerkissä käytämme Microsoft Exceliä. 

Vaihe 1: Luo Zapier*-tili

Siirry Zapieriin ja luo tili. Tässä esimerkissä tarvitset Professional-tilauksen, jotta käytössäsi ovat tarvittavat ominaisuudet.

*Zapier on verkkopohjainen automaatiotyökalu, jonka avulla käyttäjät voivat yhdistää eri verkkosovelluksia ja automatisoida niiden välisiä työnkulkuja ilman ohjelmointitaitoja. Sillä voi luoda "Zappeja", eli automatisoituja työnkulkuja, jotka käynnistävät toimintoja yhdessä sovelluksessa toisessa sovelluksessa tapahtuvien tapahtumien perusteella. Zapier tukee tuhansia eri sovelluksia, mukaan lukien suositut sovellukset kuten Gmail, Trello, Slack ja monet muut.

Vaihe 2: Määritä Zap ja luo trigger

Zap sisältää eri vaiheita, joiden avulla voit lähettää tietoja eri järjestelmien välillä.

  1. Valitse "Create zap".
  2. Valitse "Webhooks by Zapier".
  3. Valitse "Catch Raw Hook" kohtaan "Event" ja valitse Continue.
  4. Kopioi Webhook URL.

Vaihe 3: Määritä integraatio Humassa

  1. Avaa Huma-tilisi.
  2. Siirry kohtaan "Järjestelmäasetukset" > "Integraatiot".
  3. Valitse "Webhooks" ja valitse oikean yläkulman Yhdistä-painike. 
  4. Liitä "Webhook URL" kenttään "Target URL".
    Suosittelemme lisäämään tietoturvan parantamiseksi myös client secretin tai access tokenin.
  5. Ota käyttöön "Send profile data".
    Tässä esimerkissä vastaanotamme vain profiilitietojen muutokset.
  6. Lue käyttöehdot ja valitse "Yhdistä".

  7. Webhook URL -osoitteen ja Huma-organisaatiosi välillä on nyt aktiivinen yhteys.
  8. Valitse "Vie" ja siirry seuraavaan vaiheeseen.

 

Vaihe 4: Testaa trigger ja luo action

  1. Palaa Zapieriin ja testaa trigger. Sinulla pitäisi nyt olla pyyntö, joka näyttää suunnilleen tältä:

  2. Jatka ja lisää "Code by Zapier" kohtaan Action ja "Run Javascript" kohtaan Event


  3. Siirry kohtaan "Set up action", lisää `rawBody` ja valitse Input Data -kohtaan pyyntö `1. Raw body`.



  4. Liitä seuraava Javascript-koodi:
    const body = JSON.parse(input.rawBody)

    const IDFieldNames = ["id", "email", "employmentId"]

    const filterForNonIDField = (key) => IDFieldNames.includes(key) === false

    output = body.users.map((user) => {

        let fullAddress = ""

        if (user.address && user.address.line1) {

          fullAddress = `${user.address.line1}, `

          if (user.address.line2) {

            fullAddress += `${user.address.line2}, `

          }

          fullAddress += `, ${user.address.postalCode} ${user.address.city}, ${user.address.country}`

        }


        let fullBankAccount = ""

        if (user.bankAccount) {

          if (user.bankAccount.iban) {

            fullBankAccount = `IBAN: ${user.bankAccount.iban} BIC: ${user.bankAccount.bic}`

          } else if (user.bankAccount.number) {

            fullBankAccount = `${user.bankAccount.country} ${user.bankAccount.number}`

          }

        }


        let supervisor = ""

        if (user.supervisor && user.supervisor.email) {

          supervisor = `${user.supervisor.email}`

        }


        let nationalIdNumber = []

      let passportNumber = []

        if (user.identifications) {

          for (const identification of user.identifications) {

            if(identification.type === "national") {

              nationalIdNumber.push(identification.value+ ' '+identification.country)

            }

            if(identification.type === "passport") {

              passportNumber.push(identification.value+ ' '+identification.country)

            }

          }

      }
          

        let action = "event"

        let updatedFields = []

        if (body.topic === "users-export") {

          action = "Export users"

        //return {} //don't add rows when exporting users

        } else if (body.topic === "users-create") {

          action = "Add user"

        } else if (body.topic === "users-delete") {

          action = "Remove user"

        } else if (body.topic === "users-update") {

          action = "Update user"

          const properties = Object.keys(user)

          updatedFields = properties.filter(filterForNonIDField)

        }

        return {

          topic: body.topic,

          action, //human readable even (what kind of action is this)

          date: new Date().toLocaleString('no-NO', {timeZone: "Europe/Oslo"}),

          ...user,   //Include everything from the object

          phone: (user.phone || "").replace(/\s/g, ""),  //Remove white space

          fullAddress,

          fullBankAccount,

          fullName: (user.familyName && `${user.familyName}, ${user.givenName}`) || '',

        updatedFields: updatedFields.join(", "),

          supervisor,

          nationalIdNumber: nationalIdNumber.join(", "),

          passportNumber: passportNumber.join(", "),
        
      custom: JSON.stringify(user.custom), //all custom fields are sent to excel as a string
     
      //salary: JSON.stringify(user.salary), //Do you want to send salary??

        }

    })
  5. Nyt sinulla on jotain tällaista: 



  6. Testaa action ja siirry seuraavaan vaiheeseen.


Vaihe 5: Vastaanota tiedot Exceliin

  1. Lisää uusi action valitsemalla + edellisen actionin alta.
  2. Valitse "Microsoft Excel" ja Event-kohtaan "Add row" ja valitse Continue.

    Jokainen uusi tapahtuma Humasta luo Excel-taulukkoon uuden rivin.

  3. Yhdistä Microsoft Excel -tiliisi ja valitse Continue.
  4. Lataa Excel-taulukkomme täältä. Se on lisättävä OneDriveesi.
  5. Valitse laskentataulukko (Spreadsheet) ja välilehti (Worksheet), johon haluat muutoslokin.



  6. Kohdassa actions yhdistät Humasta tulevat muutokset Excel-taulukon eri sarakkeisiin.




  7. Testaa action, niin saat tällaisen vastauksen:  




  8. Avaa Excel-taulukko ja varmista, että uusi rivi on luotu:




Vaihe 6: Testaa integraatiot

  1. Voit nyt siirtyä omaan profiiliisi Humassa ja päivittää syntymäaikasi.
  2. Muutos näkyy Excel-taulukossa näin:




  3. Valmista – sinulla on nyt muutosloki! Profiilin muutokset lähetetään nyt Excel-taulukkoon.


⚠️ Tärkeää!
Tämä on esimerkki, eikä Huma takaa sen toimivuutta.

Suosittelemme, että Webhooks-integraation määrittämisessä on apuna kehittäjä, jolla on tarvittava tekninen osaaminen.

Webhookia voi käyttää monenlaisissa tilanteissa, ja tämä on vain yksi esimerkki. Voit lukea lisää webhookeista ja siitä, mitä tuetaan, täältä.