Gå til innhold
Norwegian Bokmål
  • Det finnes ingen forslag fordi søkefeltet er tomt.

Webhook

Med webhooks holder du ansattdataene synkronisert mellom Huma og eksterne tjenester eller plattformer du kobler til.

 

Innholdsfortegnelse

 

 


 

Roller og tilgang

Rolle Tilgang
Systemrolle med full tilgang til Organisasjon Kan sette opp og administrere webhook-integrasjoner

 

💡⛓️‍💥 Interessert i Open API? Les denne artikkelen.

 

 

 

Flere tilkoblinger

Hvis du trenger å sette opp flere webhook-instanser, følger du veiledningen her.

 

 

 

Funksjoner som støttes

Hendelser for ansattprofiler

  • En egen hendelse når e-postadressen som brukes til å logge inn på en profil, endres.
  • Automatiske oppdateringer når brukere legges til eller slettes. Det sendes en melding automatisk hver gang en bruker opprettes eller slettes i Huma.
  • Oppdateringer i sanntid når en profil endres. Endringer i støttede profilfelt sendes automatisk til URL-en du har registrert.
  • Eksport av profilene slik de er nå, inkludert egendefinerte felt. Det er nyttig når systemet som kobler seg til via webhook, skal fylles med data første gang.

 

Stillingshendelser

  • Automatiske oppdateringer når stillinger opprettes, oppdateres eller slettes.

 

Fraværshendelser

  • Automatiske oppdateringer når fravær registreres eller fjernes.
  • Oppdateringer i sanntid når et fravær blir behandlet eller endret på annen måte.

 

Hendelser for selskap, team og lokasjon

  • Oppdateringer når et selskap, et team eller en lokasjon opprettes, oppdateres eller slettes.
  • Endringer i medlemskap. Det sendes hendelser når brukere legges til i eller fjernes fra et selskap, et team eller en lokasjon.

 

 

 

Kan jeg bruke webhooks for tjeneste «X»?

Det er vanlig å bruke en «mellomtjeneste» mellom webhooken og et tredjepartssystem. Mellomtjenesten tar imot innholdet (payload) fra webhooken og gjør det om til formatet mottakersystemet krever. Noen kunder får IT-avdelingen sin til å lage denne tjenesten selv. Andre bruker eksterne leverandører av mellomvare.

 

🔗 Se denne artikkelen for et praktisk eksempel.

 

 

 

Slik setter du opp en webhook

  1. Gå til «Integrasjoner»
  2. Finn Webhooks og klikk «Ny tilkobling»
  3. Klikk «Sett opp»
  4. Legg inn URL-en som skal ta imot webhook-forespørslene, og følg stegene

 

Flere innstillinger:

  • Client secret (valgfritt): Hvis dette er satt, får hver forespørsel en huma-hmac-sha256-header med en hash av JSON-innholdet, signert med secret. Bruk den til å sjekke at forespørslene kommer fra Huma.
  • Tilgangstoken (valgfritt): Hvis dette er satt, sendes det med hver forespørsel som et vanlig bearer-token.
  • Hvilke hendelser som skal sendes: Velg én eller flere av disse:
    • Hendelser for ansattprofiler
    • Stillingshendelser
    • Fraværshendelser
    • Hendelser for selskap, team og lokasjon
  • HTTP-metode: Velg om det alltid skal sendes POST, eller om HTTP-metoden skal passe til hendelsestypen: DELETE for slettinger, PUT for opprettelser, PATCH for oppdateringer og så videre.

 

💡 Alle forespørsler har en huma-topic-header og en topic-egenskap i JSON-innholdet. Verdiene er alltid like.

💡 Alt JSON-innhold har også en actor-egenskap som beskriver hvem som utløste hendelsen. Se Hvem som utløste hendelsen (actor).

⚠️ Hvis en forespørsel ikke er behandlet innen 1 sekund, blir den tidsavbrutt. Vi anbefaler at du lagrer dataene du mottar og svarer med en gang, og behandler dataene i et eget steg etterpå.

 

 

 

Hendelse for endring av e-post på profilen

E-postadressen på profilen brukes til å logge inn i Huma. Derfor følger endringer av den en egen flyt, og de sendes som en egen hendelse med topic user-email-update.

💡 Merk: En profil kan også ha en privat e-postadresse. Endringer i den private e-postadressen behandles som en vanlig oppdatering av et profilfelt og sendes som en users-update-hendelse. Se Profilhendelser og Støttede felt under.

Innholdet består av ett user-objekt med disse feltene:

Felt JSON-nøkkel Merknad
Bruker-ID id Alltid med. En unik og stabil UUID (RFC 4122). Endres aldri så lenge brukeren finnes.
Tidligere e-post oldEmail Alltid med.
Ny e-post newEmail Alltid med.
Ansettelses-ID employmentId Med hvis den er satt. Unik når forespørselen sendes, men kan endres eller fjernes senere.

 

Eksempel:

{   "topic": "user-email-update",   "user": {     "id": "d96434d7-9506-4d5f-a969-7d1eea8bc3d6",     "oldEmail": "jesper@godmat.no",     "newEmail": "jesper.blom@godmat.no",     "employmentId": "1"   } } 

💡 Merk om unike ansettelses-ID-er:

  • Huma kan garantere at ID-ene er unike hvis «Krev unike ansettelses-ID-er» alltid har vært slått på.
  • Huma kan ikke garantere at de er unike hvis kravet har vært slått av på noe tidspunkt. Da kan det finnes duplikater, selv om kravet er slått på igjen, med mindre de er rettet manuelt.

 

 

 

Profilhendelser

For profildata er topic en av disse:

  • users-create
  • users-update
  • users-delete
  • users-export

 

Alt innhold i profilhendelser har en users-liste. Hvert objekt i listen har alltid id, email, employmentId (hvis den er satt) og status.

 

Opprette (create)

Sendes som en POST-forespørsel. Inneholder hele profilobjektet for alle brukere som er opprettet.

Eksempel:

{   "topic": "users-create",   "users": [     {       "id": "09d41e51-0963-4763-933b-8c9df093d653",       "status": "ACTIVE",       "givenName": "Ida",       "preferredName": null,       "familyName": "Fossdal",       "email": "ida.fossdal@godmat.no",       "privateEmail": null,       "phone": "+47 955 55 167",       "address": {         "line1": "Fossvegen 82",         "line2": null,         "postalCode": "1823",         "city": "Bergen",         "country": "NO"       },       "birthDate": "1993-07-29",       "nationality": null,       "dietaryRequirements": null,       "funfacts": null,       "interests": null,       "bankAccount": {         "type": "national",         "number": "12345678903",         "country": "NO"       },       "gender": "Female",       "civilStatus": null,       "employmentId": "1",       "firstDayOfWork": "2001-09-14",       "employmentStartDate": "2001-09-14",       "lastDayOfWork": null,       "employmentEndDate": null,       "terminationNoticeDate": null,       "terminationDate": null,       "employmentType": "Permanent",       "employmentPercentage": 100,       "jobTitle": "CEO",       "jobDescription": "Make the decisions",       "identifications": null,       "salary": {         "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",         "periodUnit": "yearly",         "amount": 950000,         "currency": "NOK",         "fromDate": "2020-01-01",         "toDate": null,         "current": true,         "note": null       },       "supervisor": null     }   ],   "actor": {     "type": "user",     "id": "09d41e51-0963-4763-933b-8c9df093d653",     "email": "ida.fossdal@godmat.no",     "name": "Ida Fossdal"   } } 

 

Slette (delete)

Sendes som en DELETE-forespørsel. users-objektene inneholder bare identifikatorer.

Eksempel:

{   "topic": "users-delete",   "users": [     {       "id": "d96434d7-9506-4d5f-a969-7d1eea8bc3d6",       "email": "jesper.blom@godmat.no",       "employmentId": "31",       "status": "INACTIVE"     }   ],   "actor": {     "type": "user",     "id": "09d41e51-0963-4763-933b-8c9df093d653",     "email": "ida.fossdal@godmat.no",     "name": "Ida Fossdal"   } } 

 

Oppdatere (update)

Sendes som en PATCH-forespørsel. users-objektene inneholder identifikatorer og bare feltene som er endret.

Eksempel: en ansatt endrer bankkontoen sin til IBAN:

{   "topic": "users-update",   "users": [     {       "id": "d96434d7-9506-4d5f-a969-7d1eea8bc3d6",       "email": "jesper.blom@godmat.no",       "employmentId": "31",       "status": "ACTIVE",       "bankAccount": {         "type": "international",         "iban": "FR7630006000011234567890189",         "bic": "AGRIFRPP"       }     }   ],   "actor": {     "type": "user",     "id": "d96434d7-9506-4d5f-a969-7d1eea8bc3d6",     "email": "jesper.blom@godmat.no",     "name": "Jesper Blom"   } } 

 

Eksportere (export)

Sendes som én eller flere POST-forespørsler. Hver forespørsel inneholder alle støttede felt slik de er nå, for opptil 50 brukere. Hvis organisasjonen har mer enn 50 brukere, deles eksporten opp i flere forespørsler. En eksport fra en organisasjon med 132 brukere gir for eksempel tre forespørsler: to med 50 brukere hver og én med 32.

⚠️ Feltet «Barn» støttes ikke og blir ikke tatt med.

 

 

 

Støttede felt i profilhendelser

Felt JSON-nøkkel
E-postadresse email. Merk at endringer av hovede-postadressen sendes som en egen user-email-update-hendelse
Status status
Fornavn givenName
Etternavn familyName
Foretrukket navn preferredName
Telefonnummer phone
Privat e-post privateEmail
Adresse address
Fødselsdato birthDate
Nasjonalitet nationality
Kostholdsbehov dietaryRequirements
Fun facts funfacts
Interesser interests. Enten null eller en liste med tekster
Bankkontonummer bankAccount. Enten null eller et objekt med type og to felt til, avhengig av verdien i type. Hvis type er national, er de andre feltene number og country. Hvis type er international, er de andre feltene iban og bic
Kjønn gender
Sivilstatus civilStatus
Identifikasjoner identifications. Enten null eller en liste med objekter. Hvert objekt har id (intern ID i Huma), type (national eller passport), value (identifikasjonsnummeret) og country (landkode etter ISO 3166-1 alpha-2)
Nærmeste leder supervisor. Enten null eller et objekt med id og email
Ansettelses-ID employmentId

 

 

Stillingsfelt i profilhendelser

Felt JSON-nøkkel
Startdato for ansettelsen employmentStartDate
Sluttdato for prøvetid probationEndDate
Første arbeidsdag firstDayOfWork
Dato for oppsigelse terminationNoticeDate
Siste arbeidsdag lastDayOfWork
Sluttdato for ansettelsen employmentEndDate
Ansettelsesform employmentType. Enten null eller en av: Permanent, Temporary, Seasonal, Casual, Trainee, Job training program, Consultant, Freelance, Third party, Other
Stillingsprosent employmentPercentage
Stillingstittel jobTitle
Stillingsbeskrivelse jobDescription

 

 

⚠️ Lønn (kommer som egne hendelser i 2026)

Felt JSON-nøkkel Merknad
Lønn salary Et objekt med lønnsinformasjon. Bare gjeldende lønn sendes.
  salary.id En unik identifikator for denne lønnen (UUID)
  salary.periodUnit En av hourly, weekly, monthly eller yearly
  salary.amount Et desimaltall
  salary.currency En valutakode etter ISO 4217
  salary.fromDate Alltid med
  salary.toDate Valgfritt
  salary.current En boolsk verdi som viser om dette er den gjeldende lønnen til den ansatte
  salary.note Valgfri fritekst

💡 Foreløpig sendes feltet salary i profilhendelsene.

 

 

 

Egendefinerte felt

Egendefinerte felt som organisasjonen har laget, blir tatt med i oppdateringshendelser når det er det egendefinerte feltet som oppdateres, og i alle eksporthendelser.

Hvis en hendelse har egendefinerte felt, har brukerobjektet en custom-egenskap. Det er et objekt med navnene på de egendefinerte feltene som nøkler, og verdiene deres. Hvis et egendefinert felt ikke har noen verdi, tas det med som null.

Eksempel for en organisasjon med de to egendefinerte feltene «Skjortestørrelse» og «Registreringsnummer»:

"custom": {   "shirtSize": "XL",   "licensePlate": null } 

🔗 Se egendefinerte felt for detaljer om hvordan navnene på feltene bestemmes, og hvilke verdityper som støttes.

 

 

 

Stillingshendelser

For stillingsdata er topic en av disse:

  • positions-create
  • positions-update
  • positions-delete
  • positions-export

Alt innhold i stillingshendelser har en positions-liste med ett objekt for hver stilling som er berørt.

 

Opprette (create)

Sendes som en POST-forespørsel. Inneholder hele stillingsobjektet.

Eksempel:

{   "topic": "positions-create",   "positions": [     {       "id": "59307188-bd2d-431a-aa97-97d2b92222dc",       "contractStartDate": "2026-02-18",       "contractEndDate": null,       "firstDayOfWork": "2026-02-18",       "lastDayOfWork": null,       "contractCountry": "NO",       "contractType": "Permanent",       "percentage": 100,       "probationEndDate": "2026-08-18",       "terminationNoticeDate": null,       "title": "CMO",       "description": "Oversees the company's marketing strategy.",       "endNote": null,       "endReason": null,       "wantedEnd": false,       "note": "Team: Development, Company: Tech Inc. Supervisor: Karin Strand!",       "user": {         "id": "e902714f-a3f9-4cd1-ab04-980a443d77ae",         "email": "user-email@company.com"       }     }   ],   "actor": {     "type": "user",     "id": "a558d25a-99d6-45b1-855c-63b052adc5f3",     "email": "admin@company.com",     "name": "Karina Strand"   } } 

 

Oppdatere (update)

Sendes som en PATCH-forespørsel. Inneholder bare feltene som er endret.

Eksempel:

{   "topic": "positions-update",   "positions": [     {       "id": "5c1de17b-7e47-4827-a1f3-536bb061c2c4",       "contractStartDate": "2021-08-18",       "firstDayOfWork": "2021-08-18",       "contractCountry": "NO",       "contractType": "Trainee",       "percentage": 75,       "probationEndDate": "2022-02-18",       "note": "Team: Development, Company: Tech Inc. Supervisor: Karin Strand!",       "user": {         "id": "e902714f-a3f9-4cd1-ab04-980a443d77ae",         "email": "user-email@company.com"       }     }   ],   "actor": {     "type": "user",     "id": "a558d25a-99d6-45b1-855c-63b052adc5f3",     "email": "admin@company.com",     "name": "Karina Strand"   } } 

 

Slette (delete)

Sendes som en DELETE-forespørsel. positions-objektene inneholder bare identifikatorer.

Eksempel:

{   "topic": "positions-delete",   "positions": [     {       "id": "5c1de17b-7e47-4827-a1f3-536bb061c2c4",       "user": {         "id": "e902714f-a3f9-4cd1-ab04-980a443d77ae",         "email": "user-email@company.com"       }     }   ],   "actor": {     "type": "user",     "id": "a558d25a-99d6-45b1-855c-63b052adc5f3",     "email": "admin@company.com",     "name": "Karina Strand"   } } 

 

Eksportere (export)

Når du starter en eksport fra integrasjonssiden for webhooken, velger du en tidsperiode og hvilke brukeres stillinger som skal være med. Resultatet sendes som én eller flere POST-forespørsler med opptil 50 stillinger i hver.

Eksempel:

{   "topic": "positions-export",   "positions": [     {       "id": "12425fdc-e743-4e82-84ca-3036d5cbbb0d",       "contractStartDate": "2026-01-20",       "contractEndDate": "2026-07-20",       "firstDayOfWork": "2026-01-20",       "lastDayOfWork": "2026-07-20",       "contractCountry": "NO",       "contractType": "Permanent",       "percentage": 100,       "probationEndDate": "2026-04-20",       "terminationNoticeDate": "2026-06-20",       "title": "Software Engineer",       "description": "This is a description of the position.",       "endNote": "This is an end note.",       "endReason": "employee_terminated",       "wantedEnd": false,       "note": "Team: Development, Company: Tech Inc.",       "user": {         "id": "73ced5dd-8bfb-43e0-982b-4b8bb1382c91",         "email": "ida.fossdal@godmat.no"       }     }   ],   "actor": {     "type": "user",     "id": "a558d25a-99d6-45b1-855c-63b052adc5f3",     "email": "admin@company.com",     "name": "Karina Strand"   } } 

 

 

 

Støttede felt i stillingshendelser

Felt JSON-nøkkel
Stillings-ID id
Stillingstittel title
Stillingsbeskrivelse description. Enten en egen beskrivelse, eller beskrivelsen som er lagt inn på stillingstittelen
Kontraktstype contractType. Enten null eller en av: Permanent, Temporary, Seasonal, Casual, Trainee, Job training program, Consultant, Freelance, Third party, Other
Stillingsprosent percentage
Kontraktsland contractCountry
Notat note
Startdato for kontrakt contractStartDate
Første arbeidsdag firstDayOfWork
Sluttdato for prøvetid probationEndDate
Dato for oppsigelse terminationNoticeDate
Siste arbeidsdag lastDayOfWork
Sluttdato for kontrakt contractEndDate
Sluttårsak endReason. Enten null eller en av: arbeidsgiver har sagt opp den ansatte, den ansatte har sagt opp, kontrakten, oppdraget eller den midlertidige stillingen er utløpt, bytte av lønnssystem eller regnskapsfører, annet
Ønsket avslutning wantedEnd. true eller false
Sluttnotat endNote

 

 

 

Fraværshendelser

For fraværsdata er topic en av disse:

  • absence-create
  • absence-update
  • absence-delete
  • absence-export

Alt innhold i fraværshendelser har en absence-liste. Hvert objekt inneholder alle støttede felt for fraværet.

 

Opprette (create)

Sendes som en POST-forespørsel.

Eksempel:

{   "topic": "absence-create",   "absence": [     {       "id": "45be6bce-88f5-4f67-a6de-cbd84df21e1e",       "status": "pending",       "type": {         "name": "vacation"       },       "user": {         "id": "c2c8d497-352a-4c21-bf7c-aefbaec37717",         "email": "patrick.remen@godmat.no"       },       "startDate": "2022-10-24",       "endDate": "2022-10-28",       "grade": 1,       "workRelated": false,       "note": null,       "comment": null,       "reviewedAt": null,       "reviewedBy": null,       "registeredAt": "2022-10-04T11:57:13.819Z",       "registeredBy": {         "id": "c2c8d497-352a-4c21-bf7c-aefbaec37717",         "email": "patrick.remen@godmat.no"       }     }   ],   "actor": {     "type": "user",     "id": "c2c8d497-352a-4c21-bf7c-aefbaec37717",     "email": "patrick.remen@godmat.no",     "name": "Patrick Remen"   } } 

 

Oppdatere (update)

Sendes som en PATCH-forespørsel. Utløses når den som behandler fraværet endrer statusen, når en ansatt endrer forespørselen sin, eller når en leder gjør endringer på vegne av en ansatt.

Eksempel:

{   "topic": "absence-update",   "absence": [     {       "id": "e9b5a57f-2f36-462e-aed2-19c6aa990fce",       "status": "approved",       "type": {         "name": "vacation"       },       "user": {         "id": "c2c8d497-352a-4c21-bf7c-aefbaec37717",         "email": "patrick.remen@godmat.no"       },       "startDate": "2022-10-10",       "endDate": "2022-10-14",       "grade": 1,       "workRelated": false,       "note": null,       "comment": null,       "reviewedAt": "2022-10-05T11:57:13.819Z",       "reviewedBy": {         "id": "d96434d7-9506-4d5f-a969-7d1eea8bc3d6",         "email": "jesper.blom@godmat.no"       },       "registeredAt": "2022-10-04T11:51:08.962Z",       "registeredBy": {         "id": "c2c8d497-352a-4c21-bf7c-aefbaec37717",         "email": "patrick.remen@godmat.no"       }     }   ],   "actor": {     "type": "user",     "id": "d96434d7-9506-4d5f-a969-7d1eea8bc3d6",     "email": "jesper.blom@godmat.no",     "name": "Jesper Blom"   } } 

 

Slette (delete)

Sendes som en DELETE-forespørsel. absence-objektene inneholder bare ID.

Eksempel:

{   "topic": "absence-delete",   "absence": [     {       "id": "e9b5a57f-2f36-462e-aed2-19c6aa990fce"     }   ],   "actor": {     "type": "user",     "id": "d96434d7-9506-4d5f-a969-7d1eea8bc3d6",     "email": "jesper.blom@godmat.no",     "name": "Jesper Blom"   } } 

 

Eksportere (export)

Når du starter en eksport fra integrasjonssiden for webhooken, velger du en tidsperiode, hvilke brukere som skal være med og hvilke fraværstyper som skal være med. Resultatet sendes som én eller flere POST-forespørsler med opptil 50 fravær i hver.

Eksempel:

{   "topic": "absence-export",   "exportFrom": "2022-10-01",   "exportTo": "2022-12-31",   "absence": [     {       "id": "e9b5a57f-2f36-462e-aed2-19c6aa990fce",       "status": "approved",       "type": {         "name": "vacation"       },       "user": {         "id": "c2c8d497-352a-4c21-bf7c-aefbaec37717",         "email": "patrick.remen@godmat.no"       },       "startDate": "2022-10-10",       "endDate": "2022-10-14",       "grade": 1,       "workRelated": false,       "note": null,       "comment": null,       "reviewedAt": "2022-10-05T11:57:13.819Z",       "reviewedBy": {         "id": "d96434d7-9506-4d5f-a969-7d1eea8bc3d6",         "email": "jesper.blom@godmat.no"       },       "registeredAt": "2022-10-04T11:51:08.962Z",       "registeredBy": {         "id": "c2c8d497-352a-4c21-bf7c-aefbaec37717",         "email": "patrick.remen@godmat.no"       }     }   ],   "actor": {     "type": "user",     "id": "d96434d7-9506-4d5f-a969-7d1eea8bc3d6",     "email": "jesper.blom@godmat.no",     "name": "Jesper Blom"   } } 

 

 

 

Støttede felt i fraværshendelser

Felt JSON-nøkkel
Fravær-ID id
Status status. En av pending, approved eller rejected
Type type. Et objekt med name, som er en av: vacation, selfCertifiedSick, sick, paidTimeOff, unpaidTimeOff, sickChild, parentalLeave
Bruker user. Et objekt med id og email
Startdato startDate
Sluttdato endDate
Grad grade. Et desimaltall der 1,0 er 100 % fravær, 0,5 er 50 % og så videre
Arbeidsrelatert workRelated
Notat note. Legges inn når fraværet registreres
Kommentar comment. Legges inn når fraværet behandles
Behandlet reviewedAt
Behandlet av reviewedBy. Et objekt med id og email
Registrert registeredAt
Registrert av registeredBy. Et objekt med id og email

 

 

 

Hendelser for selskap, team og lokasjon

For data om selskaper, team og lokasjoner er topic en av disse:

  • groups-create
  • groups-update
  • groups-delete
  • groups-export
  • groups-add-members
  • groups-remove-members

 

Alt innhold har en groups-liste. Hvert gruppeobjekt har alltid id, name og type. Verdien i type er COMPANY, TEAM eller LOCATION. Selskaper kan også ha organizationNumber.

 

Opprette (create)

Sendes som en POST-forespørsel.

Eksempel:

{   "topic": "groups-create",   "groups": [     {       "id": "<group ID>",       "name": "<group name>",       "type": "<COMPANY/TEAM/LOCATION>",       "description": "<optional group description>",       "organizationNumber": "<organization number, Company only>",       "links": [         "<link name>\n<link url>"       ],       "address": {         "line1": "Example street 57",         "line2": "<optional second line>",         "postalCode": "9999",         "city": "Demo city",         "country": "Theoretia"       },       "members": [         {           "id": "<user ID>",           "email": "<user email>"         }       ]     }   ],   "actor": {     "type": "user",     "id": "<user ID>",     "email": "<user email>",     "name": "<user name>"   } } 

 

Oppdatere (update)

Sendes som en PUT-forespørsel.

Eksempel:

{   "topic": "groups-update",   "groups": [     {       "id": "<group ID>",       "name": "<group name>",       "type": "<COMPANY/TEAM/LOCATION>",       "description": "<optional group description>",       "organizationNumber": "<organization number, Company only>",       "links": [         "<link name>\n<link url>"       ],       "address": {         "line1": "Example street 57",         "line2": "<optional second line>",         "postalCode": "9999",         "city": "Demo city",         "country": "Theoretia"       }     }   ],   "actor": {     "type": "user",     "id": "<user ID>",     "email": "<user email>",     "name": "<user name>"   } } 

 

Slette (delete)

Sendes som en DELETE-forespørsel. Gruppeobjektene inneholder bare id, name og type.

Eksempel:

{   "topic": "groups-delete",   "groups": [     {       "id": "<group ID>",       "name": "<group name>",       "type": "<COMPANY/TEAM/LOCATION>"     }   ],   "actor": {     "type": "user",     "id": "<user ID>",     "email": "<user email>",     "name": "<user name>"   } } 

 

Eksportere (export)

Når du starter en eksport fra integrasjonssiden for webhooken, velger du hvilke gruppetyper som skal være med. Resultatet sendes som én eller flere POST-forespørsler med opptil 50 grupper i hver.

Eksempel:

{   "topic": "groups-export",   "groups": [     {       "id": "<group ID>",       "name": "<group name>",       "type": "<COMPANY/TEAM/LOCATION>",       "description": "<optional group description>",       "organizationNumber": "<organization number, Company only>",       "links": [         "<link name>\n<link url>"       ],       "address": {         "line1": "Example street 57",         "line2": "<optional second line>",         "postalCode": "9999",         "city": "Demo city",         "country": "Theoretia"       },       "members": [         {           "id": "<user ID>",           "email": "<user email>"         }       ]     }   ],   "actor": {     "type": "user",     "id": "<user ID>",     "email": "<user email>",     "name": "<user name>"   } } 

 

Legge til medlemmer

Sendes som en PUT-forespørsel.

Eksempel:

{   "topic": "groups-add-members",   "groups": [     {       "id": "<group ID>",       "name": "<group name>",       "type": "<COMPANY/TEAM/LOCATION>",       "members-added": [         {           "id": "<user ID>",           "email": "<user email>"         }       ]     }   ],   "actor": {     "type": "user",     "id": "<user ID>",     "email": "<user email>",     "name": "<user name>"   } } 

 

Fjerne medlemmer

Sendes som en PUT-forespørsel.

Eksempel:

{   "topic": "groups-remove-members",   "groups": [     {       "id": "<group ID>",       "name": "<group name>",       "type": "<COMPANY/TEAM/LOCATION>",       "members-removed": [         {           "id": "<user ID>",           "email": "<user email>"         }       ]     }   ],   "actor": {     "type": "user",     "id": "<user ID>",     "email": "<user email>",     "name": "<user name>"   } } 

 

 

 

Hvem som utløste hendelsen (actor)

Alt innhold i hendelsene har et actor-objekt som beskriver hvem som utløste hendelsen. For hendelser som oppretter, oppdaterer og sletter, er det brukeren som gjorde endringen. For eksporthendelser er det brukeren som startet eksporten.

💡 Noen handlinger utløses av integrasjoner og ikke av brukere. Da har actor-objektet type satt til integration.

Felt JSON-nøkkel Merknad
Actor-ID id Alltid med. En stabil UUID. For integrasjoner er ID-en den samme etter at tilkoblingen er koblet fra og til igjen, men den endres hvis tilkoblingen fjernes og opprettes på nytt.
Actor-type type Alltid med. Enten user eller integration.
E-post email Med når type er user. Unik når forespørselen sendes, men kan endres hvis e-postadressen til brukeren oppdateres.
Navn name Navnet til den som utløste hendelsen.

 

 

 

Sikkerhet og etterlevelse

Når dere kobler til via webhooks, gir dere Huma tillatelse til å få tilgang til webhook-endepunktet deres, slik det er beskrevet i brukervilkårene våre under «Third-Party Platforms».

 

 

 

Ofte stilte spørsmål

Hva skjer hvis endepunktet vårt ikke svarer i tide?

Huma forventer svar innen 1 sekund. Hvis endepunktet ikke svarer i tide, blir forespørselen tidsavbrutt. Vi anbefaler at dere bekrefter forespørselen med en gang og behandler dataene asynkront.

 

Hvorfor får jeg en users-update-hendelse når en stilling endres?

Når en endring i en stilling påvirker den gjeldende hovedstillingen til den ansatte, sender Huma også en users-update-hendelse. Det holder de utfasede stillingsfeltene på brukerprofilen oppdatert. Dette er forventet.

 

Kan jeg bruke samme webhook-URL for flere typer hendelser?

Ja. Du kan sette opp én webhook-tilkobling som tar imot en hvilken som helst kombinasjon av profil-, stillings-, fravær- og gruppehendelser. Bruk feltet topic i hver forespørsel for å se hvilken type hendelse det er.

 

Hva betyr feltet grade i fraværshendelser?

grade er et desimaltall som viser graden av fravær. Verdien 1,0 betyr at den ansatte er helt borte, 0,5 betyr 50 % og så videre.

 

Hvordan sjekker jeg at en forespørsel faktisk kommer fra Huma?

Sett en client secret når du setter opp webhooken. Da får hver forespørsel en huma-hmac-sha256-header med en hash av innholdet, signert med secret. Sjekk hashen hos dere for å bekrefte at forespørselen er ekte.

 

Hva er employmentId, og kan den endres?

employmentId er en unik identifikator dere gir de ansatte i Huma. Den er unik når forespørselen sendes, men den kan endres eller fjernes av en bruker med riktige tilganger. Ikke regn med at den er stabil i alle fremtidige forespørsler.

 

Er eksportkoden fra en fraværspolicy med i innholdet fra webhooken?

Nei. Eksportkoden er en innstilling på policyen for fraværstypen i Huma, og den er ikke med i innholdet fra webhooken. Fraværshendelsene har navnet på fraværstypen (f.eks. vacation eller sick), men ingen innstillinger fra policyen, som eksportkoden.