Slack Bot Onboarding

Lessons learned from onboarding 2,000 companies

Editor’s Note: Hi everyone, Slack Developer Team here — listen, the Growbot team pitched us this story and it contains so much good advice for developers making bots for the Slack App Directory that we agreed to run it here for everyone to see. Listen to the good advice from the Growbot team — they’ve learned from trial and error after being added to over 2,000 company Slack teams, and offer great tips on the best ways to program your bot interactions inside of Slack.


Asynchronous communication is taking over the 9–5 (and sometimes 5-midnight). This shift toward simple, real-time communication has brought a resurgence of workplace bots. Bringing with it a new wave of how we interact (and get started with) software.

The good news is we’ve collectively filled our bag of onboarding tricks with years of web and mobile iterations. The web → mobile screen size devolution forced developers and copywriters to slim down the number of screens, words, and wizards required to learn a new application.

Slack (more broadly, messaging) is the next phase, again forcing developers to streamline. This simplicity and reduced cognitive overhead is great for users, communication, and productivity. That doesn’t mean we need to relearn everything from scratch, but it does create new challenges that need to be addressed for your bot (and the bot ecosystem) to be successful.

“If I had more time, I would have written you a shorter letter.” — Blaise Pascal/Mark Twain

The basics

Here are a few painful tips we learned that seem obvious in hindsight.

People don’t read. Web and mobile 2.0 brought a wave of snazzy interactions, animated tutorials, and the like. This kept users engaged long enough to learn the basics or tricked them into absorbing the required information. Messaging platforms like Slack streamline communication, thus removing the crutch of flashy UI. This paradigm forces clear and succinct language. Ask yourself ‘what are the key tasks I need this user to accomplish in the first 30 seconds?’ and ‘how can I make those tasks stupid-simple?’. Don’t throw a wall of text.

Keep it conversational. Did you even read the previous tip? Nobody will read paragraphs of text, but they will have a ‘conversation’ with your bot. Try to break your onboarding into bitesized chunks. Make it feel like a (scripted) conversation. DON’T try to fake artificial intelligence. Users will test you, and you will fail. Depending on required setup, users might not get all the way through. This is a great chance to reengage. Use it.

Keep it in Slack. Users are adding your bot to Slack. That’s where they want to stay. Our initial onboarding was slack → website → slack → website, etc. Gross. Instead, keep users in their workflow as much as possible. Today you can customize Growbot without leaving your favorite chat client. Fun fact — we pushed the new onboarding the day before the Slack app directory launch where Growbot was front and center. Risky? Yes. Worth it? Absolutely!

Leverage the (limited) UI. The real beauty of Slack is what it’s lacking. Slack’s UI components are more than enough to educate and highlight the necessities (reactions, links, multi-line messages, bold, italic, attachments, etc). They provide just enough customization to brand your bot, but not so much that there’s too much cognitive overhead for your users. I’m amazed at how many bots just link out to a web experience or don’t leverage reactions as buttons.

Offer help. We offer live chat support to all our users. All you have to do is send Growbot ‘operator’ and we’ll help answer any questions.

Gaining awareness

Growbot helps teams celebrate and save team wins. It works best in large channels with many people interacting with it. You’d think we would want to get it in front of everyone as soon as possible, right? Wrong…

Slow and steady. These aren’t the early days of the Facebook platform where the benefit of losing one user’s trust meant getting in front of 100s or 1000s of additional potential users. In Slack, you aren’t racing to reach as many people as you can before the platform shuts down your shitty growth hack. Once added, the upper bound of users is already set. You aren’t doing yourself (or whoever added the bot) any favors by messaging the entire company with a cheesy ‘Beep Boop excited to be here’. More importantly, by doing this you hurt the bot ecosystem and make that person less trusting of future, well-intentioned bots. Instead, leverage your champion. Show immediate value, make setup super easy, and give them tools to successfully communicate that value. Let them do the introduction on his or her terms.

Rarely (slide into) DMs. From our experience, Direct Messages are for users with a pulse. Getting woken up by a teammate is annoying. Getting woken up by a bot is inexcusable (unless it’s truly vital information).

Double opt-in. A constant theme in our onboarding is building trust. Growbot is most valuable in channels, so we want to help users feel confident that they won’t be spamming users by /inviting @Growbot. Each time Growbot is invited, it asks permission to introduce itself to the channel.

Fail gracefully. If the inviter doesn’t want Growbot to introduce itself, we don’t kick down the door. Instead, we print a super simple message for them to copy/paste if they so choose.

Spread organically. Once we have permission to make a grand entrance, we give a little teaser on how to use Growbot (NOT A WALL OF TEXT). Members of the channel can then tap the reaction if they want to learn more (privately).

Wrapping up

Good onboarding (and articles) are short and sweet. Each bot serves a different purpose and should be onboarded accordingly, but we are starting to learn the best ways to do that effectively in our category of employee engagement. If you want to chat more about Slack, Growbot, conversational UI, employee engagement, or beer you can tweet me :)