Bringing bot interaction to a new level
How we used Slack’s most recent updates to interactive messages to massively improve our bot’s interaction design
The most recent big update to Slack’s interactive messages was the introduction of message menus — they are like the dropdown menus you know, but on steroids.
When we built the Workstreams Slack app, a task manager seamlessly integrated into your team’s chat, users had to go through a long series of buttons to assign a team member to a task they created. Now, message menus allow you to choose an assignee straight away.
Buttons enable users to make precise actions, but to perform a more nuanced interaction they would need to navigate through a complex button tree. Message menus condense these buttons into a single UI element, and allow app builders to simplify complex workflows.
Besides valuable usability improvements, message menus also open up many possibilities for completely new interactions — for example, to search your team’s tasks for the next one to take on.
Here are a few ways we used message menus and other interactive platform features to make big improvements to our app’s capabilities.
Making it simple to create, assign, and triage tasks from Slack
When someone in Slack uses the slash command
/plan, they can create a new task in a channel. The Workstreams Slack app then posts a message representing this task:
This message, which is visible to all members of that Slack channel, contains message menus that can be used to assign a team member, change the status of the task, or add a new label.
With the old button-based workflow, Workstreams’ message had to be ephemeral, meaning only the creator of a task could see that message and modify the task. With message menus, the same message can stay unmodified when making changes to the task, so it can be posted in the channel for anyone to view and edit.
Searching for tasks in a Slack channel
For us, the most amazing possibility opened up by message menus is convenient search.
We used dynamic message menus (which load based on your server’s response) to build a look-ahead search feature that allows users an easy way to find their team’s tasks with a quick
/tasks slash command.
Users can select from the most recently updated tasks for quick access, or search for tasks that haven’t been touched for a long time.
The dynamic nature of message menus will allow us to implement an even more sophisticated search in the future — for example, to find tasks that are associated with a certain label.
Once you find the task that you were looking for, you can update it directly from your conversation with just a couple of clicks.
We also introduced this new search functionality for attaching files to tasks. When you upload a file to the channel, Workstreams will suggest recent and related tasks to attach a related file; or, you can quickly search to pull them up.
Discussing tasks in threads
Did you notice the View Discussion link on the screenshot above? It points you to threaded messages relating to this task, without ever leaving the Slack channel.
Whenever a task is created, Workstreams automatically opens a Slack thread for it, which functions as a place to collect activity and comments about that specific task.
The task’s details are always visible in the persistent top message of a particular thread, which is updated every time a task is changed. Now that we’ve implemented message menus, you can even update your task from within its discussion thread in Slack.
This is our favorite example of how independent Slack features can symbiotically work together to create a great user experience.
What’s coming next?
Slack is planning to release text inputs on interactive messages. This will allow for more improvements, such as directly editing a task’s title or description. We are looking forward to implementing these and other features as soon as Slack releases them.
If you haven’t yet, install Workstreams and let us know how you like our latest changes.