Skip to content

Slack Incoming Webhook

Slack integrations allow Datablast to send automated notifications and messages to your Slack workspace. This guide covers both Incoming Webhooks (simple notifications) and Bot Tokens (advanced features) to help you choose the right approach for your needs.


Section titled “Incoming Webhooks (Recommended for Simple Notifications)”

Best for:

  • Pipeline completion notifications
  • Error alerts
  • Status updates
  • Simple one-way messaging

Features:

  • Easy to set up
  • No complex permissions required
  • Perfect for notifications

Best for:

  • Interactive messages
  • Reading channel history
  • Managing channels
  • Two-way communication

Features:

  • Full Slack API access
  • Custom scopes and permissions
  • Interactive components

2. Method 1: Incoming Webhooks (Simple Setup)

Section titled “2. Method 1: Incoming Webhooks (Simple Setup)”
  1. Slack Workspace Access: You must be a member of the target workspace
  2. Channel Permissions: Ability to add integrations to channels

💡 Recommended for Most Users: This method is simpler and covers 90% of notification needs. Start here unless you need advanced features.

  1. Visit Slack API Portal
    • Go to api.slack.com/apps
    • Sign in with your Slack account

  2. Create New App
    • Click Create New App
    • Select From scratch
    • Enter app name (e.g., “Datablast Notifications”)
    • Choose your workspace
    • Click Create App

  3. Enable Incoming Webhooks
    • In the left sidebar, click Incoming Webhooks
    • Toggle Activate Incoming Webhooks to On

  4. Add Webhook to Workspace
    • Click Add New Webhook to Workspace
    • Select the channel for notifications
    • Click Allow

  5. Copy Webhook URL
    The webhook URL format:

    https://hooks.slack.com/services/T000/B000/XXXX
FieldValueExample
Connection NameFriendly name for this integrationSlack Alerts
TokenOnly the part after /services/T000/B000/XXXX
DescriptionOptional notesPipeline notifications

💡 Token Format: For webhooks, use only the portion after https://hooks.slack.com/services/ as your token.


⚠️ Advanced Users Only: This method requires technical knowledge and is mainly for developers who need interactive features. Most users should use Method 1 (Webhooks) instead.

  1. Workspace Admin Rights: Or permission to install apps
  2. Development Knowledge: Understanding of OAuth scopes and API concepts
  1. Create Slack App
    • Go to api.slack.com/apps
    • Click Create New App → From scratch
    • Name your app and select workspace

  2. Configure OAuth Scopes
    • Navigate to OAuth & Permissions
    • Under Bot Token Scopes, click Add an OAuth Scope • Add these commonly needed permissions:

    💡 User-Friendly Tip: Slack’s interface shows human-readable descriptions for each permission. You don’t need to memorize these codes.

    Essential Scopes (choose what you need):

    • chat:write - ✅ Recommended: Send messages as the bot
    • chat:write.public - ✅ Recommended: Send to public channels without being added

    Optional Scopes (only if needed):

    • channels:read - Read public channel information
    • users:read - Read user profiles (for @mentions)
  3. Install App to Workspace
    • Click Install to Workspace
    • Review permissions (Slack shows what each one does)
    • Click Allow

  4. Get Bot Token
    • Return to OAuth & Permissions
    • Copy the Bot User OAuth Token (starts with xoxb-)

FieldValueExample
Connection NameFriendly name for this botDatablast Bot
TokenFull Bot User OAuth Tokenxoxb-1234-5678-abcd
DescriptionBot capabilities descriptionInteractive notifications

Simple Test (No Technical Knowledge Required)

Section titled “Simple Test (No Technical Knowledge Required)”
  1. Save your connection in Datablast
  2. Use the Test Connection button in Datablast
  3. Check your Slack channel for the test message

That’s it! If you see a message in Slack, your connection is working.

Advanced Testing (Optional - For Developers)

Section titled “Advanced Testing (Optional - For Developers)”
Click to expand technical testing methods

Webhook Testing:

Terminal window
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"Hello from Datablast!"}' \
https://hooks.slack.com/services/YOUR/WEBHOOK/URL

Bot Token Testing:

Terminal window
curl -X POST -H 'Authorization: Bearer xoxb-your-token' \
-H 'Content-type: application/json' \
--data '{"channel":"#general","text":"Hello from Datablast Bot!"}' \
https://slack.com/api/chat.postMessage

⚠️ Advanced Section: These features are for users comfortable with technical configurations. For basic notifications, the setup above is sufficient.

For different notification types, you can create separate webhooks:

  1. Repeat webhook creation for each channel you want to use
  2. Create separate connections in Datablast for each channel
  3. Configure different alerts to go to different channels

Example setup:

  • #alerts-critical - System errors and failures
  • #alerts-info - Pipeline completions and success messages
  • #alerts-dev - Development and testing notifications
Click to expand message formatting examples

Datablast handles message formatting automatically, but developers can customize messages:

Basic Text:

{
"text": "Pipeline completed successfully!"
}

Rich Formatting:

{
"text": "Pipeline Status Update",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Pipeline:* Analytics ETL\n*Status:* ✅ Complete\n*Duration:* 5m 23s"
}
}
]
}

For advanced users who want to design custom message layouts:

  • Visit Block Kit Builder
  • Design interactive messages visually
  • Copy the JSON for custom integrations

💡 Note: Datablast provides pre-built message templates, so custom Block Kit is usually not necessary.


  • Keep Tokens Private: Never share your webhook URLs or bot tokens
  • Use Dedicated Channels: Create specific channels like #datablast-alerts for automated messages
  • Regular Cleanup: Remove unused webhooks from your Slack app settings
Click to expand advanced security practices

Token Management:

  • Store tokens in environment variables or secure vaults
  • Regenerate tokens quarterly as part of security rotation
  • Grant minimal required permissions only

Bot Permissions:

✅ Recommended for most use cases:
- chat:write (send messages)
- chat:write.public (post to public channels)
❌ Avoid unless specifically needed:
- admin permissions
- file access
- user data access

Messages Not Appearing:

  • Verify webhook URL is complete and correct
  • Check if channel exists and is active
  • Confirm webhook hasn’t been deleted

Invalid Token Errors:

  • Ensure you’re using the correct portion of the URL
  • Check for extra characters or spaces
  • Regenerate webhook if necessary

Authentication Failed:

  • Verify token starts with xoxb-
  • Check token hasn’t expired
  • Confirm bot is installed in workspace

Permission Denied:

  • Review OAuth scopes
  • Ensure bot has access to target channel
  • Check workspace permissions

Rate Limiting:

  • Implement exponential backoff
  • Respect Slack’s rate limits
  • Monitor API usage

Success Message:

{
"text": "✅ Pipeline Complete",
"blocks": [
{
"type": "section",
"fields": [
{"type": "mrkdwn", "text": "*Pipeline:*\nDaily ETL"},
{"type": "mrkdwn", "text": "*Duration:*\n12m 34s"},
{"type": "mrkdwn", "text": "*Records:*\n1,234,567"},
{"type": "mrkdwn", "text": "*Status:*\n✅ Success"}
]
}
]
}

Error Alert:

{
"text": "🚨 Pipeline Failed",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "🚨 *Pipeline Failed*\n*Name:* Daily ETL\n*Error:* Connection timeout\n*Time:* <!date^1640995200^{date_short} at {time}|2022-01-01 12:00>"
}
},
{
"type": "actions",
"elements": [
{
"type": "button",
"text": {"type": "plain_text", "text": "View Logs"},
"url": "https://datablast.com/logs/12345"
}
]
}
]
}

Internal Distribution:

  • Install to single workspace
  • Manage permissions locally
  • Direct admin control

Public Distribution:

  • Submit to Slack App Directory
  • OAuth flow for installation
  • Enterprise-grade security
Terminal window
# Check bot info
curl -H "Authorization: Bearer xoxb-your-token" \
https://slack.com/api/auth.test
# List channels bot can access
curl -H "Authorization: Bearer xoxb-your-token" \
https://slack.com/api/conversations.list

Always follow Slack’s API guidelines and rate limits. Store tokens securely and implement proper error handling for production integrations.