You must enable javascript in order to use Slack. You can do this in your browser settings.

When you set out to make a Slack app, the range of possibilities can make you feel like you've stepped into Wonka's Chocolate Factory. If you're bewildered at the options in front of you, use this guide to choose from the delicious treats of the Slack platform.

While this guide presents a framework for planning a Slack app, it's by no means the only way. If you've chosen a course already, stay resolute. For the wandering, wondering remainder, this guide is for you.

Outline your use cases

Now is the time to figure out how your app will help make other people’s working lives simpler, more pleasant, and more productive.

In order to decide which workflows make sense to hook into Slack, it’s helpful to know what you can do with our APIs. Read our introduction to Slack apps for a rundown of the capabilities available.

Gather feedback and surveys from a diverse range of people within your organization. We don't prescribe the feedback or ideas to seek, but here are some thought experiments to try:

  • Are there any regular types of message that are posted manually? Imagine a manager posting in a channel every Friday afternoon asking for status reports. This could be turned into an app that posts reminders on the same schedule. The app could also collect the responses in a better format for the manager to consume later.
  • Ask team members to find one or two automated messages that they’ve received in the past week or so that are critical to their job. Often these kinds of automated emails can be turned into messages posted in workspaces by Slack apps.
  • Think beyond pure communication and embrace interactivity—an app like the above might just post automated messages. Beyond that, could any other app surfaces be implemented with interactive features to radically deepen the experience.
  • Think about the key hurdles that people face when using Slack in your team, and outline them. Can an app solve those problems?
  • Do you regularly use an external service while working? If they don't already have their own integration (try the App Directory), and they offer a web-based API, build an app that integrates that service into Slack.

If you need some inspiration, you can always peruse the Slack App Directory or take a look at the Slack Platform Ideaboard.

Storyboard your interactions

Storyboarding is a great way to help you figure out how people will interact with your app—and therefore to decide which features to implement.

Let’s walk through some planning exercises that will help you efficiently map out your app's interactions.

Pick entry points for interactions

Put yourself in a user’s shoes. Imagine them trying to complete a specific task using your app. How do they make first contact?

Will it be easiest for them to initiate the workflow by using a shortcut, or by interacting with Block Kit components? Or maybe your app should provide multiple entry points for the same workflow?

There is no single correct answer for every apps or every user. Take time to explore different possible ways of guiding a person through getting this work done, and picking whatever is simplest for your user base.

Read our guide to picking interaction entry points to explore this topic further.

Imagine user-app communication

Think about what happens after a user initiates a workflow. Imagine the sequence of steps that might be presented to that user, in order to reach a conclusion. And then do it again for different user personas.

Do you need to collect information? Is the flow better handled through dialogue or a series of buttons?

This exercise will help you to figure out what kinds of app surfaces you'll need to use, and the APIs your app might require along the way.

You might find that you can compress some workflows with clever interactivity, or use more assistive language when communicating to reduce confusion.

Read our guide to communicating with users, and our tips on choosing the right voice and tone for your app.

After storyboarding your app's workflow, you should have a better idea of what kind of functionality you'll need to implement — read our guide to choosing the right APIs to see how you can build those functions.

Understand your audience

Slack users are people of all ages, races, genders, and ability levels. They may have poor internet connections, use Slack only on mobile, or they might never have used a Slack app before. We want them all to have a great experience on Slack, so be sympathetic of your audience when designing your app.

Read our interaction guidelines for further tips on building apps for diverse audiences.

Put it all together

After following the process outlined in this overview, you should have a good sense of your app's audience, and what the app will do.

Dig into our guides to picking interaction triggers and choosing the right APIs. They'll help you figure out which Slack app features you can use to build your app's functionality.

To get more help with tailoring your app for the intended audience, read our guide to communicating with users and our interaction guidelines.