Slack Notifications

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

⚠️

This integration is currently in alpha. Configuration and behaviour may change.

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.
message_templatetextareaNoOptional message template (Handlebars). Defaults to a sensible per-event-type template.

Signal Setup

Quick 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 customise the message template if needed.
  5. Click Install Integration.

API Setup

curl -X POST http://localhost:8084/v1/admin/integration-catalog/slack/install \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Slack Sales Alerts",
    "variant": "default",
    "config": {
      "webhook_url": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"
    },
    "delivery_mode": "server_side"
  }'

Event Mapping

The default Slack blueprint enables a single event:

Datafly EventSlack MessageNotes
Order CompletedOrder summaryIncludes order_id, revenue, currency.
Other eventsDropped by defaultEnable per-event in the blueprint editor to expand coverage.

Message format

By default Signal posts a simple text message. For richer formatting, supply a Slack Block Kit JSON template:

{
  "blocks": [
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": ":moneybag: *New order* `{{properties.order_id}}` — {{properties.currency}} {{properties.revenue}}"
      }
    }
  ]
}

Variables use dot notation: {{properties.order_id}}, {{traits.email}}, {{context.page.url}}.

Identity

Slack notifications typically include user-identifying detail in the message body rather than as structured fields. Useful properties to include:

FieldUse
traits.emailIdentifies the customer in the alert.
user_idInternal customer ID, useful for support follow-up.
properties.order_idReference the order in your back-office system.

Slack notifications are an internal operational signal — they go to your own team, not the customer. The integration should be configured under the functional consent category. Customer-identifiable detail in the message body should be limited to what is necessary for internal operations.

Verify it’s working

  1. After installing, trigger an Order Completed 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 messagesEvent filter too broadRestrict the integration to specific events (e.g. only Order Completed) in the blueprint editor.

Visit Slack Incoming Webhooks documentation for full reference.

See also