Webhook
Med webhooks holder du ansattdataene synkronisert mellom Huma og eksterne tjenester eller plattformer du kobler til.
Innholdsfortegnelse
- Roller og tilgang
- Flere tilkoblinger
- Funksjoner som støttes
- Kan jeg bruke webhooks for tjeneste «X»?
- Slik setter du opp en webhook
- Hendelse for endring av e-post på profilen
- Profilhendelser
- Støttede felt i profilhendelser
- Egendefinerte felt
- Stillingshendelser
- Støttede felt i stillingshendelser
- Fraværshendelser
- Støttede felt i fraværshendelser
- Hendelser for selskap, team og lokasjon
- Hvem som utløste hendelsen (actor)
- Sikkerhet og etterlevelse
- Ofte stilte spørsmål
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
- Gå til «Integrasjoner»
- Finn Webhooks og klikk «Ny tilkobling»
- Klikk «Sett opp»
- 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-createusers-updateusers-deleteusers-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-createpositions-updatepositions-deletepositions-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-createabsence-updateabsence-deleteabsence-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-creategroups-updategroups-deletegroups-exportgroups-add-membersgroups-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.