Slack Integration — User Guide
Audience: Workspace admins and end-users who want to trigger workflows and interact with Dagen agents directly from Slack.
Overview
Dagen's Slack integration is bidirectional:
| Direction | What it does | Requires |
|---|---|---|
| Outgoing (Dagen → Slack) | Sends workflow notifications to Slack channels | Incoming Webhook URL |
| Incoming (Slack → Dagen) | Users @mention the Dagen bot to trigger workflows or ask agents |
Bot Token + Signing Secret |
You can use either direction independently or both together.
Part 1 — Outgoing Notifications (Dagen → Slack)
This is the simpler setup. Dagen posts messages to a Slack channel when a workflow notification node fires.
Step-by-step
- In Slack, go to https://api.slack.com/apps → create a new app (or use an existing one).
- Go to Incoming Webhooks → activate → Add New Webhook to Workspace.
- Choose the channel you want notifications in → copy the webhook URL.
- In Dagen, open Workflow Settings → Notification Channels → Add Channel.
- Select Slack, paste the webhook URL, and save.
- In any workflow, add a Notification node → select the Slack channel you just created.
That's it — when the workflow runs, the notification node will post to Slack.
Part 2 — Incoming Commands (Slack → Dagen)
This enables your team to interact with Dagen by mentioning @dagen in Slack.
What you can do
| Command | Description | Example |
|---|---|---|
@dagen <question> |
Ask the Super Agent — full data pipeline orchestration | @dagen What's the row count for orders? |
@dagen run <workflow> |
Trigger a workflow by name | @dagen run daily-sync |
@dagen list workflows |
List all active workflows | @dagen list |
@dagen status |
Show recent workflow runs and their status | @dagen status |
@dagen agent <name> <question> |
Ask a specific sub-agent directly | @dagen agent dbt compile my_model |
@dagen help |
Show available commands | @dagen help |
The Super Agent
When you send a free-form message (anything that isn't a recognized command), it goes to the Super Agent — the same AI team that powers the Dagen chat UI. This means from Slack you can:
- Discover and explore database metadata
- Build and run data ingestion pipelines
- Create and compile dbt models
- Generate test data
- Orchestrate full data workflows
- Ask questions about your data infrastructure
Your conversation with the Super Agent is session-persistent per Slack user — follow-up messages retain context from earlier interactions.
How responses work
- When you
@mentionDagen, it immediately reacts with :eyes: to confirm it saw your message. - All replies are posted in a thread on your message, keeping the channel clean.
- Long responses from the Super Agent are automatically split across multiple messages.
- For workflow triggers, Dagen posts an initial confirmation, then automatically follows up with the final status (success/failure/duration) when the workflow completes.
Setup
1. Create a Slack App
Go to https://api.slack.com/apps and click Create New App → From scratch.
Give it a name (e.g., "Dagen") and select your Slack workspace.
2. Configure Bot Permissions
Navigate to OAuth & Permissions → scroll to Bot Token Scopes → add:
| Scope | Purpose |
|---|---|
app_mentions:read |
Lets the bot see when users @mention it |
chat:write |
Lets the bot post replies |
reactions:write |
Lets the bot add the :eyes: acknowledgment reaction |
Click Install to Workspace and authorize. Copy the Bot User OAuth Token (starts with xoxb-).
3. Get the Signing Secret
Go to Basic Information → scroll to App Credentials → copy the Signing Secret.
4. Configure in Dagen
- Open Workflow Settings → Notification Channels.
- Edit your existing Slack channel (or create a new one).
- Expand the Slack Bot (receive @dagen mentions) section.
- Paste the Bot User OAuth Token and Signing Secret.
- Save.
After saving, you'll see an Event Subscription URL displayed in the form — copy it.
5. Enable Event Subscriptions in Slack
- In your Slack App settings, go to Event Subscriptions → toggle Enable Events on.
- Paste the Event Subscription URL from step 4 into the Request URL field.
- Slack will send a verification challenge — it should show "Verified" within a few seconds.
- Under Subscribe to bot events, click Add Bot User Event → select
app_mention. - Click Save Changes.
6. Invite the Bot to a Channel
In Slack, go to the channel where you want to use Dagen and type:
/invite @Dagen
You're all set. Try typing @Dagen help in the channel.
Workflow Triggers from Slack
When you trigger a workflow via @dagen run <name>, the following happens:
You: @dagen run daily-sync
Dagen: 👀 (reaction)
Dagen: Starting workflow daily-sync…
Dagen: Workflow "Daily Sync" triggered (run a3f2b1c9…). I'll update you when it completes.
... workflow executes ...
Dagen: ✅ Workflow finished — success (42s)
If the workflow fails:
Dagen: ❌ Workflow finished — failed (18s)
Error: Connection timeout on BigQuery node
Workflow name matching
The name matching is case-insensitive and supports partial matches:
@dagen run dailywill match a workflow named "Daily Sync"@dagen run DAILY-SYNCwill match "daily-sync"- Exact matches are preferred over partial ones
Super Agent Examples
Here are some real interactions you can have with the Super Agent from Slack:
Data discovery
You: @dagen What tables are in the analytics dataset?
Dagen: 👀
Dagen: On it…
Dagen: I found 23 tables in the analytics dataset. Here are the key ones:
• orders (1.2M rows) — Order transactions
• customers (45K rows) — Customer master data
• products (3.2K rows) — Product catalog
...
Pipeline creation
You: @dagen Create an ingestion pipeline from our Postgres to BigQuery for the users table
Dagen: 👀
Dagen: On it…
Dagen: I've created an Airbyte ingestion pipeline:
• Source: PostgreSQL (users table)
• Destination: BigQuery (analytics.users)
• Sync mode: Incremental (cursor: updated_at)
Pipeline ID: pg_users_bq_1708432...
dbt operations
You: @dagen Compile and run the monthly_revenue dbt model
Dagen: 👀
Dagen: On it…
Dagen: Compiled and executed monthly_revenue:
✅ 1 model passed
Duration: 4.2s
Rows affected: 1,847
Follow-up conversations
You: @dagen What was that pipeline ID again?
Dagen: 👀
Dagen: On it…
Dagen: The pipeline I just created was pg_users_bq_1708432...
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Slack shows "Verified" but bot doesn't respond | Bot not invited to the channel | /invite @Dagen in the channel |
| Bot reacts with :eyes: but never replies | Bot token missing chat:write scope |
Add scope in Slack App → OAuth & Permissions, then reinstall |
| "Unauthorized" in Dagen logs | Signing secret mismatch | Re-copy the signing secret from Slack App → Basic Information |
| Slack shows "Request URL - Your URL didn't respond" | Dagen backend not publicly accessible | Ensure your backend is reachable from the internet (not localhost) |
| Duplicate responses | Event deduplication failure | This is rare and self-correcting; check if multiple pods are running |
| "No active workflow matching 'X' found" | Workflow doesn't exist or is not in "active" status | Activate the workflow in the Dagen UI |
Security
- The Events API endpoint (
/api/slack/events) does not require Dagen authentication (Slack cannot send Firebase tokens). - Instead, every request is verified using HMAC-SHA256 with your Signing Secret — only Slack can produce valid signatures.
- Requests older than 5 minutes are automatically rejected (replay protection).
- Bot tokens and signing secrets are stored encrypted alongside your other channel configuration and are never exposed in API responses (shown as
***).