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:
- Name: e.g. “Datafly Signal”.
- Workspace: select your target workspace.
- 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/XXXXXXXXXXXXXXXXXXXXXXXXCopy 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
| Field | Type | Required | Description |
|---|---|---|---|
webhook_url | secret | Yes | Slack Incoming Webhook URL. |
message_template | textarea | No | Optional message template (Handlebars). Defaults to a sensible per-event-type template. |
Signal Setup
Quick Setup
- Navigate to Integrations in the sidebar.
- Open the Integration Library tab.
- Find Slack Notifications under the Notifications category.
- Click Install, paste the webhook URL, and customise the message template if needed.
- 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 Event | Slack Message | Notes |
|---|---|---|
Order Completed | Order summary | Includes order_id, revenue, currency. |
| Other events | Dropped by default | Enable 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:
| Field | Use |
|---|---|
traits.email | Identifies the customer in the alert. |
user_id | Internal customer ID, useful for support follow-up. |
properties.order_id | Reference the order in your back-office system. |
Consent
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
- After installing, trigger an
Order Completedevent from your website (or fire a test via the Signal event API). - Watch the configured Slack channel — the message should arrive within a few seconds.
- In Signal, check Live Events to confirm delivery with a
200response status.
Troubleshooting
| Symptom | Possible Cause | Resolution |
|---|---|---|
404 invalid_token | Webhook URL revoked or mistyped | Re-copy the URL from the app’s Incoming Webhooks page in Slack. |
403 channel_not_found | The webhook’s channel was deleted or the app was removed | Recreate the webhook against an active channel. |
| Message arrives but unformatted | Invalid Block Kit JSON | Validate the template at Slack’s Block Kit Builder. |
| Too many messages | Event filter too broad | Restrict the integration to specific events (e.g. only Order Completed) in the blueprint editor. |
Visit Slack Incoming Webhooks documentation for full reference.
See also
- Custom Webhook — generic HTTP webhook for any endpoint
- PagerDuty — incident notifications
- Microsoft Teams — team notifications alternative