HansaChat

Documentation

Webhook-uri primite

Creați URL-uri de webhook și publicați mesaje JSON compatibile Slack în canale.

Webhook-urile primite le permit instrumentelor externe să publice mesaje automate într-un canal HansaChat. Utilizați-le pentru actualizări de implementare, alerte de monitorizare, notificări de tichete, trimiteri de formulare și alte evenimente care ar trebui să apară în chat-ul echipei.

Doar administratorii de workspace pot crea și gestiona webhook-uri primite.

Deschideți Webhook-uri din Setări

Creați un webhook

  1. Deschideți Setări din bara laterală din stânga jos.
  2. Selectați Webhook-uri.
  3. Alegeți Creare webhook.
  4. Introduceți un nume clar de webhook, cum ar fi CI Deployments.
  5. Alegeți canalul în care ar trebui publicate mesajele.
  6. Opțional, introduceți un URL de pictogramă.
  7. Alegeți Creare webhook.

Pagina goală de webhook-uri

Formularul de creare a webhook-ului

Copiați URL-ul webhook-ului

După creare, HansaChat afișează URL-ul webhook-ului o singură dată. Copiați-l și stocați-l în condiții de siguranță în instrumentul extern care va trimite evenimentele.

URL-ul webhook-ului afișat o singură dată

Dacă închideți acest ecran fără a salva URL-ul, regenerați URL-ul pentru a produce un nou secret. URL-ul anterior încetează să funcționeze imediat după regenerare.

Gestionați webhook-urile

Din pagina Webhook-uri, administratorii pot:

  • Edita numele webhook-ului, canalul, URL-ul pictogramei sau starea activă.
  • Dezactiva un webhook pentru a respinge mesajele noi fără a-l șterge.
  • Regenerare URL pentru a invalida vechiul secret și a genera un URL nou.
  • Șterge un webhook. Mesajele existente din chat nu sunt eliminate.

Referință tehnică

Trimiteți o cerere POST către URL-ul webhook-ului:

https://{workspace-domain}/api/webhooks/{publicID}/{secret}

URL-ul conține datele de autentificare ale webhook-ului. Nu este necesar niciun antet suplimentar de autentificare. Păstrați URL-ul complet secret.

Cerere minimă

curl -X POST 'https://{workspace-domain}/api/webhooks/{publicID}/{secret}' \
  -H 'Content-Type: application/json' \
  -d '{"text":"Deployment completed successfully"}'

După ce HansaChat returnează ok, mesajul apare în canalul selectat.

Mesajul de test al webhook-ului într-un canal

Payload compatibil cu Slack

Punctul final acceptă payload-uri JSON compatibile cu Slack, cu 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."
      }
    }
  ]
}

Cel puțin unul dintre text, blocks sau attachments trebuie să conțină text lizibil.

Câmpuri acceptate

Câmp Obligatoriu Note
text Nu Conținut de mesaj în text simplu.
blocks Nu Blocuri în stil Slack Block Kit. Până la 50 de blocuri. Tipuri de blocuri acceptate: section, header, context, image.
attachments Nu Atașamente în stil Slack. Până la 100 de atașamente.

Dimensiunea maximă a payload-ului este de 1 MB.

Limite de rată

Ingestia webhook-urilor primite este limitată ca rată per URL de webhook.

Fiecare webhook poate accepta până la 10 cereri autenticate pe minut și până la 100 de cereri autenticate pe oră. Când una dintre limite este atinsă, HansaChat returnează 429 resource_exhausted.

Vă rugăm să ne contactați dacă doriți să creșteți limita de rată.

Limitele pentru payload sunt impuse separat: dimensiunea maximă a corpului este de 1 MB, blocks acceptă până la 50 de elemente, attachments acceptă până la 100 de elemente, iar payload-ul trebuie să conțină text lizibil.

Idempotență

Adăugați un antet Idempotency-Key atunci când sistemul dvs. poate reîncerca același eveniment:

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"}'

Dacă HansaChat primește din nou aceeași cheie de idempotență pentru același webhook, returnează 200 ok fără a crea un mesaj duplicat.

Răspunsuri

Cererile reușite returnează:

ok

Erori obișnuite:

Status Corp Semnificație
400 invalid_payload Corpul JSON nu a putut fi analizat.
400 invalid_blocks Cererea conține mai mult de 50 de blocuri.
400 too_many_attachments Cererea conține mai mult de 100 de atașamente.
400 no_text Payload-ul nu are text lizibil.
429 resource_exhausted Webhook-ul a depășit 10 cereri pe minut sau 100 de cereri pe oră.
404 no_active_hooks Workspace-ul, webhook-ul, secretul sau starea activă este nevalidă.
410 channel_is_archived Canalul țintă este arhivat.
503 temporarily_unavailable HansaChat nu poate procesa mesajul momentan. Reîncercați mai târziu cu același Idempotency-Key.

Sfaturi de securitate

  • Tratați URL-urile de webhook ca pe parole.
  • Stocați URL-urile în managerul de secrete al instrumentului extern.
  • Regenerați URL-ul dacă acesta a fost expus sau pierdut.
  • Dezactivați webhook-urile nefolosite.
  • Utilizați un webhook dedicat pentru fiecare sistem extern, astfel încât accesul să poată fi revocat în mod curat.