How to best prepare your bot for a new Slack feature

As you guys surely know it’s really hard to keep up with what will be released by your chat platform of choice and needs to be implemented into your bot as soon as the new feature drops. Well, Slack is the master when it comes to launching new features continuously.

If you aren’t familiar with Yodel yet, here is a short intro:
Our aim is it to make business phone calls accessible right from your Slack Channels since March 2016. Yodel is a voice bot integration with cutting edge voice recognition technology. Our voice bot Yodel answers calls automatically, asks who is calling and the reason of calling and transfers the caller to the right person on your team. This ensures an easy way to handle business phone calls.

When Slack first put their new ‘Message Menu’ feature on their public roadmap, we did not waste any time and jumped right into programming a Yodel integration to take advantage of it. This feature gives Slack users the ability to use clickable drop-down menus and this is also useful to our customers. We are excited that we launched our ‘Canned Responses’-feature shortly after Slack released the message menu feature. Yodel users have now the possibility to answer their callers with their customized pre-written sentences in just two clicks. The Yodel bot will read those sentences to the caller. This gives the caller a more personalized experience calling your business.

Yodel’s canned responses feature in Slack

In this article I want to share with you our workflow while programming and releasing the integration of Slack’s ‘Message Menu’-feature into Yodel:

Step 1: Prepare

The thought about implementing a drop-down menu with pre-written answers for incoming phone calls had been in our mind for quite a long time. Even before Slack started talking about its message menu feature on their public roadmap. Back then we didn’t have a name for it but we did understand the importance this feature would have to our customers. To make Yodel a more valuable addition and make it stand out more from other business phone solutions, our voice bot had to start talking back with customized sentences. It saves our users a lot of time and makes the callers experience far more personal. When we saw Slack posting about their message menu, our development team started to work out the details and we made an overall plan on how this feature should look like.

Step 2: Prototype

Since Slack’s API has very clear guidelines and those are easy to follow, we started building a prototype by taking notes from Slack’s buttons API to build our ‘Canned Responses’ feature. It was predictable that the drop-down menu feature will follow the same structure as the buttons, due to Slack being constant with their APIs. 
In fact we did go live with our first prototype. We tested it and it worked perfectly fine. Kudos to Slack for making their API methods easy to understand and follow! This gives us a bigger range to try out new features and in this case, start building a prototype for one before it got released.
In this case our prediction lived up to become true. The only minor hiccup that we had in the UX, was that we needed to change the display of our ‘send to voicemail’-button. We decided that the user should have the choice of using the ‘Canned Responses’-feature and our already established ‘Send to Voicemail’-button at the same time. If a user decides to use ‘Canned Responses’, they will have the option to use the ‘Send to Voicemail’-button later in the process as well. It makes sense in most use cases of our customers to have it set up this way.

Step 3: Slack

As soon as Slack released the message menu feature, I informed my team and we started to adopt our prototype to the now available documentation for the drop-down menu. Due to the good preparational work of ours, this process went down smoothly and in no time our ’Canned Responses’-feature was up and running!

Extra Step:

One thing that is really important but sometimes we as developers forget to do, is that we inform relevant departments and also give them enough time to be ready for the launch. E.g. give your marketing team heads up, so your feature gets promoted as best as possible.

I hope this article could give you an insight and shows you how we at Yodel handle things.

Mario Uher, Co-Founder and CTO @YodelTalk