CRAnotify Documentation

Slack, Teams and webhooks

Besides email, events can land where the team actually looks: a Slack channel, a Microsoft Teams channel, or your own system through a signed webhook. They are configured from Account area › Alerts and are an administrator action.

The channels

ChannelWhat it needsFormat
SlackAn incoming webhook for the workspace.A message with a bold title, the text and a link to the case.
Microsoft TeamsAn incoming webhook connector on the channel.A card with title, text and link.
Generic webhookAn HTTPS endpoint of yours.JSON with event, title, text, link, HMAC-signed.

Which events to send

Events are enabled individually: new report, triage outcome, deadline approaching. Enable only what requires action — a channel that pings for everything stops being read within a week.

Good practice. A dedicated channel (say #cra-notify) carrying only new reports and deadlines, and none of the informational events. Whoever watches the deadlines must be able to tell at a glance what is urgent.

The signed webhook

The generic webhook sends a JSON POST with the header:

X-CRA-Signature: sha256=<HMAC-SHA256 of the body, in hex>

The secret is generated for your organisation and is visible on the alerts screen. The receiver must:

  1. read the raw body, before any deserialisation;
  2. compute the HMAC-SHA256 with the shared secret;
  3. compare it with the header using a constant-time comparison;
  4. reject the request if they do not match.
// example in Go
mac := hmac.New(sha256.New, []byte(secret))
mac.Write(rawBody)
want := "sha256=" + hex.EncodeToString(mac.Sum(nil))
if !hmac.Equal([]byte(want), []byte(r.Header.Get("X-CRA-Signature"))) {
    http.Error(w, "invalid signature", http.StatusUnauthorized)
    return
}

Without signature verification your endpoint accepts any message from anyone who knows its address. If the secret has been exposed, regenerate it on the alerts screen and update the receiver.

Test message

The screen sends a test message to every active channel and records each outcome in the activity registry («ok» or the error returned). It is the quick way to tell a wrong address from a connector disabled by the workspace from a network problem.

Limits and behaviour

  • Each dispatch has a short timeout: a slow channel does not slow down the workflow.
  • A channel answering with an error is recorded as failed, but it does not block the other channels or the email.
  • These channels are a convenient duplicate, not the evidential channel: evidence remains the registry and the operational email.

What is sent

The message carries the event title, a few descriptive lines (product and case identifier) and the link to the case. It does not carry the full text of the report or the attachments: someone without access to the application learns nothing confidential from the chat channel alone.

Didn’t find the answer?

Support replies within one working day. Quote your organisation code and, if the request concerns a case, its number.

Documentation updated on 5 August 2026 · Legal notice · Privacy · support@cranotify.eu