Inkomende webhooks laten externe tools automatische berichten in een HansaChat-kanaal plaatsen. Gebruik ze voor implementatie-updates, monitoringwaarschuwingen, ticketmeldingen, inzendingen van formulieren en andere gebeurtenissen die in de teamchat horen te verschijnen.
Alleen workspacebeheerders kunnen inkomende webhooks aanmaken en beheren.

Een webhook aanmaken
- Open Instellingen linksonder in de zijbalk.
- Selecteer Webhooks.
- Kies Webhook maken.
- Voer een duidelijke webhooknaam in, zoals
CI Deployments. - Kies het kanaal waarin berichten moeten verschijnen.
- Voer optioneel een icon-URL in.
- Kies Webhook maken.


De webhook-URL kopiëren
Na het aanmaken toont HansaChat de webhook-URL één keer. Kopieer de URL en bewaar die veilig in de externe tool die gebeurtenissen gaat versturen.

Als u dit scherm sluit zonder de URL op te slaan, roteert u de URL om een nieuw geheim te genereren. De vorige URL werkt direct na de rotatie niet meer.
Webhooks beheren
Vanaf de webhooks-pagina kunnen beheerders:
- de webhooknaam, het kanaal, de icon-URL of de actieve status bewerken;
- een webhook uitschakelen, zodat nieuwe berichten worden geweigerd zonder de webhook te verwijderen;
- URL roteren om het oude geheim ongeldig te maken en een nieuwe URL te genereren;
- een webhook verwijderen. Bestaande chatberichten worden niet verwijderd.
Technische referentie
Stuur een POST-verzoek naar de webhook-URL:
https://{workspace-domain}/api/webhooks/{publicID}/{secret}
De URL bevat de inloggegevens van de webhook. Er is geen extra authenticatieheader nodig. Houd de volledige URL geheim.
Minimaal verzoek
curl -X POST 'https://{workspace-domain}/api/webhooks/{publicID}/{secret}' \
-H 'Content-Type: application/json' \
-d '{"text":"Deployment completed successfully"}'
Zodra HansaChat ok teruggeeft, verschijnt het bericht in het gekozen kanaal.

Slack-compatibele payload
Het endpoint accepteert Slack-compatibele JSON-payloads met text, blocks en attachments.
{
"text": "Deployment completed successfully",
"blocks": [
{
"type": "header",
"text": {
"type": "plain_text",
"text": "Deployment completed"
}
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "Branch `main` is now live."
}
}
]
}
Minstens één van text, blocks of attachments moet leesbare tekst bevatten.
Ondersteunde velden
| Veld | Verplicht | Opmerkingen |
|---|---|---|
text |
Nee | Berichtinhoud als platte tekst. |
blocks |
Nee | Blokken in Slack Block Kit-stijl. Maximaal 50 blokken. Ondersteunde blocktypes: section, header, context, image. |
attachments |
Nee | Bijlagen in Slack-stijl. Maximaal 100 bijlagen. |
De maximale grootte van de payload is 1 MB.
Snelheidslimieten
De verwerking van inkomende webhooks is per webhook-URL aan een snelheidslimiet gebonden.
Elke webhook kan maximaal 10 geauthenticeerde verzoeken per minuut en maximaal 100 geauthenticeerde verzoeken per uur verwerken. Wanneer een van beide limieten is bereikt, geeft HansaChat 429 resource_exhausted terug.
Neem contact met ons op als u de snelheidslimiet wilt verhogen.
Payload-limieten worden apart gehandhaafd: de maximale grootte van de body is 1 MB, blocks accepteert maximaal 50 items, attachments accepteert maximaal 100 items en de payload moet leesbare tekst bevatten.
Idempotentie
Voeg een Idempotency-Key-header toe wanneer uw systeem dezelfde gebeurtenis mogelijk opnieuw verstuurt:
curl -X POST 'https://{workspace-domain}/api/webhooks/{publicID}/{secret}' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: deploy-1247' \
-d '{"text":"Deployment #1247 completed"}'
Als HansaChat dezelfde idempotentiesleutel opnieuw ontvangt voor dezelfde webhook, geeft het 200 ok terug zonder een dubbel bericht aan te maken.
Antwoorden
Geslaagde verzoeken geven terug:
ok
Veelvoorkomende fouten:
| Status | Body | Betekenis |
|---|---|---|
| 400 | invalid_payload |
De JSON-body kon niet worden geparseerd. |
| 400 | invalid_blocks |
Het verzoek bevat meer dan 50 blokken. |
| 400 | too_many_attachments |
Het verzoek bevat meer dan 100 bijlagen. |
| 400 | no_text |
De payload bevat geen leesbare tekst. |
| 429 | resource_exhausted |
De webhook heeft meer dan 10 verzoeken per minuut of 100 verzoeken per uur verstuurd. |
| 404 | no_active_hooks |
De workspace, de webhook, het geheim of de actieve status is ongeldig. |
| 410 | channel_is_archived |
Het doelkanaal is gearchiveerd. |
| 503 | temporarily_unavailable |
HansaChat kan het bericht op dit moment niet verwerken. Probeer het later opnieuw met dezelfde Idempotency-Key. |
Beveiligingstips
- Behandel webhook-URL's zoals wachtwoorden.
- Bewaar URL's in de secret manager van uw externe tool.
- Roteer de URL als deze is gelekt of verloren is gegaan.
- Schakel ongebruikte webhooks uit.
- Gebruik een aparte webhook per extern systeem, zodat toegang netjes kan worden ingetrokken.