Polishing our Slack messages

Weekly Update

When you’re working on an incident, you’re likely to be spending most of your time inside a Slack channel. We’ve spent the last couple of weeks improving our Slack experience, making sure we present the information you need in an easy-to-digest format.

We’re also keen to reduce the ‘noisiness’ of our Slackbot (who we’ve affectionately named Sally), making sure that we’re updating existing messages instead of posting new ones (where appropriate), and not taking up too much vertical space in the channel.

To do this, we started with a single goal:

🏅 Reduce our use of vertical space

Vertical space in an incident channel is prime real-estate. We should aim to use as little of it as we can, to avoid the channel feeling like cluttered bot-owned channel.

We then came up with three key design principles, which would help us use less vertical space:

💬 Messages should target the majority
Most people only focus on this incident in the heat of the moment, and knowing precisely which workflow sent a message is not useful for many. The standard should be, "Is this information useful to the majority, or does only a select few find value in it?".

🧵 Always consider threaded messages
Whenever we are adding messages, we should consider whether a thread is more appropriate.

🥐 Update existing messages
Where possible, we want to update an existing message rather than create a new one, if there’s a recent message that is still visible in the channel (and they are connected). That avoids double-notifying users, and helps reduce vertical space.

Overhauling Actions & Follow-ups

We’ve shipped some shiny new action and follow-ups Slack notifications which means that the experience of creating and editing in Slack is a lot smoother. We now collapse updates into a single message, meaning we’ll make a lot less noise in the channel when you’re making lots of changes quickly.

And our favorite part: the sidebar goes green when the action or follow-up is completed 😍

A new format for updates

We wanted to make it really easy to parse incident updates in a channel, and make them visually distinct from other content without using lots of vertical space.

You’ll find the same message (optimised for threads) in announcement posts and Slack subscriptions.

Using threads for long summaries and updates

When you share a long update or summary, we truncate the text to avoid taking up too much space in the main channel. We’ll now continue where we left off in a thread, so the context isn’t lost, but also making sure we don’t overload the channel with a ‘wall of text’.

Sprinkling a little bit of magic

We wanted to sprinkle some magic across our Slack app, and so we’ve polished the messages we send when you create an attachment, or escalate an incident (and added some swanky logos).

We’ve also added a little picture to our ‘someone is writing an update’ message

Running workflows on test and retrospective incidents

Most workflows don’t run on test or retrospective incidents. For example, emailing your entire engineering team when someone is reporting an incident from 2 months ago would be … not ideal.

However, there are plenty of cases where this is pretty useful. Perhaps you want to check if you’ve configured your workflow correctly by using a test incident, or you’ve made a workflow to help navigate the post-incident process which also runs on retrospective incidents.

You can now choose to enable workflows for test and retrospective incidents. You can find this option in Advanced Settings when creating / editing a workflow.

Non-skippable post-incident flow tasks

Sometimes a task is just too important to be skipped - to support this, we've introduced a new feature that allows you to designate any default or custom task as non-skippable.

With this, any task marked as non-skippable will not display the skip option during your post-incident workflow. This ensures critical tasks are always completed, improving your incident response process. You can easily set this option for any task by using the new toggle feature available on the Post-Incident Flow page, both when creating and editing tasks.

🚀 What else we’ve shipped

🆕 You can now set announcement rules to run based on who is assigned to different roles

🆕 Debriefs scheduled in Google Calendar can now be deleted from Google Calendar, as well as unlinked from the incident

🆕 For incidents which have been exported to Jira, the Jira ticket reference is now available to use in workflow messages

🆕 You can now use workflow automation for status pages with sub-pages

🆕 We’ve exposed a new quick action which will allow you to get an overview of all available commands for your incident (🔎 View all commands)

We’ve significantly improved performance around evaluating query expressions in your workflows

We’ve also improved performance around loading internal status pages

💅 When follow-up priorities are optional, you can now remove the priority from a follow-up in the web dashboard

💅 The Notion database for exported post-mortems now handles words that pluralize in funny ways properly, so we won’t name a database ‘incident analysiss’ 🙈

💅 Across our dashboard, optional inputs now all say '(optional)'

💅 When configuring components for status page sub-pages, there are now quick links to change both components and sub-page configuration.

🐛 Bold formatting in status page updates was not being applied on the public status page

🐛 The automatic custom field setup wizard now gives much clearer error messages if you're trying to set up a multi-valued text, link, or number custom field

🐛 When setting up a debrief meeting in Google Calendar, we'll now live-update the details of the event back in the incident.io dashboard

🐛 When setting a condition, the pop-up editor would sometimes close unpredictably. Now it won't do that!

🐛 When configuring a new form override, we would show a 404 page rather than the page for editing the new form. Now we don't!

🐛 When merging a triage incident into another incident, the dropdown would sometimes have old incident names shown. Now they'll always be up-to-date.

🐛 For customers in North and South America, the date-range picker would sometimes jump back a day. Now it will pick the date you click on.

🐛 Updating a scheduled maintenance incident on your status page will now set the affected components

🐛 Slack URLs are now being correctly encoded for policy reports

Operational excellence starts here