Les webhooks entrants permettent aux outils externes de publier des messages automatisés dans un canal HansaChat. Utilisez-les pour les mises à jour de déploiement, les alertes de surveillance, les notifications de tickets, les soumissions de formulaires et tout autre événement qui doit apparaître dans la discussion d’équipe.
Seuls les administrateurs de l’espace de travail peuvent créer et gérer des webhooks entrants.

Créer un webhook
- Ouvrez Paramètres depuis le bas de la barre latérale, à gauche.
- Sélectionnez Webhooks.
- Choisissez Créer un webhook.
- Saisissez un nom de webhook clair, par exemple
Déploiements CI. - Choisissez le canal dans lequel les messages doivent être publiés.
- Saisissez éventuellement une URL d’icône.
- Choisissez Créer un webhook.


Copier l’URL du webhook
Après la création, HansaChat affiche l’URL du webhook une seule fois. Copiez-la et conservez-la en lieu sûr dans l’outil externe qui enverra les événements.

Si vous fermez cet écran sans avoir enregistré l’URL, régénérez l’URL pour produire un nouveau secret. L’URL précédente cesse de fonctionner immédiatement après la régénération.
Gérer les webhooks
Depuis la page Webhooks, les administrateurs peuvent :
- Modifier le nom du webhook, le canal, l’URL d’icône ou l’état actif.
- Désactiver un webhook pour rejeter les nouveaux messages sans le supprimer.
- Régénérer l’URL pour invalider l’ancien secret et générer une nouvelle URL.
- Supprimer un webhook. Les messages de discussion existants ne sont pas retirés.
Référence technique
Envoyez une requête POST à l’URL du webhook :
https://{workspace-domain}/api/webhooks/{publicID}/{secret}
L’URL contient les identifiants du webhook. Aucun en-tête d’authentification supplémentaire n’est requis. Gardez l’URL complète secrète.
Requête minimale
curl -X POST 'https://{workspace-domain}/api/webhooks/{publicID}/{secret}' \
-H 'Content-Type: application/json' \
-d '{"text":"Deployment completed successfully"}'
Une fois que HansaChat renvoie ok, le message apparaît dans le canal sélectionné.

Payload compatible Slack
Le point de terminaison accepte des payloads JSON compatibles Slack avec text, blocks et 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."
}
}
]
}
Au moins l’un des champs text, blocks ou attachments doit contenir du texte lisible.
Champs pris en charge
| Champ | Requis | Remarques |
|---|---|---|
text |
Non | Contenu du message en texte brut. |
blocks |
Non | Blocs de type Slack Block Kit. Jusqu’à 50 blocs. Types de blocs pris en charge : section, header, context, image. |
attachments |
Non | Pièces jointes de style Slack. Jusqu’à 100 pièces jointes. |
La taille maximale du payload est de 1 Mo.
Limites de débit
L’ingestion des webhooks entrants est soumise à une limite de débit par URL de webhook.
Chaque webhook peut accepter jusqu’à 10 requêtes authentifiées par minute et jusqu’à 100 requêtes authentifiées par heure. Lorsque l’une de ces limites est atteinte, HansaChat renvoie 429 resource_exhausted.
Contactez-nous si vous souhaitez augmenter la limite de débit.
Les limites de payload sont appliquées séparément : la taille maximale du corps est de 1 Mo, blocks accepte jusqu’à 50 éléments, attachments accepte jusqu’à 100 éléments, et le payload doit contenir du texte lisible.
Idempotence
Ajoutez un en-tête Idempotency-Key lorsque votre système peut réessayer le même événement :
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"}'
Si HansaChat reçoit à nouveau la même clé d’idempotence pour le même webhook, il renvoie 200 ok sans créer de message en double.
Réponses
Les requêtes réussies renvoient :
ok
Erreurs courantes :
| Statut | Corps | Signification |
|---|---|---|
| 400 | invalid_payload |
Le corps JSON n’a pas pu être analysé. |
| 400 | invalid_blocks |
La requête contient plus de 50 blocs. |
| 400 | too_many_attachments |
La requête contient plus de 100 pièces jointes. |
| 400 | no_text |
Le payload ne contient aucun texte lisible. |
| 429 | resource_exhausted |
Le webhook a dépassé 10 requêtes par minute ou 100 requêtes par heure. |
| 404 | no_active_hooks |
L’espace de travail, le webhook, le secret ou l’état actif est invalide. |
| 410 | channel_is_archived |
Le canal cible est archivé. |
| 503 | temporarily_unavailable |
HansaChat ne peut pas traiter le message pour le moment. Réessayez plus tard avec la même Idempotency-Key. |
Conseils de sécurité
- Traitez les URL de webhook comme des mots de passe.
- Conservez les URL dans le gestionnaire de secrets de votre outil externe.
- Régénérez l’URL si elle a été exposée ou perdue.
- Désactivez les webhooks inutilisés.
- Utilisez un webhook dédié par système externe afin que l’accès puisse être révoqué proprement.