Our office buzzer has superpowers.
The buzzer number for our office is 007. Pretty cool, I know. But that’s actually not what makes it a superpowered buzzer.
We had a problem. As a small digital office, we don’t have a receptionist waiting to buzz people up to our space, so the buzzer would dial one of our cell phones, which was very annoying. We wanted to be able to buzz people up without having to bother anyone.
Our first thought was to turn to Twilio. We knew that by having the buzzer call a Twilio number, we could have full control over it. Initially, we thought that we would program the buzzer to send a text message and we would trigger the buzz by entering 1.
That would have worked. But texting one person every time the door buzzed, could get irritating.
We eventually decided that Slack could be the perfect tool for the job. By connecting it to Twilio we could buzz people up via a Slack channel without disrupting the same person each time.
The first thing we needed was a way for the call to trigger a message to Slack. Then, based on a message typed into Slack, we would be able to open the door.
Here’s how we did it:
1. First, we got a Twilio number. We had our property manager program our callbox to call our Twilio number each time someone buzzed us.
2. Our Twilio number is set to post to the URL of a small Sinatra app we developed. The code is here: https://github.com/LaunchPadLab/buzzed
3. We wanted our guest to know that someone had answered the line. So, the Sinatra app first uses a TwiML response that says “Hello, and welcome to LaunchPad Lab.” After that, it starts playing Such Great Heights by the Postal Service, of course.
4. The Sinatra app posts to our Slack channel saying that someone is at the door and prompting people in the room to type “.open” to open the door.
5. If someone types .open, a Slack webhook is fired. Via Twilio’s API we get the in progress call and send it an XML file that digitally presses the button to buzz the person in.
6. At this point, our visitor comes up to our office for a beer and our Sintra app takes a much-needed break.
Our Twilio – Slack buzzer works great and we’ve continued to improve it.
We’ve even added an option to keep the door open for when we have events by typing “.stay-open” in the Slack channel. This command will automatically buzz people up for an hour, or until we type “.close” in Slack to stop the automatic buzz.
You can take a look at the code here: https://github.com/LaunchPadLab/buzzed