Slack Automation

Slack Bot for DevOps: Deploys, Incidents, On-Call Rotation

May 2026 · 11 min read

ChatOps is the right pattern for small engineering teams. Most DevOps activity is short, status-driven, and naturally collaborative — exactly the kind of thing that fits in a Slack thread. PagerDuty + Spacelift + Statuspage stacks up fast: 21 euro per user for PagerDuty, 200 euro per month for Spacelift starter, 29 euro per month for Statuspage. A custom Slack bot replaces the team-internal portions of all three for 5,200 euro.

The four commands that cover 90% of DevOps work

/deploy

Syntax: /deploy api-service staging. The bot looks up the service in a Postgres registry, checks the user's RBAC role, then fires a repository_dispatch event to GitHub Actions. The deploy workflow has a step that posts a Slack webhook for each stage (build, test, deploy, smoke test). The bot streams those updates into the original thread.

On failure: the bot pings the deployer with a "Rollback?" button. Click it, and another repository_dispatch reverts to the previous tag. Total downtime from "deploy broke prod" to "rolled back" is typically under 90 seconds.

/incident

Syntax: /incident login-broken. Creates a private channel #inc-2026-05-27-login-broken, invites the current on-call engineer, posts an Incident Commander (IC) checklist, and starts timestamped logging. The bot also opens a Statuspage incident if configured.

The IC checklist (posted automatically): assign IC, assign communications lead, set severity (SEV1-3), open external comms, declare end-of-incident criteria. Each item is a button to claim or mark done.

/oncall

Syntax: /oncall who shows the current on-call engineer. /oncall swap @bob swaps tonight's slot. /oncall schedule opens a Block Kit calendar with the next 2 weeks.

Rotation engine: a config table with engineer Slack IDs, time zones, and a rotation pattern (weekly, daily, follow-the-sun). The bot computes the current on-call at request time. SMS paging via Twilio when a SEV1 incident is declared and Slack mention goes unanswered for 5 minutes.

/incident-close

Closes the incident, archives the channel after 30 days, and generates a postmortem draft. The draft pulls all messages from the channel, extracts the first/last timestamps, finds messages tagged with key emoji (:rotating_light: = decision, :memo: = action item), and templates them into a Confluence page draft.

Implementation — 4 weeks

Week 1. Slack app, OAuth scopes, Postgres schema (services, on-call rotation, incidents, audit log). Basic slash command routing.

Week 2. /deploy with GitHub Actions integration, RBAC enforcement, log streaming via webhook callback, rollback button.

Week 3. /incident and /oncall — channel creation, IC checklist, rotation engine, Twilio SMS paging.

Week 4. Postmortem auto-draft (Confluence API), Statuspage integration, audit log dashboard (who deployed what, when), final testing with a chaos drill.

RBAC: who can deploy to prod

The deploy_permissions table has 3 columns: user_slack_id, service_name, environment. A row grants permission. Missing row = denied with a Slack ephemeral message.

Patterns we use:

  • Senior engineers get prod access to all services they own.
  • Junior engineers get staging-only by default.
  • On-call gets temporary prod access to all services during their shift. This is computed dynamically — no row in the table — based on the current on-call rotation.

When to use SaaS instead

  • Multi-region team with complex escalation policies. PagerDuty's policy engine is good; rebuilding it is a project of its own.
  • Compliance requirements (SOC2 audit). Auditors prefer named SaaS vendors with their own attestations.
  • You need response analytics. MTTA, MTTR by team, fatigue metrics — PagerDuty has dashboards. Building those from scratch is 2 extra weeks.

Comparison

Tool 10 engineers, year 1
PagerDuty Professional (21 euro per user) 2,520 euro
Spacelift Starter (deploy automation) 2,400 euro
Statuspage Business 708 euro
FireHydrant (incident management) 3,600 euro
SaaS total 9,228 euro
Custom Slack bot build 5,200 euro (one-time)
Custom Slack bot hosting + Twilio 720 euro/year
Custom total year 1 5,920 euro
Custom total year 2+ 720 euro/year

FAQ

Can this replace PagerDuty?
For teams under 20 engineers in a single time zone, yes. The bot covers on-call rotation, Slack DM paging, and SMS via Twilio.

How does the /deploy command work?
It triggers a GitHub Actions workflow via repository_dispatch. The bot streams the deploy log into the Slack thread. RBAC controls who can deploy where.

What goes into an incident channel?
Private channel #inc-YYYY-MM-DD-slug, on-call engineer + team list invited, IC checklist posted, timestamped logging starts.

How does postmortem auto-draft work?
On close, the bot pulls all channel messages, finds decisions and action items by emoji tag, and creates a Confluence draft for the IC to finalize.

Stop paying per-engineer for ChatOps

5,200 euro fixed price, 4 weeks, deployed to your Slack workspace with GitHub Actions wiring.

Book a discovery call

Related Posts

Slack Bot for Customer Support Slack Bot for Sales
← All blog posts

ChatOps without the per-seat tax

4-week build, fixed price, GitHub Actions + Twilio wiring included.

Book a discovery call