saylornotes

The Blog of Chris Saylor

Search Results

    Submitting Chessbot to the Slack App Directory

    October 19, 2018 engineering Chris Saylor

    This is the follow-up post on building a chessbot for Slack.

    The main focus on the previous segment was on technical engineering: authentication, request handling, image rendering, and chess rules. However, when submitting an app to the Slack App Directory, one has to take a step back and consider the entirety of the app from the user’s perspective.

    Submission process

    The first thing you are greeted with when submitting an app is a rather intimidating checklist.

    In its entirety, this checklist probably has about 50 items to consider which are broken into smaller subsections to help manage. They range from testing considerations and security implication to customer service. After submission, a member from Slack’s directory review team will go through the application, do some of their own testing interacting with the app, and then either approve or reject with comments to address.

    Review Process

    A critical factor for apps of this nature is how good is the onboarding process of a user. Can the user without me standing over their shoulder guiding them along interact properly with the software? Are there enough visual (or otherwise) clues to guide the user. As the designer and developer of the bot I am intimately knowledgable with how it works, so I was very pleased with their review feedback catching some areas I wasn’t paying attention to that a normal user might struggle with.

    The first feedback item was a general help message. I had built in a help command to the bot which responds with some general notes and a link to get more help, however the bot itself can be directly messaged without the app_mention event. Messaging the bot in that manner would not generate a response. I implemented listening to the message event which gets fired in the case of direct messages to the bot and display the same help text as the app_mention handler.

    Next, the game challenge workflow: this is the main crux of starting a game in ChessBot. The app review team rejected saying that it didn’t work and the bot didn’t respond further after a challenge was issued. It wasn’t that the app had failed to issue the challenge, it failed to let the challenger know it had successfully issued the challenge. There wasn’t feedback to let the challenger know that we were waiting on the challengee to accept. In this case, I implemented an ephemeral message (visible only to the challenger) that gave some feedback on their issued challenge.

    Finally, we needed to setup some ancillary items such as a website with our slack install button, privacy, and a support email address.

    Future Challenges

    Slack’s platform changes at a very fast clip. Already on my list to keep support of the app:

    • Implement secret signing HMAC security token verification. The old request token check has been deprecated.
    • Recently announced in this Slack blog post, they are reversing course on how workspace keys work and are going to require expiring tokens soon. This means I will need to implement rotating bot tokens via a refresh token.

    They do provide a nice way of keeping up to date with these changes via twitter and RSS, which you will need to stay on top of if you want your app to stay on the app directory.


    Overall, I had a really good experience with getting ChessBot listed on the Slack app directory. The Slack review team were patient and helpful, and did make the app a little bit more accessible to new users.

    Related Posts

    Building a Chess bot for Slack August 23, 2018

    With Atlassian’s announcement suspending development of Stride and dropping support for Hipchat in favor of Slack, I decided that the time was right …

    Learning to Be a Tech Lead April 25, 2019

    For most of my career, I’ve been an individual contributor: focused on the tasks at hand, writing code, among other things. All of that changed about …

    Meta: How this blog is built and deployed April 11, 2019

    It is an unspoken rule that if you utilize something other than Wordpress for a blog that you must include an article on how it is built. This is that …

    Design for Success June 7, 2018

    This year, I gave a talk at Syntaxcon in Charleston, SC. Being my first talk on design, I was out of my comfort zone, however I would be remiss if I …

    comments powered by Disqus