We applied to the Slack App Directory on December 14th. 2 months later, on were successfully listed on February 12th!

During the review process, Slack shared our goal of providing a great user experience. Their feedback was pointed, and helped us improve. One thing to keep in mind is turnaround time, it usually takes 8–10 business days for them to respond.

Some lessons we learned along the way:

1. Make sure your bot stays up 24/7!

Amy at Slack is in charge of listing apps on the directory. You never know when she’ll test your bot. At one point in the process, we woke up to this email from her:

I’ve been trying to test everything again on my end, but it looks like the Kip bot is offline and not responding…we’d recommend monitoring for disconnects and try to reconnect if necessary.

Monitor all Slack web socket connections. There’s a glitch detailed here: https://github.com/slackhq/node-slack-client/issues/53 that caused us issues, coupled with periodic MongoDB timeouts (eww!) which prevented Kip bot from staying online for all teams.

Pro tip: Set an email notification so that when a socket connection inevitably drops at 3am or on a quiet weekend and Mongo simultaneously fails (it happens, because Mongo) you can SSH from your phone and PM2 restart your sad server.

Emergency code to use in a bind for server restart on socket “close” event:

2. Dive deep into the Slack messaging format

When designing your app for Slack, become fluent with the messaging format. If we studied it closer at the beginning, we could have saved time later on.

I do have a suggestion of another option, would you consider using the URL formatting options we have in message attachments to show, for example, “Option 1” rather than just the raw bit.ly link?

Hide raw links, polish your interface. Amy suggested we hide our bit.ly links with Option 1, etc., we iterated on her feedback and decided to show the item titles as links:

Could I ask if there’s a particular reason you’re returning the results as one image, rather than as three separate images within their own message attachments? If you were to return each result as its own attachment, you’d be able to show the links, titles, images and numbers for each within their own entry. Is there a reason that might not be possible?

We display 3 item search results at a time that users can save or refine with additional chats with Kip. We weren’t splitting results into attachments at first, which affected the Kip bot UX.