Webhooks i Huma
Med webhooks kan du hålla personaldata synkroniserade mellan Huma och de externa tjänster eller plattformar du ansluter
Innehållsförteckning
- Roller och åtkomst
- Flera integrationer
- Funktioner som stöds
- Kan jag använda webhooks för tjänsten «X»?
- Så konfigurerar du en webhook
- Händelse för ändrad e-postadress
- Profilhändelser
- Fält som stöds i profilhändelser
- Egendefinierade fält
- Tjänstehändelser
- Fält som stöds i tjänstehändelser
- Frånvarohändelser
- Fält som stöds i frånvarohändelser
- Händelser för företag, team och platser
- Aktör
- Säkerhet och regelefterlevnad
- Vanliga frågor
Roller och åtkomst
| Roll | Åtkomst |
|---|---|
| Systemroll med fullständig åtkomst till Organisation | Kan konfigurera och hantera webhook-integrationer |
🔗 Intresserad av öppet API? Läs den här artikeln.
Flera integrationer
Om du behöver konfigurera flera webhooks, följ anvisningarna i Flera integrationer.
Funktioner som stöds
Händelser för personalprofiler
- En särskild händelse när e-postadressen som används för att logga in ändras.
- Automatiska uppdateringar när användare läggs till eller raderas – ett meddelande skickas automatiskt när en användare skapas eller raderas i Huma.
- Uppdateringar i realtid när en profil ändras – ändringar i profilfält som stöds skickas automatiskt till den registrerade URL:en.
- Export av profilernas aktuella status, inklusive egendefinierade fält – praktiskt för att fylla det anslutna systemet med startdata.
Tjänstehändelser
- Automatiska uppdateringar när tjänster skapas, uppdateras eller raderas.
Frånvarohändelser
- Automatiska uppdateringar när frånvaro registreras eller tas bort.
- Uppdateringar i realtid när en frånvaropost granskas eller ändras på annat sätt.
Händelser för företag, team och platser
- Uppdateringar när ett företag, ett team eller en plats skapas, uppdateras eller raderas.
- Ändringar i medlemskap – händelser skickas när användare läggs till i eller tas bort från ett företag, ett team eller en plats.
Kan jag använda webhooks för tjänsten «X»?
Det är vanligt att använda en «mellantjänst» mellan webhooken och ett tredjepartssystem. Mellantjänsten tar emot meddelandet från webhooken och formaterar om det så att det passar det mottagande systemet. Vissa kunder låter sin IT-avdelning bygga tjänsten internt, andra använder externa leverantörer av mellanprogram.
🔗 Se den här artikeln för ett praktiskt exempel.
Så konfigurerar du en webhook
- Gå till Integrationer.
- Leta upp Webhook och klicka på «Ny anslutning».
- Klicka på «Konfigurera».
- Ange URL:en som ska ta emot förfrågningarna från webhooken och följ stegen.
Ytterligare inställningar:
- Client secret (valfritt) – om den är angiven innehåller varje förfrågan rubriken
huma-hmac-sha256med en hash av JSON-innehållet, signerad med hemligheten. Använd den för att kontrollera att förfrågningarna kommer från Huma. - Access token (valfritt) – om den är angiven skickas den med i varje förfrågan som en vanlig bearer token.
- Vilka händelser som ska skickas – välj en eller flera av:
- Händelser för personalprofiler
- Tjänstehändelser
- Frånvarohändelser
- Händelser för företag, team och platser
- HTTP-metod – välj mellan att alltid skicka
POST(«Använd HTTP-metoden POST för alla meddelanden») eller att använda HTTP-metoder som matchar händelsetypen:DELETEför raderingar,PUTför skapande,PATCHför uppdateringar och så vidare.
💡 Alla förfrågningar innehåller rubriken huma-topic och egenskapen topic i JSON-innehållet. Båda värdena är alltid identiska.
💡 Allt innehåll innehåller också egenskapen actor som beskriver vem som utlöste händelsen. Se Aktör.
⚠️ Om en förfrågan inte hanteras inom 1 sekund uppstår en timeout. Vi rekommenderar att du sparar de mottagna uppgifterna och svarar direkt, och sedan bearbetar uppgifterna i ett separat steg.
Händelse för ändrad e-postadress
Eftersom profilens e-postadress används för att logga in i Huma följer en ändring av den ett separat flöde och skickas som en egen händelse med topic user-email-update.
💡 En profil kan också ha en privat e-postadress. Ändringar av den privata e-postadressen behandlas som en vanlig uppdatering av ett profilfält och skickas som händelsen users-update. Se Profilhändelser och Fält som stöds nedan.
Innehållet består av ett enda user-objekt med följande fält:
| Fält | JSON-nyckel | Kommentar |
|---|---|---|
| Användar-ID | id | Finns alltid. Ett unikt, stabilt UUID (RFC 4122) som inte ändras under användarens livstid. |
| Tidigare e-postadress | oldEmail | Finns alltid. |
| Ny e-postadress | newEmail | Finns alltid. |
| Anställnings-ID | employmentId | Finns om det är angivet. Unikt när förfrågan skickas, men kan ändras eller tas bort senare. |
Exempel:
{ "topic": "user-email-update", "user": { "id": "d96434d7-9506-4d5f-a969-7d1eea8bc3d6", "oldEmail": "<old email>", "newEmail": "<new email>", "employmentId": "1" } }
💡 Om anställnings-ID:ns unikhet:
- Huma kan garantera unikhet om ni alltid har haft «Kräv unika anställnings-ID:n» aktiverat.
- Huma kan inte garantera unikhet om kravet har varit avstängt någon gång. Dubbletter kan finnas även om kravet har aktiverats igen, om de inte har rättats manuellt.
Profilhändelser
För profildata är topic något av följande:
users-createusers-updateusers-deleteusers-export
Innehållet i alla profilhändelser innehåller en users-array. Varje objekt i arrayen innehåller alltid id, email, employmentId (om det är angivet) och status.
Skapa
Skickas som en POST-förfrågan. Innehåller fullständiga profilobjekt för alla användare som skapats.
Exempel:
{ "topic": "users-create", "users": [ { "id": "09d41e51-0963-4763-933b-8c9df093d653", "status": "ACTIVE", "givenName": "Elin", "preferredName": null, "familyName": "Sandberg", "email": "user-email@company.com", "privateEmail": null, "phone": "<phone number>", "address": { "line1": "Example street 57", "line2": null, "postalCode": "9999", "city": "Demo city", "country": "SE" }, "birthDate": "1993-07-29", "nationality": null, "dietaryRequirements": null, "funfacts": null, "interests": null, "bankAccount": { "type": "national", "number": "<account number>", "country": "SE" }, "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": "SEK", "fromDate": "2020-01-01", "toDate": null, "current": true, "note": null }, "supervisor": null } ], "actor": { "type": "user", "id": "09d41e51-0963-4763-933b-8c9df093d653", "email": "admin@company.com", "name": "Elin Sandberg" } }
Radera
Skickas som en DELETE-förfrågan. users-objekten innehåller bara identifierare.
Exempel:
{ "topic": "users-delete", "users": [ { "id": "d96434d7-9506-4d5f-a969-7d1eea8bc3d6", "email": "user-email@company.com", "employmentId": "31", "status": "INACTIVE" } ], "actor": { "type": "user", "id": "09d41e51-0963-4763-933b-8c9df093d653", "email": "admin@company.com", "name": "Elin Sandberg" } }
Uppdatera
Skickas som en PATCH-förfrågan. users-objekten innehåller identifierare och bara de fält som har ändrats.
Exempel – en anställd som ändrar sitt bankkonto till IBAN:
{ "topic": "users-update", "users": [ { "id": "d96434d7-9506-4d5f-a969-7d1eea8bc3d6", "email": "user-email@company.com", "employmentId": "31", "status": "ACTIVE", "bankAccount": { "type": "international", "iban": "<IBAN>", "bic": "<BIC>" } } ], "actor": { "type": "user", "id": "d96434d7-9506-4d5f-a969-7d1eea8bc3d6", "email": "user-email@company.com", "name": "Oskar Lind" } }
Export
Skickas som en eller flera POST-förfrågningar. Varje förfrågan innehåller aktuell status för alla fält som stöds för upp till 50 användare. Om er organisation har fler än 50 användare delas exporten upp i flera förfrågningar. En export från en organisation med 132 användare ger till exempel tre förfrågningar: två med 50 användare vardera och en med 32.
⚠️ Fältet «Barn» stöds inte och ingår inte.
Fält som stöds i profilhändelser
| Fält | JSON-nyckel |
|---|---|
| E-postadress | email – ändringar av den primära e-postadressen skickas som en separat händelse, user-email-update |
| Status | status |
| Förnamn | givenName |
| Efternamn | familyName |
| Tilltalsnamn | preferredName |
| Telefonnummer | phone |
| Privat e-postadress | privateEmail |
| Adress | address |
| Födelsedatum | birthDate |
| Nationalitet | nationality |
| Kostbehov | dietaryRequirements |
| Kul fakta | funfacts |
| Intressen | interests – antingen null eller en array med strängar |
| Bankkontonummer | bankAccount – antingen null eller ett objekt med type och två ytterligare fält beroende på värdet av type. Om type är national är de andra fälten number och country. Om type är international är de andra fälten iban och bic. |
| Kön | gender |
| Civilstånd | civilStatus |
| Identifikationer | identifications – antingen null eller en array med objekt. Varje objekt innehåller id (Humas interna ID), type (national eller passport), value (identifikationsnumret) och country (landskod enligt ISO 3166-1 alpha-2). |
| Närmaste ledare | supervisor – antingen null eller ett objekt med id och email |
| Anställnings-ID | employmentId |
| Relevant erfarenhet | relevantExperienceInMonths – ett helt antal månader. Ingår inte i skapa-händelser när fältet är tomt. Skickas som null i uppdateringar när värdet tas bort. |
Tjänstefält
| Fält | JSON-nyckel |
|---|---|
| Anställningens startdatum | employmentStartDate |
| Slutdatum för provanställning | probationEndDate |
| Första arbetsdag | firstDayOfWork |
| Datum för uppsägning | terminationNoticeDate |
| Sista arbetsdag | lastDayOfWork |
| Anställningens slutdatum | employmentEndDate |
| Anställningstyp | employmentType – antingen null eller något av: Permanent, Temporary, Seasonal, Casual, Trainee, Job training program, Consultant, Freelance, Third party, Other |
| Anställningsprocent | employmentPercentage |
| Befattning | jobTitle |
| Befattningsbeskrivning | jobDescription |
⚠️ Lön (kommer som separata händelser under 2026)
| Fält | JSON-nyckel | Kommentar |
|---|---|---|
| Lön | salary | Ett objekt med löneinformation. Bara den aktuella lönen skickas. |
salary.id | En unik identifierare för lönen (UUID) | |
salary.periodUnit | Något av hourly, weekly, monthly eller yearly | |
salary.amount | Ett decimaltal | |
salary.currency | En valutakod enligt ISO 4217 | |
salary.fromDate | Finns alltid | |
salary.toDate | Valfritt | |
salary.current | Ett booleskt värde som anger om det är den anställdas aktuella lön | |
salary.note | Valfri fritext |
💡 Lönefältet skickas tills vidare via profilhändelser.
Egendefinierade fält
Alla egendefinierade fält som er organisation har skapat ingår i uppdateringshändelser när det är det egendefinierade fältet som uppdateras, och i alla exporthändelser.
Om en händelse innehåller egendefinierade fält får användarobjektet egenskapen custom – ett objekt med fältnamnen som nycklar och deras värden. Om ett egendefinierat fält saknar värde ingår det som null.
Exempel för en organisation med två egendefinierade fält, «Tröjstorlek» och «Registreringsnummer»:
"custom": { "shirtSize": "XL", "licensePlate": null }
🔗 Se egendefinierade fält för hur fältnamnen bestäms och vilka värdetyper som stöds.
Tjänstehändelser
För tjänstedata är topic något av följande:
positions-createpositions-updatepositions-deletepositions-export
Innehållet i alla tjänstehändelser innehåller en positions-array med ett objekt för varje berörd tjänst.
Skapa
Skickas som en POST-förfrågan. Innehåller hela tjänsteobjektet.
Exempel:
{ "topic": "positions-create", "positions": [ { "id": "59307188-bd2d-431a-aa97-97d2b92222dc", "contractStartDate": "2026-02-18", "contractEndDate": null, "firstDayOfWork": "2026-02-18", "lastDayOfWork": null, "contractCountry": "SE", "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: Maria Holm", "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": "Maria Holm" } }
Uppdatera
Skickas som en PATCH-förfrågan. Innehåller bara de fält som har ändrats.
Exempel:
{ "topic": "positions-update", "positions": [ { "id": "5c1de17b-7e47-4827-a1f3-536bb061c2c4", "contractStartDate": "2021-08-18", "firstDayOfWork": "2021-08-18", "contractCountry": "SE", "contractType": "Trainee", "percentage": 75, "probationEndDate": "2022-02-18", "note": "Team: Development, Company: Tech Inc. Supervisor: Maria Holm", "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": "Maria Holm" } }
Radera
Skickas som en DELETE-förfrågan. positions-objekten innehåller bara identifierare.
Exempel:
{ "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": "Maria Holm" } }
Export
När du startar en export från webhook-integrationens sida väljer du tidsperiod och vilka användares tjänster som ska ingå. Resultatet skickas som en eller flera POST-förfrågningar med upp till 50 tjänster vardera.
Exempel:
{ "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": "SE", "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": "user-email@company.com" } } ], "actor": { "type": "user", "id": "a558d25a-99d6-45b1-855c-63b052adc5f3", "email": "admin@company.com", "name": "Maria Holm" } }
Fält som stöds i tjänstehändelser
| Fält | JSON-nyckel |
|---|---|
| Tjänstens ID | id |
| Befattning | title |
| Befattningsbeskrivning | description – antingen en egen beskrivning eller beskrivningen som är angiven på befattningen |
| Avtalstyp | contractType – antingen null eller något av: Permanent, Temporary, Seasonal, Casual, Trainee, Job training program, Consultant, Freelance, Third party, Other |
| Procent | percentage |
| Avtalsland | contractCountry |
| Anteckning | note |
| Avtalets startdatum | contractStartDate |
| Första arbetsdag | firstDayOfWork |
| Slutdatum för provanställning | probationEndDate |
| Datum för uppsägning | terminationNoticeDate |
| Sista arbetsdag | lastDayOfWork |
| Avtalets slutdatum | contractEndDate |
| Anledning till avslut | endReason – antingen null eller något av: The employer has terminated the employee, The employee has resigned, The contract, engagement, or temporary position has expired, Changed payroll system or accountant, Other |
| Önskat avslut | wantedEnd – true eller false |
| Anteckning vid avslut | endNote |
Frånvarohändelser
För frånvarodata är topic något av följande:
absence-createabsence-updateabsence-deleteabsence-export
Innehållet i alla frånvarohändelser innehåller en absence-array. Varje objekt innehåller alla fält som stöds för posten.
Skapa
Skickas som en POST-förfrågan.
Exempel:
{ "topic": "absence-create", "absence": [ { "id": "45be6bce-88f5-4f67-a6de-cbd84df21e1e", "status": "pending", "type": { "name": "vacation" }, "user": { "id": "c2c8d497-352a-4c21-bf7c-aefbaec37717", "email": "user-email@company.com" }, "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": "user-email@company.com" } } ], "actor": { "type": "user", "id": "c2c8d497-352a-4c21-bf7c-aefbaec37717", "email": "user-email@company.com", "name": "Johan Ek" } }
Uppdatera
Skickas som en PATCH-förfrågan. Utlöses när en granskare ändrar statusen, en anställd redigerar sin ansökan eller en ledare gör ändringar för en anställds räkning.
Exempel:
{ "topic": "absence-update", "absence": [ { "id": "e9b5a57f-2f36-462e-aed2-19c6aa990fce", "status": "approved", "type": { "name": "vacation" }, "user": { "id": "c2c8d497-352a-4c21-bf7c-aefbaec37717", "email": "user-email@company.com" }, "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": "admin@company.com" }, "registeredAt": "2022-10-04T11:51:08.962Z", "registeredBy": { "id": "c2c8d497-352a-4c21-bf7c-aefbaec37717", "email": "user-email@company.com" } } ], "actor": { "type": "user", "id": "d96434d7-9506-4d5f-a969-7d1eea8bc3d6", "email": "admin@company.com", "name": "Oskar Lind" } }
Radera
Skickas som en DELETE-förfrågan. absence-objekten innehåller bara ID.
Exempel:
{ "topic": "absence-delete", "absence": [ { "id": "e9b5a57f-2f36-462e-aed2-19c6aa990fce" } ], "actor": { "type": "user", "id": "d96434d7-9506-4d5f-a969-7d1eea8bc3d6", "email": "admin@company.com", "name": "Oskar Lind" } }
Export
När du startar en export från webhook-integrationens sida väljer du tidsperiod, vilka användare och vilka frånvarotyper som ska ingå. Resultatet skickas som en eller flera POST-förfrågningar med upp till 50 poster vardera.
Exempel:
{ "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": "user-email@company.com" }, "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": "admin@company.com" }, "registeredAt": "2022-10-04T11:51:08.962Z", "registeredBy": { "id": "c2c8d497-352a-4c21-bf7c-aefbaec37717", "email": "user-email@company.com" } } ], "actor": { "type": "user", "id": "d96434d7-9506-4d5f-a969-7d1eea8bc3d6", "email": "admin@company.com", "name": "Oskar Lind" } }
Fält som stöds i frånvarohändelser
| Fält | JSON-nyckel |
|---|---|
| Postens ID | id |
| Status | status – något av pending, approved eller rejected |
| Typ | type – ett objekt med name, som är något av: vacation, selfCertifiedSick, sick, paidTimeOff, unpaidTimeOff, sickChild, parentalLeave |
| Användare | user – ett objekt med id och email |
| Startdatum | startDate |
| Slutdatum | endDate |
| Grad | grade – ett decimaltal där 1.0 är 100 % frånvaro, 0.5 är 50 % och så vidare |
| Arbetsrelaterad | workRelated |
| Anteckning | note – tillagd när posten registrerades |
| Kommentar | comment – tillagd när posten granskades |
| Granskad | reviewedAt |
| Granskad av | reviewedBy – ett objekt med id och email |
| Registrerad | registeredAt |
| Registrerad av | registeredBy – ett objekt med id och email |
Händelser för företag, team och platser
För data om företag, team och platser är topic något av följande:
groups-creategroups-updategroups-deletegroups-exportgroups-add-membersgroups-remove-members
Innehållet i alla händelser innehåller en groups-array. Varje gruppobjekt innehåller alltid id, name och type. Värdet för type är COMPANY, TEAM eller LOCATION. Företag kan också innehålla organizationNumber.
Skapa
Skickas som en POST-förfrågan.
Exempel:
{ "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>" } }
Uppdatera
Skickas som en PUT-förfrågan.
Exempel:
{ "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>" } }
Radera
Skickas som en DELETE-förfrågan. Gruppobjekten innehåller bara id, name och type.
Exempel:
{ "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>" } }
Export
När du startar en export från webhook-integrationens sida väljer du vilka grupptyper som ska ingå. Resultatet skickas som en eller flera POST-förfrågningar med upp till 50 gruppobjekt vardera.
Exempel:
{ "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>" } }
Lägga till medlemmar
Skickas som en PUT-förfrågan.
Exempel:
{ "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>" } }
Ta bort medlemmar
Skickas som en PUT-förfrågan.
Exempel:
{ "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>" } }
Aktör
Allt innehåll innehåller ett actor-objekt som beskriver vem som utlöste händelsen. För skapa-, uppdaterings- och raderingshändelser är det användaren som gjorde ändringen. För exporthändelser är det användaren som startade exporten.
💡 Vissa åtgärder utlöses av integrationer i stället för användare. Då har actor-objektet type satt till integration.
| Fält | JSON-nyckel | Kommentar |
|---|---|---|
| Aktörens ID | id | Finns alltid. Ett stabilt UUID. För integrationer är ID:t detsamma efter att anslutningen kopplats ifrån och anslutits igen, men ändras om anslutningen tas bort och skapas på nytt. |
| Aktörstyp | type | Finns alltid. Antingen user eller integration. |
| E-postadress | email | Finns när type är user. Unik när förfrågan skickas, men kan ändras om användarens e-postadress uppdateras. |
| Namn | name | Aktörens namn. |
Säkerhet och regelefterlevnad
Genom att ansluta via webhooks ger du Huma tillåtelse att komma åt er webhook-endpoint enligt våra användarvillkor under Third-Party Platforms.
Vanliga frågor
Vad händer om vår endpoint inte svarar i tid?
Huma förväntar sig ett svar inom 1 sekund. Om er endpoint inte svarar i tid uppstår en timeout. Vi rekommenderar att ni bekräftar förfrågan direkt och bearbetar uppgifterna asynkront.
Varför får jag en users-update-händelse när en tjänst ändras?
När en ändring av en tjänst påverkar den anställdas nuvarande primära tjänst skickar Huma också en users-update-händelse för att hålla de äldre tjänsterelaterade fälten på användarprofilen synkroniserade. Det är förväntat beteende.
Kan jag använda samma webhook-URL för flera händelsetyper?
Ja. Du kan konfigurera en enda webhook-anslutning som tar emot valfri kombination av profil-, tjänste-, frånvaro- och grupphändelser. Använd fältet topic i varje förfrågan för att se vilken typ av händelse det är.
Vad betyder fältet grade i frånvarohändelser?
grade är ett decimaltal som anger graden av frånvaro. Värdet 1.0 betyder att den anställda är helt frånvarande, 0.5 betyder 50 % och så vidare.
Hur kontrollerar jag att en förfrågan verkligen kommer från Huma?
Ange en client secret när du konfigurerar webhooken. Varje förfrågan innehåller då rubriken huma-hmac-sha256 med en hash av innehållet, signerad med er hemlighet. Kontrollera hashen hos er för att bekräfta att förfrågan är äkta.
Vad är employmentId och kan det ändras?
employmentId är en unik identifierare som ni ger anställda i Huma. Den är unik när förfrågan skickas, men kan ändras eller tas bort av en användare med rätt behörighet. Utgå inte från att den är stabil i alla framtida förfrågningar.
Ingår exportkoden från en frånvaropolicy i webhook-meddelanden?
Nej. Exportkoden är en inställning på frånvarotypens policy i Huma och ingår inte i webhook-meddelanden. Frånvarohändelser innehåller frånvarotypens namn (t.ex. vacation, sick) men ingen inställning på policynivå, som exportkoden.