Slack Notifications

Post real-time event alerts to Slack channels — typically used for revenue notifications, lead alerts, and operational signals to internal teams.

Why route Slack Notifications through Datafly Signal

  • Alerts fire off the same event stream as everything else. No separate instrumentation, and no gap between what your destinations received and what Slack Notifications told you about.
  • Which events reach you is configuration, not code. The trigger conditions live in the pipeline alongside every other rule, so tuning what reaches Slack Notifications does not require an application release.
  • Alert volume is rate-limited. Signal applies the same rate limiting and retry behaviour it uses for any destination, so an incident that spikes your event rate does not flood the channel.

Prerequisites

Complete these steps in Slack before configuring Signal.

Create a Slack app (one-time)

Go to api.slack.com/apps and click Create New App > From scratch:

  1. Name: e.g. “Datafly Signal”.
  2. Workspace: select your target workspace.
  3. Click Create App.

Enable Incoming Webhooks

From the app’s settings page, click Incoming Webhooks in the sidebar and toggle Activate Incoming Webhooks to On.

Add a webhook to a channel

Click Add New Webhook to Workspace at the bottom of the page. Select the channel that should receive notifications (e.g. #sales-alerts) and click Allow.

Slack will display a webhook URL of the form:

https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX

Copy this URL — it’s the only credential Signal needs. Each webhook URL posts to a single fixed channel; create additional webhooks for other channels.

⚠️

The webhook URL is a secret. Anyone with it can post to your channel. Store it in Signal’s secret field and rotate by deleting and re-creating the webhook in Slack if it leaks.

Configuration

FieldTypeRequiredDescription
webhook_urlsecretYesSlack Incoming Webhook URL. It posts to one fixed channel; create one integration per channel.

Signal Setup

  1. Navigate to Integrations in the sidebar.
  2. Open the Integration Library tab.
  3. Find Slack Notifications under the Notifications category.
  4. Click Install, paste the webhook URL and choose the General preset.
  5. Click Install Integration.
⚠️

Turn on Only send mapped fields (strict_output_contract) for this integration. It is the default for integrations created since the strict contract became the default; an integration created before it, or one set to forward unmapped fields, also sends every property the blueprint did not map, which can include personal data added by identity enrichment (#1557).

Event Mapping

The General preset posts one message per chosen event and drops everything else:

Signal eventMessage titleDetail linesDefault
purchaseNew orderOrder ID (transaction_id, else order_id); value and currency (value, else revenue; currency upper-cased)On
generate_leadNew leadLead type; value and currencyOn
sign_upNew sign-upSign-up method; planOn
subscription_startedNew subscriptionPlan; value and currencyOff
Every other event, page views includedDropped

A missing value shows as -, and an over-long value is truncated so each field stays within Slack’s 2,000 characters. No message carries the visitor’s email, phone, name or address.

Message format

Signal posts the event title as text (Slack’s notification fallback) and a Block Kit message: a header block with the title and a section block with plain-text fields. Plain text cannot turn an event value into a mention or a link.

{
  "text": "New order",
  "blocks": [
    { "type": "header", "text": { "type": "plain_text", "text": "New order" } },
    { "type": "section", "fields": [
      { "type": "plain_text", "text": "Order: ORD-001" },
      { "type": "plain_text", "text": "Value: 129.99 GBP" }
    ] }
  ]
}

To change the wording or add an event, edit the integration’s mappings: each line is a template field under blocks[1].fields[n].text, and the title is the event’s vendor event name.

Identity

Slack messages carry no identity data. The preset maps no email, phone, name, address or user ID, and nothing is hashed because nothing personal is sent. Add a customer reference only if everyone in the channel may see it.

Slack notifications are an internal operational signal to your own team. Configure the integration under the functional consent category.

Verify it’s working

  1. After installing, trigger a purchase event from your website (or fire a test via the Signal event API).
  2. Watch the configured Slack channel — the message should arrive within a few seconds.
  3. In Signal, check Live Events to confirm delivery with a 200 response status.

Troubleshooting

SymptomPossible CauseResolution
404 invalid_tokenWebhook URL revoked or mistypedRe-copy the URL from the app’s Incoming Webhooks page in Slack.
403 channel_not_foundThe webhook’s channel was deleted or the app was removedRecreate the webhook against an active channel.
Message arrives but unformattedInvalid Block Kit JSONValidate the template at Slack’s Block Kit Builder.
Too many messagesToo many events enabledDisable events in the integration’s mappings; events not in the preset are always dropped.

Visit Slack Incoming Webhooks documentation for full reference.

See also