Understand your audience
Slack users are people of all ages, races, genders, and ability levels. They may have poor internet connections or only use Slack on mobile. We want them all to have a great experience on Slack, so please be empathetic of your audience while designing your app. Here are a few factors to keep in mind:
Slack is used by people all over the world. Even on a single Slack workspace, you may have users spread out across multiple timezones. If you're planning to post notifications at a particular time of day, understand that some people may be seeing the notification at a different time than everybody else on their workspace.
People also use Slack while traveling, so they may be in one timezone when they installed your app but in a different timezone a few months later.
Not all Slack workspaces are the same size. There are five-person non-profits using Slack, and there are 50,000 person companies using Slack. Some workspaces keep their conversations in a dozen channels, while others create five channels for every new project or sub-team across their organization.
To make your app work well for 5 person workspaces and 50,000 person workspaces, take into account how your app uses lists of users and channels. You may need to leave room in your UI for extra channels, or find ways to abbreviate or truncate what you display.
There are several different user types in Slack. Aside from regular users, you should be aware of guest accounts, which are restricted to fewer channels. You may also come across actions performed by other bot users — depending on your app's purpose, it might be appropriate to treat them the same as regular users.
Some users have permissions that others do not. For example, administrators may only permit certain people to install and manage apps, so prompting a guest user to authenticate their account may lead to a dead end. If you can, test your app using a variety of user types.
Some people only use Slack on the phones, while others only use it in a web browser. Make sure that you test our your app's interactivity and messages on as many screens as you can.
Some Slack workspaces may prevent users from editing or deleting messages. Some Slack workspaces may have a 1-hour message retention, meaning that any older message is automatically deleted. Take a look through our Help Center for some example of workspace-level settings.
On top of that, each individual user may have different settings. For example, they may choose to display username rather than full names, or they may automatically collapse all images and media within a message. Again, try to familiarize yourself with as many of Slack's user preferences as you can.
Just because somebody installs your app on their Slack workspace, it doesn't necessarily mean that everybody else on the workspace knows about it. In fact, some people may not even be aware that Slack Apps exist, and may think that your app is part of Slack's built-in functionality. As the app developer, it's your responsibility to make a great first impression to those interacting with your app. See the Onboarding Experience section.