Slack
July 13, 2020

The Ultimate Guide to Building Slack Workflows in 2021

Building Slack workflows is the secret to overcoming the inefficiencies that emerge as organizations get larger.

We all need processes to help our teams stay organized and moving work forward. But, these processes are tediously manual. We've all had the experience of work disappearing into the black hole of Slack DMs or crowded team channels.

But, what if we had a way to structure our processes into forms that people fill out in Slack, that automatically route their request to the right people to follow up? That's where Slack workflows can help.

What's a workflow?

A workflow is a multi-step process in your company. It's the work that happens in order to accomplish a business objective.

What are examples of workflows?

  • 📫 Triaging requests from other teams for help
  • 📑 Getting a new sales contract approved
  • 📢 Reviewing and publishing a new blog post
  • 🙋‍♀️ Requesting a new piece of marketing collateral
  • 📄 Submitting a customer support ticket
  • 🧑‍🔧 Onboarding a new employee
  • 📲 Reporting and fixing a software bug
  • 👩‍💻 IT or facilities help desks

Workflows have a sequence of steps

Any of these workflows is composed of several stages of work that often happen in a specific order.

A process to get a job offer approved and sent to a candidate.

Think of a process at your company, like a hiring manager getting approval to make an offer to a job applicant. We want to gather information from the hiring manager, like the intended salary, job title, department, etc. Then we may want to route it to get approved by several people — the department head, perhaps someone in HR to ensure the seniority and salary is in line with other departments, and maybe someone in finance to verify we have room in the budget.

What is workflow automation?

Workflow automation is when you have software take the tedium out of multi-step, multi-team workflows. With software, you can make sure the steps are followed and that work gets completed.

Lots of things could go wrong with doing a process manually. Take the hiring workflow from the previous section, for example. Managers may hire infrequently and have to inquire about what the right process is. They may not include all the relevant details when they submit the request to hire. The department head might forget to check with finance to see if there's enough budget. Or, the request could be buried in a busy channel of Slack messages. In our increasingly remote workforce, time differences can easily lead to requests getting missed in busy Slack channels.

These problems could be avoided if we structured our workflows into an app to make sure things happen in the right order, in the right way. For instance, we could have a form gather the information we need from the hiring manager so we never have to go back and ask for more information. That saves a ton of time and frustration. Further, we could have the app know to route the request to the three different approvers and give them buttons to sign off on the hire. Then, once things are approved and the offer is accepted, our workflow could assign tasks to someone to buy the new hire a laptop or setup orientation meetings. Finally, all of this activity could be then logged in a spreadsheet for auditability, or the offer details sent to an HR app to update the employee's attributes there.

Putting workflows into an app makes sure we can audit our process, because the progress on each step is documented. That way, we can find work that got stuck and make sure it's completed.

Automating the various parts of a process like that is what we call workflow automation.

The two kinds of workflow automation

There are actually two kinds of workflow automation used by many teams:

  • ⚙️ Data-driven workflow automation: When automation listens for changes in one app and updates data in another app. For instance, you might have automation that triggers when a lead requests a demo on our website, which then creates a lead in our sales CRM. This kind of automation helps us keep data in sync across multiple apps. Companies like Zapier and tray.io focus on data-driven workflows.
  • 🙋 Human-driven workflow automation: When automation is triggered by one person or team that then routes a work item along a set of steps for other teams to take action — like getting  approvals, assigning tasks, or asking for information. For instance, you might have automation where someone needs to build a quote for a services contract. They could specify the details of what the customer needs via a form, which is then routed to our delivery team to estimate hours. Once they are done, the system could automatically route it to sales leadership to sign off before triggering a task for the sales person to send the approved quote. Human-driven workflow automation can be handled in Slack via Slack's Workflow Builder feature, using Wrangle's steps for approvals and tasks. Workflow Builder is integrated with Zapier, so you can cover both kinds of automation in one continuous workflow.

Benefits of workflow automation in Slack

  • Organize a busy channel of requests. Most teams in Slack end up having a public channel where other teams can post requests for help. Pretty soon, these become overwhelming — it's hard to track if a manager has approved the team working on the request and then if the work actually got done. Using Slack Workflows, we can automate responses to these requests to make sure someone is assigned to handle them.
  • Put structure on the request with forms. We can have people fill out a form or trigger a workflow from data changing in another app. Now we don't have to manually ask people for more context on their request, speeding up the process.
  • Eliminate the manual notifications. So many processes rely on us remembering to message the next person in the chain (if we even know who we're supposed to get involved). Then we have to wait on them to reply. Sometimes it's really hard to even know if they actually completed the request we sent over, or whether it got lost in a Slack DM.
  • No need to teach the process. Let's face it: no one wants to read our meticulous process document and keep up as we change things. With automation, the process owner can configure the system to route work to the right approvers or contributors, but no one else has to read a document to learn the process. The workflow automation just handles it.
  • Look back at decisions later. If we get these manual processes out of DMs and into an app that integrates with Slack Workflows like Wrangle, we can audit our decisions later. No more searching through Slack trying to find the context of where someone individually signed off in a DM.
  • Work across time zones. When you have teams spread across time zones, having other teams post requests to a channel doesn't work. By the time the team in another time zone gets online, the request might be buried by hundreds of subsequent messages. Workflows make sure we can notify specific people in response to the request getting posted, so they don't have to review the whole channel to see if there's anything relevant for them.
  • Interface with data-driven workflow automation. The activities that humans take in a human-centered workflow, like filling data into a form, could then be routed via a data-driven workflow tool to update various apps.

Slack's Workflow Builder feature

Defining the steps of a process in Slack Workflow Builder

Slack's Workflow Builder is a good place to start with basic automation inside the chat platform. Workflow Builder lets you build multi-part automations: when something happens, post a message or a form to a channel or DM (see the full list of triggers and actions below).

For instance, when a new member joins a channel, automatically send them a pre-written welcome message explaining what the channel is used for. Or, you can build a form to structure a request, say for an IT help request, and post that in the IT channel for someone to follow up on.

If you use Zapier, this should sound pretty familiar (in fact, you can do most of these simple automations in Zapier as well).

Where to find the Workflow Builder in Slack

Slack's Workflow Builder can be found in the top left of Slack. Click on the name of your workspace, go down to Tools, and then you'll see Workflow Builder. You can also open Workflow Builder from any channel by typing "/" or clicking on the Shortcuts menu (⚡️ icon in the message reply box at the bottom), and then searching for "Open Workflow Builder." You must be on a paid Slack plan to use Workflow Builder.

Triggers in Workflow Builder

Slack's Workflow Builder lets you trigger your automation when one of several things happens:

  • Shortcuts menu: People can click on your workflow from the Shortcuts menu (that's the ⚡️ lighting bolt icon next to the chat window at the bottom of a channel in Slack)
  • New channel member
  • Emoji reaction: Any time someone reacts to a message using an emoji reaction
  • Scheduled date & time: Launch a workflow on a recurring schedule, like every Monday
  • Webhook: This one is more advanced. It allows developers to trigger a workflow when something happens in an app they've built. Something like Zapier could also be used to trigger the webhook to start a Slack workflow.

Actions in Workflow Builder

Once your workflow has been started by one of the Triggers listed above, you can then automatically take one of two actions inside Slack:

  • Send a message: Send a message to a channel or directly to a person. You can pre-define the message, and even use merge fields to customize it using data from a form
  • Send a form: Send a custom form with fields you define, either to a channel or directly to a user in your Slack organization.
  • Actions from Apps: Slack only provides the two actions above. For the rest of what you need to automate your workflow, Slack allows third-party apps to provide more Actions for Slack Workflows. Wrangle provides steps to assign tasks and approvals so you can make sure that work gets triggered in response to requests in your workflow and so you can easily track work completed and outstanding.

What kinds of things can you do with Workflow Builder?

Approvals

You could manage approvals in Slack for things like time-off requests, purchase approval, signing off on sales contracts, and reviewing content for marketing. These can be very helpful in keeping track of decisions by allowing users to click a button to say they are approving. Use Wrangle to start an Approval within a Slack workflow.

Tasks

You could automatically route tasks to HR teams while onboarding a new employee (e.g. to purchase their laptop, or schedule them for a getting-to-know-you lunch with someone from another team). Or during customer onboarding, you could have automation that triggers the customer success team to schedule a kick-off call with the client when a deal is closed in your sales CRM. You can use Wrangle to start a Task List within a Slack workflow.

Notifications

Using automation to send messages at certain times can be really useful in Slack. You could have an automation that welcomes a new employee to a channel when they join. Or you could have automatic status updates get posted in a channel as we make progress on a multi-step workflow like onboarding a customer. Or, just a simple celebratory message in a channel when a deal closes in our CRM.

Forms

Most Slack workflows target ticketing use cases, where you have one group asking another group for help. Using form steps in a workflow guarantees you gather all the context necessary to process the request. Many processes require gathering data in the right format at various steps. If you're approving a request to purchase a new piece of software, you might want the purchaser to fill out a structured form with details on how many people will be licensed to use the software. In a marketing content review, you may want your staff to detail who the intended audience is for the content, or where they hope to syndicate it.

Slack Workflow Builder Examples

Slack publishes a directory of example workflows you can learn from. Here are a couple useful ones. Check them out to see screenshots of what building a Slack workflow is like:

Limitations of Slack's Workflow Builder

Slack's Workflow Builder is a powerful way to automate your conversations. But when we want to use it for more complex workflows, the kind that get our most important work done, there are a few gaps to be aware of.

  • Hard to do multi-step workflows. It's pretty good for doing two-step flows, like having someone fill out a form and then post a message. But you have to string together multiple "workflows" to handle something like an approval (you need a second one to see if the approver clicked on an emoji, which then needs to notify you that they approved).
  • Little paper trail. For something like an approval, the only record that someone approved a request is that they reacted to the request with an emoji. That's really hard to find later when you need to audit who approved something.
  • Can't assign tasks to close the loop. Lots of processes involve assigning tasks to someone to complete the workflow. After you approve a new job offer, someone needs to get automatically reminded with a task to actually send it. There's no way to see that they actually checked off that they did the task.
  • No dashboard of work waiting on you. If every request is a notification in a channel or DM, that means you have to be really careful not to miss one. There's no central place to see all the processes waiting on your input, so you'll have to check lots of channels to see if anyone is waiting on you (or to see progress on your own requests).
  • Can only have one button in your message. Workflow builder has a cool feature to include a button underneath your message (i.e. a "Task completed" button). But, lots of real-world processes need a whole checklist of tasks, or approve/deny buttons.

Take Slack workflows to the next level with Wrangle

Wrangle is a Slack app that helps you assign approvals and tasks inside your channels. Wrangle integrates with Slack's Workflow Builder so that you can automatically route work in response to people filling out forms.

Here's how you might automate a blog post publishing process in Slack, using Wrangle and Slack Workflow Builder:

1. The Slack Workflow is kicked off

In the private #marketing-team channel, a marketing team member clicks on the shortcuts menu (⚡️ button) and picks "Publish blog post" to start the workflow.

Immediately, a modal window opens with a form designed by the VP of Marketing. The form collects for information about the blog post: the name of the post, a link to a draft, the target publishing date, and who the post is targeting.

The Slack Workflow opens a form to gather information

2. An Approval is assigned to the VP of Marketing

As soon as the form is completed, the Workflow triggers Wrangle to post an Approval to the #marketing-team channel. The approval is posted as a new thread in the channel, so anyone can watch and comment on the approval. The VP of Marketing is @-tagged in the message, so she will get a notification.

In the approval message that's posted, the VP of Marketing can see the responses to the form. She also has "Approve" and "Deny" buttons that she can click once she's reviewed the blog post.

Wrangle posts an approval for the VP of Marketing into the #marketing-team channel

3. Tasks are assigned to the designer to create images

Once the VP of Marketing has approved, the Workflow then triggers Wrangle to post a task checklist as a reply to the approval message. This task list tags the designer and assigns him to create images for the header banner and illustrations for the body of the blog post.

Everyone, including the person who wrote the blog post, can follow along as he checks off the tasks. Since the tasks are posted in the same thread as the original approval, the full history and discussion are kept together.

Once he clicks to check off all the tasks, the next step is triggered.

After approval by the VP, Wrangle posts tasks for the designer

4. Tasks are assigned to the blog administrator to publish

Finally, another Task List is posted as a reply in the same thread. This list assigns tasks to the blog administrator to upload the images, publish the post, and post links to it via social media channels. That way, we make sure someone is assigned to close the loop on this effort.

After the blog administrator checks off the tasks, Wrangle notifies the person who wrote the post and started the workflow.

After the designer is done, Wrangle posts tasks for the blog administrator to publish the post.

The approvals and tasks are tracked for history by Wrangle, so you can easily look back and see who approved and what got done.

Learn more and try Wrangle

You can learn more about Wrangle's ticketing tool for Slack and try it out.