Skip to main content
Custom workflows give you full control over Slack automation. Create channels, send messages, invite users, and more based on triggers and conditions you define. If you’re new to workflows, see the Workflows documentation first.

Available Actions


Create a Workflow

1

Open Workflows

Go to Rootly → Workflows → Create Workflow.Rootly workflows pageCreate workflow button
2

Choose Workflow Type

Select Incident, Retrospective, or Pulse depending on when you want the workflow to run.Workflow type selection
3

Configure Triggers

Triggers define when the workflow runs.Workflow trigger configuration
4

Add Conditions (Optional)

Conditions filter when the workflow should actually execute.Workflow conditions panelCommon conditions:
  • Severity — Only for SEV-1 or SEV-2
  • Team/Service — Only for specific teams
  • Incident Type — Only for actual incidents (not tests)
  • Environment — Only for production
5

Add Actions

Click Add Action and search for Slack.Add action buttonSearch Slack actionsSelect one or more Slack actions. Each action is configured independently.

Action Reference

Creates a dedicated channel for the incident.Create Slack Channel action
string
required
Which Slack workspace to create the channel in.
string
required
Channel name. Supports Liquid variables.Example: incident-{{ incident.sequential_id }}-{{ incident.title }}
enum
Controls channel visibility:
  • auto — matches incident privacy (private incident → private channel)
  • true — always private
  • false — always public
If the incident already has a Slack channel, this action will skip channel creation to avoid duplicates.
Posts a message to channels, users, or user groups.Send Slack Message action
string
Target channels. Use {{ incident.slack_channel_id }} for the incident channel. Supports Liquid variables.
string
Individual users to message directly.
string
Groups to notify — all members receive the message.
string
required
Message content. Supports Liquid variables and Slack markdown.
Message Options:Action Buttons — add interactive buttons to messages:
Same as Send Message, but with Snooze/Pause buttons and support for recurring schedules.Send Slack Reminder action
string
Target channels. Supports Liquid variables.
string
required
Reminder message content. Supports Liquid variables.
enum
How often the reminder fires. Options include once, every N minutes, hourly, and daily.
Use reminders for periodic nudges (e.g., “Update the incident summary every 30 minutes”). The Snooze and Pause buttons allow responders to defer or stop reminders without leaving Slack.
Send rich, interactive messages using Slack Block Kit.Send Slack Blocks action
string
required
JSON payload following Block Kit format. Supports Liquid variables.
string
Text shown in push notifications when Block Kit content can’t be rendered.
Block Kit Examples:Text section with markdown:
Button that triggers a workflow:
Available action_id values:
Slack’s Block Kit Builder can’t interpret Liquid variables. Test your templates in Rootly’s Liquid Variable Explorer.
Adds users or user groups to a channel.Invite to Slack Channel action
string
required
Target channel. Use {{ incident.slack_channel_id }} for the incident channel. Supports Liquid variables.
string
Individual users to invite. Use {{ incident.creator }} for the incident creator.
string
Groups to invite — all members are added to the channel.
Changes the channel name dynamically, useful for reflecting status changes.Rename Slack Channel action
string
required
Channel to rename. Use {{ incident.slack_channel_id }}. Supports Liquid variables.
string
required
New channel name. Supports Liquid variables.Example: resolved-{{ incident.title }}
Common use case: Rename to include status when resolved (e.g., resolved-database-outage).
Sets the channel topic to display key incident info at a glance.Update Slack Channel Topic action
string
required
Channels to update. Supports Liquid variables.
string
required
New topic text. Supports Liquid variables and Slack markdown.
Example topic:
Pins a link to the channel’s bookmark bar for quick access during an incident.Add Slack Bookmark action
string
required
Channel to add the bookmark to. Supports Liquid variables.
string
required
Bookmark display text. Supports Liquid variables.
URL to bookmark. Common values: {{ incident.url }}, {{ incident.jira_issue_url }}. Supports Liquid variables.
string
Icon shown next to the bookmark.
string
Optionally link to a Rootly playbook instead of specifying a title and link manually.
Archives the channel to keep your workspace clean after an incident is resolved.Archive Slack Channel action
string
required
Channel to archive. Use {{ incident.slack_channel_id }}. Supports Liquid variables.
Common trigger: Incident status changed to “Closed” with a 24–48 hour delay to allow post-incident cleanup.
Switches a channel between public and private.Change Slack Channel Privacy action
string
required
Channel to modify. Supports Liquid variables.
enum
required
  • public — make the channel visible to all workspace members
  • private — restrict access to invited members only
Changing from private to public may not be allowed by your Slack workspace settings.

Common Liquid Variables

Explore all variables in the Liquid Variable Explorer.