HansaChat

Documentation

Inkommande webhooks

Skapa webhook-URL:er och posta Slack-kompatibla JSON-meddelanden i kanaler.

Inkommande webhooks låter externa verktyg posta automatiserade meddelanden i en HansaChat-kanal. Använd dem för driftsättningsuppdateringar, övervakningslarm, ärendenotiser, formulärsvar och andra händelser som bör synas i teamchatten.

Endast arbetsytans administratörer kan skapa och hantera inkommande webhooks.

Öppna Webhooks från Inställningar

Skapa en webhook

  1. Öppna Inställningar från sidopanelens nedre vänstra hörn.
  2. Välj Webhooks.
  3. Välj Skapa webhook.
  4. Ange ett tydligt webhook-namn, till exempel CI Deployments.
  5. Välj kanalen som meddelandena ska postas i.
  6. Ange vid behov en ikon-URL.
  7. Välj Skapa webhook.

Tom webhooksida

Formuläret Skapa webhook

Kopiera webhook-URL:en

Efter skapandet visar HansaChat webhook-URL:en en enda gång. Kopiera den och spara den på ett säkert ställe i det externa verktyg som ska skicka händelser.

Webhook-URL:en visas en gång

Stänger ni den här vyn utan att ha sparat URL:en roterar ni URL:en för att skapa en ny hemlighet. Den tidigare URL:en slutar fungera omedelbart efter rotationen.

Hantera webhooks

På webhooksidan kan administratörer:

  • Redigera webhookens namn, kanal, ikon-URL eller aktiva tillstånd.
  • Inaktivera en webhook för att avvisa nya meddelanden utan att radera den.
  • Rotera URL för att ogiltigförklara den gamla hemligheten och skapa en ny URL.
  • Radera en webhook. Befintliga chattmeddelanden tas inte bort.

Teknisk referens

Skicka en POST-begäran till webhook-URL:en:

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

URL:en innehåller webhookens autentiseringsuppgifter. Ingen extra autentiseringsheader krävs. Håll hela URL:en hemlig.

Minimal begäran

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

När HansaChat har returnerat ok visas meddelandet i den valda kanalen.

Testmeddelande från en webhook i en kanal

Slack-kompatibel nyttolast

Slutpunkten accepterar Slack-kompatibla JSON-nyttolaster med text, blocks och 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."
      }
    }
  ]
}

Minst ett av text, blocks eller attachments måste innehålla läsbar text.

Fält som stöds

Fält Krävs Anmärkningar
text Nej Meddelandeinnehåll i vanlig text.
blocks Nej Block i Slack Block Kit-stil. Upp till 50 block. Blocktyper som stöds: section, header, context, image.
attachments Nej Bilagor i Slack-stil. Upp till 100 bilagor.

Största nyttolaststorlek är 1 MB.

Hastighetsbegränsningar

Inkommande webhooks är hastighetsbegränsade per webhook-URL.

Varje webhook kan ta emot upp till 10 autentiserade begäranden per minut och upp till 100 autentiserade begäranden per timme. När någon av gränserna nås returnerar HansaChat 429 resource_exhausted.

Kontakta oss om ni vill höja hastighetsbegränsningen.

Nyttolastgränserna hanteras separat: största brödtext är 1 MB, blocks tar upp till 50 objekt, attachments tar upp till 100 objekt, och nyttolasten måste innehålla läsbar text.

Idempotens

Lägg till en Idempotency-Key-header när ert system kan skicka om samma händelse:

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

Får HansaChat samma idempotensnyckel igen för samma webhook returneras 200 ok utan att något dubblettmeddelande skapas.

Svar

Lyckade begäranden returnerar:

ok

Vanliga fel:

Status Brödtext Betydelse
400 invalid_payload JSON-brödtexten kunde inte tolkas.
400 invalid_blocks Begäran innehåller fler än 50 block.
400 too_many_attachments Begäran innehåller fler än 100 bilagor.
400 no_text Nyttolasten har ingen läsbar text.
429 resource_exhausted Webhooken överskred 10 begäranden per minut eller 100 begäranden per timme.
404 no_active_hooks Arbetsytan, webhooken, hemligheten eller det aktiva tillståndet är ogiltigt.
410 channel_is_archived Målkanalen är arkiverad.
503 temporarily_unavailable HansaChat kan inte bearbeta meddelandet just nu. Försök igen senare med samma Idempotency-Key.

Säkerhetstips

  • Behandla webhook-URL:er som lösenord.
  • Spara URL:erna i det externa verktygets hemlighetshanterare.
  • Rotera URL:en om den har exponerats eller kommit bort.
  • Inaktivera oanvända webhooks.
  • Använd en dedikerad webhook per externt system så att åtkomsten kan återkallas rent.