Slack on Slack: Delivering impactful internal products

How focusing on user feedback and bottoms up idea generation helped us build custom apps that save our Sales team time.

Monica Wilkinson
Aug 5, 2020 · 8 min read
Illustration by Sarah Lazarovic

We’ve established a small cross functional team responsible for improving the end-to-end Lead to Cash workflow at Slack. In this blog post, I will go into detail about what I consider the key to our success so far.

In the last year, we provided the Enterprise Sales team at Slack the ability to generate a sales deck, propose a deal structure and route the deal through the correct approval flow, without leaving Slack. The year prior, we delivered Order Automation — a service which triggers the contract creation, provisioning of the appropriate product and invoicing — when an Opportunity is closed won in Salesforce. If any exceptions happen during the provisioning flow, our self-serve model delivers them to the appropriate teams that support Sales and our Customers via Slack.

And soon, we will launch Midas Touch for Prospecting, which will help Sales Leadership guide the entire Sales team to prioritize their efforts. Midas will highlight which customers and prospects show the most potential with key signals, metrics and recommended actions, right from Slack, encouraging dialogue and collaboration between Business Development Reps, Account Executives, Renewal Managers and Customer Success Managers.

While the entire Lead to Cash flow is the effort across many projects in BizTech — such as our SalesLoft deployment, our migration to Workday Financials, our deployment of Steelbrick CPQ — streamlining all of these projects via Slack has been a game changer making the transitions feel seamless for our Sales team and saving countless hours.

Let’s take a step back to share how we got to this point.

Bringing crowd-sourced innovation to IT Projects

When we started in 2016, Business Systems would meet regularly with the Business, mainly the operations teams, to get their requirements. Typical requirements would focus on scaling the business, e.g., delivering Sales Compensation, enriching our prospecting data, better managing approvals in Salesforce with Steelbrick CPQ, or launching a new system like Workday.

We considered success (1) finishing the launch on time and (2) training the user base. While impressive goals, we lacked a key component in our process: User Feedback. We needed to understand daily workflow pain points and areas of opportunity directly from users.

So in 2018 we launched a signature program, Slack on Slack, to focus on optimizing Slack as the place to collaborate and take action. We drove portfolio prioritization based on input from BizTech leadership. We saw many successes, including the build-out of Approvals Bot, which posts key approvals to managers in an effort to reduce TaT(turn around time).

We wanted to leverage the value of automation even further, and particularly to introduce an aspect of crowd-sourcing. Early in 2019 we opened the program up to the entire employee population encouraging them to share impactful ideas that we could build internally via a public channel #slack-on-slack.

One of these ideas generated the creation of Midas Touch Bot which helped our Sales teams automatically generate sales decks that used to take hours, now in seconds, right from Slack.

But we didn’t stop there. Still encouraging design thinking and iteration, we received a charter for what we now call Midas Touch for Prospecting in early 2020, while at the same time receiving numerous requests to push this key account data and signals to Slack versus pulled into a slide deck. We launched a tiger team including leaders from sales operations/strategy, as well as end users, and sales reps, to deeply understand the most compelling signals and how to make them actionable.

In parallel, a similar story replayed with Approvals Bot Deals. Sales Ops asked our team to streamline the initial iterations on deal structures so we went ahead to build a robust Slack multi-person workflow (which we will dive into below). Once we started showcasing this flow, end user shared feedback that ultimately drove us to simplify the end-to-end quoting process.

If it wasn’t for (1) Slack on Slack, (2) the focus on getting user feedback and (3) ideas generating bottoms up, we may have missed these tremendous opportunities to help direct our prospecting efforts seamlessly and streamline Lead to Cash.

Harnessing the power of Slack through custom apps

We have referenced a couple bots so far: Midas Touch Bot and Approvals Bot, but we have built quite a few more recently and evolved our strategy.

First, we should cover why we choose to build bots so frequently…

There are several benefits to building bots instead of (or in addition to) full stack internal applications:

  1. Speed of development: We can build fairly sophisticated UX without the need for a front end developer.
  2. Consistent experience: With Slack’s Block Kit all bots’ messages and surfaces have a consistent experience which helps users interact with our product intuitively.
  3. Low barrier to entry and use: There are two reasons that make our bots memorable and increase user adoption: (1) employees witness first-hand their value in Slack and can find them all in a central location; (2) we make our bots playful and fun, designed with purpose and personality, so users can remember the value provided to encourage repeated use.

In BizTech we use Workato to build most of our bots.

Workato is an Integration Platform which helps build reliable integrations in a short amount of time. The key benefits of Workato are:

  • Low code
  • Intuitive for analysts and developers
  • Out of the box robust commercial connectors, e.g.,Salesforce, Workday, Slack
  • Easy to create additional connectors as well as extend existing ones
  • Robust Job Monitoring and Self Management
  • Secure

One of the main benefits for Slack is Workbot:

  • Workbot is one of Workato’s key connectors that allows building bots for Slack and other providers.
  • Workbot is a conversational bot which understands commands with the syntax: application action object.
  • Workbot handles all the Slack interactive components like button clicks, shortcuts, slash commands using the same command interface.
  • Workbot supports Block Kit for messages, modals and App Home.
  • Workbot can be customized with your own Slack App credentials to provide custom avatar and scopes, especially important as Slack has rolled out Granular Bot Scopes.

So how does Workato look in practice?

Let’s take Approvals Bot as an example.

Our high level architecture for Approvals Bot is an event-driven architecture where all the business logic resides in Salesforce. Users can perform actions in Salesforce as well as in Slack with the same results and both systems remain in sync.

Below you can see one of our Workato instances for GTM organized by teams and then by projects. For Approvals Bot we used Webhooks from Salesforce when the approval state changed in order to drive the workflow, then published a PubSub topic, allowing multiple subscribers to perform different downstream actions in parallel.

Here is what the Approvals Bot message looks like in Slack.

Finally, once the approvals are posted in Slack and managers hit Approve or Reject, we handle those interactions using Workbot commands (as seen below) to invoke Salesforce and update Slack to reflect the latest status.

Other bots like Midas Touch are a bit more complex so we extend the functionality with micro services hosted in Heroku. We continue to maintain our event driven architecture to help us scale and provide a more responsive user experience.

Measuring Impact

For every Slack bot we release measuring impact is key and we do this in three ways:

  1. Monitoring the business metrics and goals
  2. Sending explicit surveys and collecting user feedback in Slack’s #feedback- channels
  3. Measuring the end-to-end logical transactions

To expand on the third point: in BizTech we are responsible for Corporate Systems and the integrations that span them. It’s imperative for our group to track and measure the larger cross-system transactions — which, in many cases, include handling of special cases via workflows in Slack.

We have developed a simple internal service called HealthMon to collect events using the Activity Stream protocol. Then, we can easily correlate the end-to-end transaction on different attributes. Combined with Looker, our Business Intelligence tool, we configured alerts into Slack and can focus on delivering our SLA. These same metrics help us measure adoption and identify points of friction so we can iterate.

Below is an example of Midas Touch for Prospecting interacting with Slack and tracking the transactions into HealthMon so we can monitor our SLA:

With HealthMon we know how well we are performing and can easily convey the impact like for example the fact that we save users ~5000 hours a month from using our automations.

HealthMon is used by a good number of our services to provide SLAs (by way of Looker dashboards) and in the future we may look into expanding it such that subscribers can do some self healing. Self healing is available in Workato for example but it’s tied to each job and not necessarily the overall larger transaction.

In conclusion, the key to delivering impactful internal products is collaboration and alignment: Aligning to the goals of the business leaders and their vision while connecting with the actual end users to hear their pain points. It’s key to encourage innovation and collaborate and iterate measuring the impact for everything we do.

Feedback or questions? Please post them here and/or attend our presentation in partnership with Sales Operation at the Business Systems Magic Conference, or drop a line to feedback@slack.com.

Slack Platform Blog

Where you make work happen