HansaChat

Documentation

Indgående webhooks

Opret webhook-URL'er, og send Slack-kompatible JSON-beskeder til kanaler.

Indgående webhooks lader eksterne værktøjer sende automatiserede beskeder til en HansaChat-kanal. Brug dem til deploy-opdateringer, overvågningsalarmer, ticket-notifikationer, formularindsendelser og andre hændelser, der skal vises i teamchatten.

Kun workspace-administratorer kan oprette og administrere indgående webhooks.

Åbn Webhooks fra Indstillinger

Opret en webhook

  1. Åbn Indstillinger i sidebjælken nederst til venstre.
  2. Vælg Webhooks.
  3. Vælg Opret webhook.
  4. Indtast et tydeligt webhook-navn, f.eks. CI Deployments.
  5. Vælg den kanal, hvor beskederne skal postes.
  6. Indtast evt. en ikon-URL.
  7. Vælg Opret webhook.

Tom webhooks-side

Formularen Opret webhook udfyldt

Kopiér webhook-URL'en

Efter oprettelsen viser HansaChat webhook-URL'en én gang. Kopiér den, og gem den sikkert i det eksterne værktøj, der skal sende hændelser.

Webhook-URL vist én gang

Hvis De lukker denne skærm uden at gemme URL'en, skal De rotere URL'en for at generere en ny hemmelig nøgle. Den forrige URL holder op med at virke straks efter rotationen.

Administrér webhooks

Fra Webhooks-siden kan administratorer:

  • Redigér webhookens navn, kanal, ikon-URL eller aktive tilstand.
  • Deaktivér en webhook for at afvise nye beskeder uden at slette den.
  • Rotér URL for at ugyldiggøre den gamle hemmelige nøgle og generere en ny URL.
  • Slet en webhook. Eksisterende chatbeskeder fjernes ikke.

Teknisk reference

Send en POST-anmodning til webhook-URL'en:

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

URL'en indeholder webhookens loginoplysninger. Der kræves ingen ekstra godkendelsesheader. Hold hele URL'en hemmelig.

Minimal anmodning

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

Når HansaChat returnerer ok, vises beskeden i den valgte kanal.

Webhook-testbesked i en kanal

Slack-kompatibel payload

Endpointet accepterer Slack-kompatible JSON-payloads med text, blocks og 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."
      }
    }
  ]
}

Mindst én af text, blocks eller attachments skal indeholde læsbar tekst.

Understøttede felter

Felt Påkrævet Bemærkninger
text Nej Almindeligt tekstindhold til beskeden.
blocks Nej Blokke i Slack Block Kit-stil. Op til 50 blokke. Understøttede bloktyper: section, header, context, image.
attachments Nej Vedhæftninger i Slack-stil. Op til 100 vedhæftninger.

Maksimal payload-størrelse er 1 MB.

Rate-grænser

Indtagelsen af indgående webhooks er rate-begrænset pr. webhook-URL.

Hver webhook kan acceptere op til 10 godkendte anmodninger i minuttet og op til 100 godkendte anmodninger i timen. Når en af grænserne nås, returnerer HansaChat 429 resource_exhausted.

Kontakt os, hvis De ønsker at få hævet rate-grænsen.

Payload-grænserne håndhæves separat: maksimal brødtekststørrelse er 1 MB, blocks accepterer op til 50 elementer, attachments accepterer op til 100 elementer, og payloaden skal indeholde læsbar tekst.

Idempotens

Tilføj en Idempotency-Key-header, når Deres system muligvis sender den samme hændelse igen:

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

Hvis HansaChat modtager den samme idempotensnøgle igen for den samme webhook, returneres 200 ok uden at der oprettes en duplikeret besked.

Svar

Vellykkede anmodninger returnerer:

ok

Almindelige fejl:

Status Svarbrødtekst Betydning
400 invalid_payload JSON-brødteksten kunne ikke parses.
400 invalid_blocks Anmodningen indeholder mere end 50 blokke.
400 too_many_attachments Anmodningen indeholder mere end 100 vedhæftninger.
400 no_text Payloaden har ingen læsbar tekst.
429 resource_exhausted Webhooken overskred 10 anmodninger i minuttet eller 100 anmodninger i timen.
404 no_active_hooks Workspacet, webhooken, den hemmelige nøgle eller den aktive tilstand er ugyldig.
410 channel_is_archived Målkanalen er arkiveret.
503 temporarily_unavailable HansaChat kan ikke behandle beskeden lige nu. Prøv igen senere med den samme Idempotency-Key.

Sikkerhedstips

  • Behandl webhook-URL'er som adgangskoder.
  • Gem URL'erne i Deres eksterne værktøjs secret manager.
  • Rotér URL'en, hvis den er blevet eksponeret eller mistet.
  • Deaktivér ubrugte webhooks.
  • Brug én dedikeret webhook pr. eksternt system, så adgangen kan tilbagekaldes på en ren måde.