Our recipe for successfully evolving your Slack app

What we learned developing OpsGenie’s Slack app over time

Serhat Can
Slack Platform Blog

--

OpsGenie is an alerting and on-call management solution that integrates with your IT stack to call attention to issues raised via your monitoring, logging, or ticketing tools.

OpsGenie and Slack have had a long history. Nearly a year and a half ago, our users were using what’s now called our “Slack Legacy integration.” At the time, we believed our Slack integration to be robust and extremely useful as it enabled our shared customers a way to never miss critical updates, and respond to incidences faster, all without leaving Slack.

A request from our user

When Slack introduced interactive messages, we started building a brand-new Slack application. Starting with implementing the Slack button and adding Slack dialogs, we have learned and grew together with Slack.

In this article, we’ll share our learnings evolving OpsGenie’s Slack app over the last two years.

Learn the basics and focus on core functionality

It all began when we started exploring the Slack button to offer an easier way of installing our Slack application.

We had discussions with the Slack team for how to proceed, including some important decisions – for instance, whether to use a bot user or go with an incoming webhook, or how to address the three-minute response limit. After some useful tips and a guided review process, we were ready to list our app on the Slack App Directory.

Our customers immediately began using our new Slack App, and the feedback was positive. Users began managing their incident response inside a messaging tool with just a button click.

Take actions with just a button click

The initial version of our new Slack app leveraged Incoming webhooks to send messages into a channel. We supported two ways for someone to take action with our app: Slash commands and message buttons. Chat user linking was another important addition as we were able to identify which Slack user was taking the action in OpsGenie side.

Follow the roadmap and be an early adopter

One of the things OpsGenie developers appreciate is Slack’s public platform roadmap. Sharing Slack’s near-, mid-, and long-term goals kept our developers engaged and excited about the roadmap.

When we saw message menus on the list, our interest piqued. We were big fans of slash commands, but were looking for an easier way to execute common Opsgenie commands such as snooze, assign, and take ownership. We had a perfect use case, and got to work updating our app.

You can enable people to take actions in one click, using a button, for options that don’t require a list (in our case, acknowledge/unacknowledge or close.) In contrast, Slack menus enable you to present your app’s less-frequently used actions in a list of multiple options. Assigning an alert to someone else or snoozing an alert are in this category, yet they still need to be easily executable in Slack – so we decided to put them in a dropdown menu.

User menus, which enable you to select a Slack user from a list, were extremely easy for us to implement – just a prop change in a JSON file – allowing our users to change the ownership of an alert.

Assign your alert to a Slack user

Once we were done updating our Slack app, our users were able to take ownership of an alert, assign the alert to another Slack user, and snooze an alert for a specific period of time by selecting from a dropdown menu, all with couple of clicks.

Focus on improving your user experience

A common action an IT or DevOps responder takes after acknowledging an alert is to add a note, a task easily accomplished with the Slack feature dialogs (simple forms you can add to your app). Flexibility is one of the guiding principles in OpsGenie’s DNA, so we value providing different ways to easily accomplish a desired task. By embracing dialogs, users can easily add notes by popping up a dialog, or can continue adding notes by using /genie commands.

Our usage of dialogs is fairly simple for now. We have a Text Area specifying what a user should write as a best practice. It is ideal to keep choices simple, especially during incidents where people have their hands full.

Add note to your alerts using Slack dialogs

We also made an update based on requests we received from our customers. Users now have control over what information is shown within the Sack channel. By simply unticking a menu list, you can choose to simplify the information seen in the thread. Again, flexibility for users is the goal.

More tips for Slack developers

You should regularly update your app to leverage new features focused on simplifying user interactions to provide the best possible experience for your users. Here is a couple of takeaways from our experience building an app for Slack:

We believe Slack and OpsGenie have brought the power of ChatOps to alerting, on-call management, and incident response, and we are looking forward to continue the evolution — together.

If you are interested in learning more about our Slack application, visit:

--

--