Devpilot
Integrations

Notification Channels

Configure Slack, Discord, Email, and Webhook notifications to receive alerts about deployments and script executions in your Devpilot workspace.

Notification Channels

Notification channels deliver alerts about events in your Devpilot workspace. Channels live in workspace settings, are scoped to either deployments or scripts, and can be attached to the specific apps or scripts you want alerts for.

Supported Channels

Devpilot supports four channel types:

ChannelHow it sendsBest for
SlackIncoming webhook URLTeam-wide visibility in a Slack channel.
DiscordChannel webhook URLTeams on Discord — delivered as embedded messages.
EmailSMTP via Devpilot's transactional mailerIndividual recipients or mailing lists.
WebhookPOST with a JSON bodyCustom integrations, dashboards, or on-call tools.

Slack and Discord integrate through webhook URLs only — Devpilot does not currently require a Slack or Discord OAuth connection. You generate the webhook on the Slack/Discord side and paste the URL into Devpilot.

Channel Scope

Every channel has a scope that determines where it can be attached:

  • Deployment — attachable to apps so you get alerts about deployment activity for that app.
  • Script — attachable to individual server scripts so you get alerts when the script runs.

You choose the scope when you create the channel. A channel configured for deployments cannot be attached to scripts and vice versa.

Events That Fire Notifications

Deployment-Scope Channels

Alerts fire on deployment lifecycle events for apps the channel is attached to:

  • Deployment started, succeeded, failed, or cancelled
  • Auto-deploy triggered by a source control webhook

Script-Scope Channels

Alerts fire when a script the channel is attached to executes:

  • Script execution started, succeeded, or failed

You can control whether each channel delivers on every event, only on failures, or never (a way to mute a channel without deleting it).

Setting Up Notification Channels

Navigate to Workspace Settings > Integrations > Notification Channels to add and manage channels.

Slack

Devpilot posts to Slack using an incoming webhook URL.

Create a Slack Incoming Webhook

In your Slack workspace's App Management page, create or open an app. Enable Incoming Webhooks, select Add New Webhook to Workspace, choose the destination channel, and copy the webhook URL Slack generates.

Add the Channel in Devpilot

In Notification Channels, select Add Channel, pick Slack, name it (for example production-alerts), set the scope (deployment or script), and paste the webhook URL into the configuration.

Save and Attach

Save the channel, then attach it to the apps (for deployment scope) or scripts (for script scope) you want alerts for. Devpilot posts a formatted message — with status colour, title, and key fields — on each matching event.

Slack incoming webhook URLs are secret. Anyone who has the URL can post into the target channel. Do not commit them to Git or share them in tickets.

Discord

Devpilot posts to Discord using a channel webhook URL.

Create a Discord Webhook

Open your Discord server settings and go to Integrations > Webhooks > New Webhook. Choose the destination text channel, name the webhook (for example Devpilot Alerts), and copy the webhook URL.

Add the Channel in Devpilot

In Notification Channels, select Add Channel, pick Discord, name it, set the scope, and paste the webhook URL.

Save and Attach

Attach the channel to the apps or scripts you want alerts for. Devpilot posts an embedded message with status colour, event title, and event-specific fields.

Email

Devpilot sends email through its built-in transactional mailer to a single email address per channel.

Add the Channel in Devpilot

In Notification Channels, select Add Channel, pick Email, name it (for example ops-alerts), and choose the scope.

Enter the Recipient Email

Enter the email address that should receive the alerts. To send to multiple recipients, create either a distribution address on your mail provider or multiple email channels.

Save and Attach

Attach the channel to the relevant apps or scripts. Devpilot emails the recipient on each matching event with a status indicator, the event title, and the key fields.

Each Email channel is configured with one recipient. If you need to notify several people, create one channel per recipient or use a distribution list on your email provider's side.

Webhook

Devpilot sends an HTTP POST with a JSON body to any URL you supply.

Add the Channel in Devpilot

In Notification Channels, select Add Channel, pick Webhook, name it, and choose the scope.

Configure the URL

Enter the full HTTPS URL Devpilot should POST to. Your endpoint should accept application/json and respond with a 2xx status code on success.

Save and Attach

Save the channel and attach it to apps (deployment scope) or scripts (script scope).

Webhook Payload Format

Each delivery is a JSON body shaped like this:

{
  "event": "deployment.succeeded",
  "timestamp": "2026-04-18T14:30:00Z",
  "data": {
    "title": "Deployment succeeded",
    "status": "completed",
    "fields": [
      { "name": "App", "value": "production-api", "inline": true },
      { "name": "Server", "value": "api-server-01", "inline": true }
    ]
  }
}

Delivery

  • Webhook requests use a 10-second timeout. Endpoints that do not respond in time are treated as failed.
  • Devpilot does not retry a failed webhook delivery — errors are logged so your workspace admins can investigate.

Secure your webhook endpoint. Use HTTPS and validate incoming requests (for example with a shared secret in a header you verify on the receiving side).

Controlling When a Channel Fires

Each attached channel has a notify on setting:

  • Always — deliver on every matching event (default)
  • Failure — deliver only when the event status is failed
  • Never — suppress the channel without deleting it (useful for maintenance windows)

Managing Notification Channels

Editing a Channel

Open the channel in Notification Channels and change the name, webhook URL, recipient email, or scope. Save to apply the change; all apps and scripts the channel is attached to immediately use the new configuration.

Disabling a Channel

Switch the channel's status to Inactive. Devpilot skips the channel on every event, but configuration is preserved so you can re-enable it later.

Deleting a Channel

Deleting a channel removes it from every app and script it was attached to. This action cannot be undone.

Best Practices

  • Use chat for the team, email for individuals. A shared Slack or Discord channel keeps the whole team in the loop; email is best for owners who need a personal record.
  • Use failure-only channels for paging. Create a webhook channel that delivers only on failure and point it at your on-call tool (PagerDuty, Opsgenie) to avoid paging on successful runs.
  • Name channels by purpose. Names like prod-deploys-slack or cron-failures-ops-email make it obvious what each channel does when you look at the list.
  • Test with a real event. After creating a channel, trigger a small deployment or run a harmless script to confirm messages land correctly.