Dolazni webhookovi omogućuju vanjskim alatima objavljivanje automatskih poruka u HansaChat kanal. Upotrijebite ih za ažuriranja implementacija, upozorenja nadzora, obavijesti o karticama, prijave obrazaca i druge događaje koji trebaju biti vidljivi u timskom chatu.
Samo administratori radnog prostora mogu stvarati i upravljati dolaznim webhookovima.

Stvaranje webhooka
- Otvorite Postavke iz donje lijeve bočne trake.
- Odaberite Webhookovi.
- Odaberite Stvori webhook.
- Unesite jasan naziv webhooka, primjerice
CI Deployments. - Odaberite kanal u koji se poruke trebaju objavljivati.
- Po želji unesite URL ikone.
- Odaberite Stvori webhook.


Kopiranje URL-a webhooka
Nakon stvaranja HansaChat prikazuje URL webhooka samo jednom. Kopirajte ga i pohranite na sigurno mjesto u vanjskom alatu koji će slati događaje.

Ako zatvorite ovaj zaslon bez spremanja URL-a, rotirajte URL da biste generirali novu tajnu. Prethodni URL prestaje raditi odmah nakon rotacije.
Upravljanje webhookovima
Sa stranice Webhookovi administratori mogu:
- Urediti naziv webhooka, kanal, URL ikone ili aktivno stanje.
- Onemogućiti webhook da biste odbijali nove poruke bez brisanja.
- Rotirati URL da biste poništili staru tajnu i generirali novi URL.
- Izbrisati webhook. Postojeće poruke u chatu ne uklanjaju se.
Tehnička referenca
Pošaljite POST zahtjev na URL webhooka:
https://{workspace-domain}/api/webhooks/{publicID}/{secret}
URL sadrži vjerodajnice webhooka. Nije potrebno dodatno zaglavlje za autentikaciju. Čuvajte cijeli URL kao tajnu.
Minimalni zahtjev
curl -X POST 'https://{workspace-domain}/api/webhooks/{publicID}/{secret}' \
-H 'Content-Type: application/json' \
-d '{"text":"Deployment completed successfully"}'
Kada HansaChat vrati ok, poruka se pojavljuje u odabranom kanalu.

Payload kompatibilan sa Slackom
Krajnja točka prihvaća JSON payloadove kompatibilne sa Slackom s poljima text, blocks i 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."
}
}
]
}
Barem jedno od polja text, blocks ili attachments mora sadržavati čitljiv tekst.
Podržana polja
| Polje | Obavezno | Napomene |
|---|---|---|
text |
Ne | Sadržaj poruke kao običan tekst. |
blocks |
Ne | Blokovi u stilu Slack Block Kita. Do 50 blokova. Podržane vrste blokova: section, header, context, image. |
attachments |
Ne | Prilozi u stilu Slacka. Do 100 priloga. |
Maksimalna veličina payloada je 1 MB.
Ograničenja učestalosti
Prijem dolaznih webhookova ograničen je po učestalosti za svaki URL webhooka.
Svaki webhook može prihvatiti do 10 autenticiranih zahtjeva u minuti i do 100 autenticiranih zahtjeva na sat. Kada se bilo koje od tih ograničenja dosegne, HansaChat vraća 429 resource_exhausted.
Kontaktirajte nas ako želite povećati ograničenje učestalosti.
Ograničenja payloada provode se odvojeno: maksimalna veličina tijela je 1 MB, blocks prihvaća do 50 stavki, attachments do 100 stavki, a payload mora sadržavati čitljiv tekst.
Idempotencija
Dodajte zaglavlje Idempotency-Key kada vaš sustav može ponovno poslati isti događaj:
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"}'
Ako HansaChat ponovno primi isti ključ idempotencije za isti webhook, vraća 200 ok bez stvaranja duplicirane poruke.
Odgovori
Uspješni zahtjevi vraćaju:
ok
Uobičajene pogreške:
| Status | Tijelo | Značenje |
|---|---|---|
| 400 | invalid_payload |
JSON tijelo nije bilo moguće analizirati. |
| 400 | invalid_blocks |
Zahtjev sadrži više od 50 blokova. |
| 400 | too_many_attachments |
Zahtjev sadrži više od 100 priloga. |
| 400 | no_text |
Payload nema čitljivog teksta. |
| 429 | resource_exhausted |
Webhook je premašio 10 zahtjeva u minuti ili 100 zahtjeva na sat. |
| 404 | no_active_hooks |
Radni prostor, webhook, tajna ili aktivno stanje nisu valjani. |
| 410 | channel_is_archived |
Ciljni kanal je arhiviran. |
| 503 | temporarily_unavailable |
HansaChat trenutačno ne može obraditi poruku. Pokušajte kasnije s istim Idempotency-Key. |
Sigurnosni savjeti
- Postupajte s URL-ovima webhookova kao s lozinkama.
- Pohranite URL-ove u upravitelju tajni svog vanjskog alata.
- Rotirajte URL ako je bio izložen ili izgubljen.
- Onemogućite nekorištene webhookove.
- Upotrijebite namjenski webhook za svaki vanjski sustav kako bi se pristup mogao uredno opozvati.