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
Workspace
string
required
Which Slack workspace to create the channel in.
Title
string
required
Channel name. Supports Liquid variables.Example: incident-{{ incident.sequential_id }}-{{ incident.title }}
Private
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
Channels
string
Target channels. Use {{ incident.slack_channel_id }} for the incident channel. Supports Liquid variables.
Slack Users
string
Individual users to message directly.
Slack User Groups
string
Groups to notify — all members receive the message.
Text
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
Channels
string
Target channels. Supports Liquid variables.
Text
string
required
Reminder message content. Supports Liquid variables.
Repeat
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
Blocks
string
required
JSON payload following Block Kit format. Supports Liquid variables.
Notification Preview
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
Channel
string
required
Target channel. Use {{ incident.slack_channel_id }} for the incident channel. Supports Liquid variables.
Slack Users
string
Individual users to invite. Use {{ incident.creator }} for the incident creator.
Slack User Groups
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
Channel
string
required
Channel to rename. Use {{ incident.slack_channel_id }}. Supports Liquid variables.
New Title
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
Channels
string
required
Channels to update. Supports Liquid variables.
Topic
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
Channel
string
required
Channel to add the bookmark to. Supports Liquid variables.
Title
string
required
Bookmark display text. Supports Liquid variables.
URL to bookmark. Common values: {{ incident.url }}, {{ incident.jira_issue_url }}. Supports Liquid variables.
Emoji
string
Icon shown next to the bookmark.
Playbook
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
Channel
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
Channel
string
required
Channel to modify. Supports Liquid variables.
Privacy
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.