acked. Docs Open Acked
DocsConnect

Destinations and automation

Optionally send alert events to Slack or external HTTPS endpoints.

Destinations are optional

Destinations send alert events out of Acked. They do not control paging or receive monitoring signals.

Choose a destination

DestinationUse
SlackPost incident updates to channels for all services or selected services.
WebhookSend signed lifecycle events to an HTTPS endpoint.

Open Integrations → Destinations to manage both destination types. API keys have a separate page because they grant product access.

Connect Slack

  1. Open Integrations → Destinations.
  2. Select Connect Slack.
  3. Approve the Acked app in the required workspace.
  4. Invite @Acked to each target channel.
  5. Copy the Slack channel ID from channel details.
  6. Add the channel in Acked and select its services.

A channel with no service filter receives events for every service. Saving a channel sends a confirmation post.

Create a webhook destination

  1. Open Integrations → Destinations.
  2. Find Webhook destinations and select Add webhook.
  3. Enter the HTTPS endpoint.
  4. Select the lifecycle events and services.
  5. Choose the Acked format, a provider format, a saved template, or a custom template.
  6. Preview the payload and create the webhook.
  7. Copy the signing secret from the one-time prompt.

Use the webhook detail page to test, edit, disable, enable, or delete the destination.

Select lifecycle events

Acked can send these events:

  • alert.triggered
  • alert.acked
  • alert.escalated
  • alert.resolved
  • alert.unreachable

Choose only the events that the receiver uses. Apply service filters when the endpoint should receive a subset.

Verify webhook signatures

Verify the x-acked-signature header before you process a request.

x-acked-signature: t=1700000000,v1=<hex>,v2=<base64>

Build the signed value from the timestamp, a literal period, and the exact request body.

signed_value = "{t}.{raw_body}"
v1 = hex(hmac_sha256(signing_secret, signed_value))

Use a constant-time comparison. Reject timestamps outside your replay window. Five minutes is a suitable default.

New receivers can use v2 with the Ed25519 public key from the webhook detail page. Acked continues to send v1 for compatibility.

Understand retries and failures

Acked retries failed webhook deliveries with exponential backoff. The webhook detail page shows recent delivery status.

Return a successful HTTP status only after the receiver accepts the event. Keep event processing idempotent because network failures can cause a repeated delivery.

Reuse a payload template

Saved templates share one payload format across several webhooks. Existing webhooks keep their saved copy when you revoke a template.

Preview every format before you save it. Use escaping filters for values inserted into HTML or provider markup.