Slack Failure Notifications

Configure Slack to receive workflow failure notifications, so your team is alerted when automations break.

Overview

Slack failure notifications help your team react quickly when a workflow run fails. Doone Flow supports:

  • Organization-level defaults for where failure notifications should go.
  • Per-workflow overrides so critical workflows can notify different channels.
  • Slack + Email notifications that can be enabled independently.

This guide walks through configuring Slack at the organization level, enabling failure notifications on a workflow, and understanding how precedence and overrides work.

1. Organization-Level Slack Setup

Organization-level Slack settings define the default channel and webhook that workflow failure notifications will use when no workflow-specific override is configured.

Step 1 — Create a Slack App and Bot Token

  1. Create a Slack App
    Go to api.slack.com/apps and create a new app in the workspace that should receive notifications. Choose From scratch, give it a name (e.g., “Doone Flow Alerts”), and select your workspace.
  2. Add required bot scopes
    Under OAuth & Permissions, add at least:
    • chat:write — required to send messages into channels.
    • channels:read and groups:read (or conversations:read on newer apps) — required for the bot to call conversations.list and populate the channel dropdown in Doone Flow.
  3. Install the app to your workspace
    Click Install App (or Reinstall if already installed) and approve the requested permissions so the bot can post messages.
  4. Copy the Bot User OAuth Token
    In OAuth & Permissions, copy the Bot User OAuth Token (usually starts with xoxb-). You’ll paste this into the Slack Bot Token field in Doone Flow.

Step 2 — Configure Slack in Doone Flow

  1. Open Organization Integrations
    In the Doone Flow app, go to Organization Settings → Integrations. Scroll down to the Failure Notifications → Slack Notifications section.
  2. Expand “Slack Settings”
    Click the Slack Settings tile to open a combined form for your Slack configuration.
  3. Fill out the Slack form
    • Slack Webhook URL — Your Slack Incoming Webhook URL. This is used as the delivery mechanism for notifications.
    • Slack Bot Token — The xoxb- token you copied from Slack. This is used to:
      • Fetch the list of channels for the dropdown.
      • Send messages to channel IDs via Slack’s Web API.
    • Default Slack Channel — Select a channel from the dropdown. Internally, Doone Flow stores the channel ID (e.g., C0123456789), which keeps working even if the channel is renamed.
    • Invite the Slack app to the channel — In Slack, open the target channel and run /invite @YourAppName. The bot must be a member of the channel to post notifications.
  4. Save Slack Settings
    Click “Save Slack Settings”. This writes all three configuration values at once for your organization.

Tip: Use a dedicated “alerts” channel (e.g., #workflow-alerts or #operations-alerts) so failure notifications don’t get lost in general chat.

2. Enabling Failure Notifications on a Workflow

Once Slack is configured for your organization, you can turn on failure notifications for individual workflows in the workflow builder.

  1. Open a Workflow
    Go to Workflows in the app, then create a new workflow or edit an existing one.
  2. Find the “Failure Notifications” Panel
    In the workflow builder, scroll down to the Failure Notifications section. Toggle the main switch on to enable notifications for this workflow.
  3. Enable Slack Notifications
    Inside the Failure Notifications panel, turn on the Slack Notifications toggle.
  4. (Optional) Override the Channel
    • When Slack notifications are enabled, a Channel dropdown appears.
    • By default, the dropdown is set to “Use default channel”, which means the organization-level channel will be used.
    • To override, select a different channel from the dropdown. This stores the channel ID for this workflow only.
  5. Save the Workflow
    Click Save on the workflow builder. From now on, when this workflow fails, Doone Flow will attempt to send a Slack notification according to these settings.

What counts as a “failure”?

A workflow run is considered failed when:

  • An action returns a permanent error (e.g., invalid data that cannot succeed on retry).
  • A workflow execution is marked with status failed in the executions list.

When that happens, Doone Flow collects the error message and sends a structured Slack message with:

  • Workflow name and ID
  • Execution ID
  • Organization ID
  • User-friendly error message

3. How Notification Precedence Works

Slack failure notifications follow a clear precedence model:

  1. Workflow-level settings
    • If the workflow has Slack notifications enabled, those settings are used first.
    • If a workflow-specific channel is selected, its channel ID is used.
  2. Organization-level defaults
    • If the workflow doesn’t specify a channel, the organization’s default Slack channel ID is used (if configured).
    • If no organization-level Slack configuration exists, Slack notifications are skipped for that workflow.
  3. System-level critical alerts (for engineers)
    • System-level Slack settings are configured via environment variables and are only used for backend critical errors (e.g., panics, infrastructure issues).
    • These are separate from organization Slack settings and are not used for workflow failure notifications.

Summary: Workflow override > Org defaults > (never) system env vars. System env vars are reserved for Doone Flow’s own backend alerts.

4. Example Configurations

Example A — One Alerts Channel for All Failures

  • Org default Slack channel: #workflow-alerts (ID stored internally).
  • Most workflows: “Slack Notifications” enabled, channel dropdown left at “Use default channel”.
  • Result: All failures go to #workflow-alerts.

Example B — Separate Channels for Critical Workflows

  • Org default Slack channel: #workflow-alerts.
  • Billing workflows: Slack override set to #billing-alerts.
  • Lead intake workflows: Slack override set to #lead-alerts.
  • Result: Each workflow’s failures go to the most relevant channel, while everything else still uses the org default.

5. Troubleshooting Slack Notifications

Common Issues

  • No Slack messages at all
    • Verify that Failure Notifications and Slack Notifications are enabled on the workflow.
    • Check that the organization has a valid Slack Webhook URL configured.
    • Confirm the workflow is actually failing (status is failed on the Executions page).
  • 403 errors from Slack
    • Ensure the webhook URL is valid and belongs to the correct workspace.
    • Make sure the app/bot has access to the selected channel.
    • If using a channel ID, confirm the bot token has chat:write and is installed in the workspace.
  • Channel list is empty
    • Verify the Slack Bot Token is configured at the organization level.
    • Ensure the bot token has sufficient scopes to call conversations.list.
    • Click “Refresh Channels” in the UI to re-fetch the list.

For deeper debugging, check the worker logs in Doone Flow. When a Slack notification fails, the logs include:

  • Whether organization-level Slack settings were found.
  • The length of the webhook URL and channel ID (for sanity checks).
  • Slack API status codes and error messages (for 4xx/5xx errors).

6. Security & Permissions

Slack configuration touches credentials and channels that may contain sensitive information. A few best practices:

  • Limit who can edit org-level Slack settings. Only organization owners/admins should have access to the integrations page.
  • Treat webhook URLs and bot tokens as secrets. Do not share them in chat or documentation. Rotate them if you suspect they have been exposed.

With Slack properly configured, you’ll have a clear, real-time signal when workflows fail, making it much easier to catch issues before they impact your customers.