Slack Notifications
Send automated messages to Slack channels when events occur using the CONNECTOR step type.
15 minutes
Intermediate
Slack workspace admin access
What You'll Build
An automation that:
- Receives new order data via webhook trigger
- Uses CONNECTOR step to post to Slack
- Uses CONDITION step to route high-value orders to VIP channel
Step 1: Connect Slack
Create a Slack Connection
- Go to Connections
- Click + New Connection
- Search for Slack connector
- Click Connect
Authorize work.studio
- A Slack popup opens
- Select your workspace
- Click Allow
- The popup closes β you're connected!
Step 2: Create the Automation
- Go to Automations
- Click + New Automation
- Name:
New Order Slack Alert - Click Create
Step 3: Add Webhook Trigger
Configure Trigger
- Click Add Trigger
- Select Webhook
- Copy the webhook URL and the Signing secret. The secret is shown once, when you create the trigger
Expected Payload
{
"order_id": "ORD-12345",
"customer": "Acme Corp",
"amount": 499.99,
"items": ["Widget Pro", "Widget Basic"]
}
Step 4: Add CONNECTOR Step for Slack
Add the Step
- Click + below the trigger
- Select CONNECTOR from the step palette
Configure the Connector Step
Configure Parameters
Message Template
π *New Order Received!*
*Order ID:* {{ input.order_id }}
*Customer:* {{ input.customer }}
*Amount:* ${{ input.amount }}
*Items:*
{{ input.items.join(", ") }}
Step 5: Add CONDITION for High-Value Orders
Add CONDITION Step
For large orders, send an additional alert to a VIP channel:
- Click + after the Slack CONNECTOR step
- Select CONDITION from the step palette
- Name it:
Check High Value
Configure the Condition
{{ input.amount }} > 1000
True Branch: VIP Alert
In the "True" branch, add another CONNECTOR step:
Your workflow now looks like:
βββββββββββββββββββββββ
β Webhook Trigger β
ββββββββββββ¬βββββββββββ
β
βΌ
βββββββββββββββββββββββ
β CONNECTOR: Slack β
β Post to #orders β
ββββββββββββ¬βββββββββββ
β
βΌ
βββββββββββββββββββββββ
β CONDITION β
β amount > 1000? β
ββββββββββββ¬βββββββββββ€
β True β False β
ββββββ¬ββββββ΄βββββ¬ββββββ
β β
βΌ βΌ
βββββββββββ (end)
βCONNECTORβ
β#vip-ordersβ
βββββββββββ
Step 6: Test the Integration
Save and Activate
- Click Save
- Toggle Active
Send Test Webhook
New webhooks are signed, so the test request must carry a timestamp and a signature made with the trigger's signing secret (see Webhooks). With WEBHOOK_URL and WEBHOOK_SECRET set:
BODY='{"order_id": "ORD-99999", "customer": "Test Corp", "amount": 1500.00, "items": ["Premium Widget", "Deluxe Addon"]}'
TS=$(date +%s)
SIG=$(printf '%s.%s' "$TS" "$BODY" | openssl dgst -sha256 -hmac "$WEBHOOK_SECRET" -hex | sed 's/^.* //')
curl -X POST "$WEBHOOK_URL" \
-H "Content-Type: application/json" \
-H "X-Webhook-Timestamp: $TS" \
-H "X-Webhook-Signature: sha256=$SIG" \
-d "$BODY"
Verify in Slack
Check both channels:
#ordersβ Should have the order notification#vip-ordersβ Should have the high-value alert (amount > 1000)
Advanced: Using Block Kit
For rich interactive messages, use Slack's Block Kit format:
CONNECTOR Configuration with Blocks
Set the blocks parameter instead of text:
[
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "π *New Order: {{ input.order_id }}*"
}
},
{
"type": "section",
"fields": [
{"type": "mrkdwn", "text": "*Customer:*\n{{ input.customer }}"},
{"type": "mrkdwn", "text": "*Amount:*\n${{ input.amount }}"}
]
},
{
"type": "actions",
"elements": [
{
"type": "button",
"text": {"type": "plain_text", "text": "View Order"},
"url": "flow.work.studio/orders/{{ input.order_id }}"
}
]
}
]
Using Slack as a Trigger
You can also trigger automations FROM Slack using the Slack trigger type:
- Create a new automation
- Click Add Trigger β Slack
- Configure:
- Channel to monitor
- Message pattern or slash command
When someone posts in that channel (or uses the command), your automation runs.
Best Practices
Do
- Use emojis for visual scanning
- Keep messages concise
- Use channels appropriately (not everything in
#general) - Include links for quick actions
Avoid
- Spamming channels with too many messages
- Sending sensitive data to public channels
- Using @here or @channel excessively
Next Steps
- Scheduled Reports β β Post daily summaries to Slack
- REST API Integration β β Build custom API integrations
Connect to any REST API.