Hoppa till innehåll
  • Det finns inga förslag eftersom sökfältet är tomt.

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

RollÅtkomst
Systemroll med fullständig åtkomst till OrganisationKan 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

  1. Gå till Integrationer.
  2. Leta upp Webhook och klicka på «Ny anslutning».
  3. Klicka på «Konfigurera».
  4. 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-sha256 med 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: DELETE för raderingar, PUT för skapande, PATCH fö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ältJSON-nyckelKommentar
Användar-IDidFinns alltid. Ett unikt, stabilt UUID (RFC 4122) som inte ändras under användarens livstid.
Tidigare e-postadressoldEmailFinns alltid.
Ny e-postadressnewEmailFinns alltid.
Anställnings-IDemploymentIdFinns 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-create
  • users-update
  • users-delete
  • users-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ältJSON-nyckel
E-postadressemail – ändringar av den primära e-postadressen skickas som en separat händelse, user-email-update
Statusstatus
FörnamngivenName
EfternamnfamilyName
TilltalsnamnpreferredName
Telefonnummerphone
Privat e-postadressprivateEmail
Adressaddress
FödelsedatumbirthDate
Nationalitetnationality
KostbehovdietaryRequirements
Kul faktafunfacts
Intresseninterests – antingen null eller en array med strängar
BankkontonummerbankAccount – 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öngender
CivilståndcivilStatus
Identifikationeridentifications – 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 ledaresupervisor – antingen null eller ett objekt med id och email
Anställnings-IDemploymentId
Relevant erfarenhetrelevantExperienceInMonths – 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ältJSON-nyckel
Anställningens startdatumemploymentStartDate
Slutdatum för provanställningprobationEndDate
Första arbetsdagfirstDayOfWork
Datum för uppsägningterminationNoticeDate
Sista arbetsdaglastDayOfWork
Anställningens slutdatumemploymentEndDate
AnställningstypemploymentType – antingen null eller något av: Permanent, Temporary, Seasonal, Casual, Trainee, Job training program, Consultant, Freelance, Third party, Other
AnställningsprocentemploymentPercentage
BefattningjobTitle
BefattningsbeskrivningjobDescription

 

⚠️ Lön (kommer som separata händelser under 2026)

FältJSON-nyckelKommentar
LönsalaryEtt objekt med löneinformation. Bara den aktuella lönen skickas.
 salary.idEn unik identifierare för lönen (UUID)
 salary.periodUnitNågot av hourly, weekly, monthly eller yearly
 salary.amountEtt decimaltal
 salary.currencyEn valutakod enligt ISO 4217
 salary.fromDateFinns alltid
 salary.toDateValfritt
 salary.currentEtt booleskt värde som anger om det är den anställdas aktuella lön
 salary.noteValfri 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-create
  • positions-update
  • positions-delete
  • positions-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ältJSON-nyckel
Tjänstens IDid
Befattningtitle
Befattningsbeskrivningdescription – antingen en egen beskrivning eller beskrivningen som är angiven på befattningen
AvtalstypcontractType – antingen null eller något av: Permanent, Temporary, Seasonal, Casual, Trainee, Job training program, Consultant, Freelance, Third party, Other
Procentpercentage
AvtalslandcontractCountry
Anteckningnote
Avtalets startdatumcontractStartDate
Första arbetsdagfirstDayOfWork
Slutdatum för provanställningprobationEndDate
Datum för uppsägningterminationNoticeDate
Sista arbetsdaglastDayOfWork
Avtalets slutdatumcontractEndDate
Anledning till avslutendReason – 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 avslutwantedEnd – true eller false
Anteckning vid avslutendNote

 

Frånvarohändelser

För frånvarodata är topic något av följande:

  • absence-create
  • absence-update
  • absence-delete
  • absence-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ältJSON-nyckel
Postens IDid
Statusstatus – något av pending, approved eller rejected
Typtype – ett objekt med name, som är något av: vacation, selfCertifiedSick, sick, paidTimeOff, unpaidTimeOff, sickChild, parentalLeave
Användareuser – ett objekt med id och email
StartdatumstartDate
SlutdatumendDate
Gradgrade – ett decimaltal där 1.0 är 100 % frånvaro, 0.5 är 50 % och så vidare
ArbetsrelateradworkRelated
Anteckningnote – tillagd när posten registrerades
Kommentarcomment – tillagd när posten granskades
GranskadreviewedAt
Granskad avreviewedBy – ett objekt med id och email
RegistreradregisteredAt
Registrerad avregisteredBy – 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-create
  • groups-update
  • groups-delete
  • groups-export
  • groups-add-members
  • groups-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ältJSON-nyckelKommentar
Aktörens IDidFinns 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örstyptypeFinns alltid. Antingen user eller integration.
E-postadressemailFinns när type är user. Unik när förfrågan skickas, men kan ändras om användarens e-postadress uppdateras.
NamnnameAktö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.