TADSlack – How I Used RestcommONE, Clarify.io and Slack to Win at TADHack 2015
After winning one of the prizes at TADHack London in April, I was quite excited to show up in Lisbon, Portugal for the big TADHack Global event of the year. I arrived with a bag full of gear, including an Estimote BTLE Beacon, some Tessels, and a lot of ideas. I spent the first part of Saturday kicking ideas around with a number of the teams at the event, and eventually settled on TADSlack.
What Is TADSlack?
TADSlack combines four technologies I’ve really grown to love: RestcommONE Visual Designer, Clarify.io, Slack and of course a little slice of NodeJS. If you use Slack like I do, almost all day every day, you eventually want to leave the interface less and less. They’ve got hundreds of integrations already built, but one of the holes is the ability to make phone calls. I wanted to not only be able to make phone calls, but in the true spirit of Slack (where everything is searchable) I wanted to be able to search the contents of the calls I made. So the idea boiled down to three simple concepts: Make a call, record the call, and then make the audio recording searchable. TADSlack was born!
RestcommONE – Build Voice Apps Without Code
The first thing I had to do was build a voice application that would handle the audio portion of the call, as well as send my backend app a notification when the recording was ready to be indexed. My RVD app had two modules: (1) A Welcome Module that answered the call, played a simple welcome message, and then dialed the destination number and (2) an External Service module that would send a POST request to my NodeJS server when the call hung up, giving me the public URL of the recording.
Screen Shot of Welcome Module:
Screen Shot of the Index Recording Module
Clarify.io – Media Indexing On Demand
Once I got the call flow working, I needed to send the recording audio off to Clarify.io to be indexed for searching. If you’ve not heard of Clarify, they’re a great new company out of Austin that has an API to index audio and video without transcription. I’ve found the accuracy of their engine to be well above most transcription, and you don’t have to deal with text. It’s simple to use: You provide Clarify with a publicly accessible URL and whatever metadata about the media you’d like to include, then they index it for you and send you back a webhook notification when it’s ready to be searched.
Putting it all together inside Slack
I had all of the pieces working, but I still had to wire it into the Slack UI. I had to create two integrations in Slack, an Incoming Webhook Integration and an Outbound Webhook Integration. The details for setting these up can be found on the Github project I created, but it’s pretty simple to do. I could then do something like this inside of Slack:
I could then search the contents of the audio I had just recorded, and the results would be displayed inside Slack, like this:
Here’s a high level of how all of the pieces fit together.
There was one big gap in my hack, and that was the user interface to allow you to drop into the recording audio right at the point of the search term. I have a working prototype of this but could not get to it in time while in Portugal. I intend to integrate this into the project at some point soon. If you’d like to jump in and enhance / make this better, I’ve included a link to the source below and would love to talk more about it with anyone who’s interested.
Download the Source
If you’d like to try out the app, you can get the source for the backend application at the TADSlack Github project. If you’d like to know more about RestcommONE or any of the other technologies used in my project, please feel free to contact me on Twitter or through this blog post.