Live Text a Presenter
While standing at the podium it is nice to be able to receive messages live from your audience, but also not have to give out a private phone number, and better yet have some people help filter the messages if you have a large audience. This is a simple guide on setting such a thing up, for the mildly proficient in computer systems.
To do this we get a new phone number in Twilio, where the SMS messages are sent to. It will then be configured to send the messages to a router service (there are many third party means of doing this, but the easiest is to just host your own on Heroku) and this will then post it to slack. The entire round trip time takes about 10-15 seconds in my testing.
What you will need:
- A Twilio Account ($$ per SMS ~ relatively inexpensive)
- A Slack Team (free)
- A Heroku Account (free for basic tier)
Slack
- If you don't yet have one, create a Slack Team.
- Create a destination channel (such as
#inbound-sms
) and define a incoming webhook for the channel. Remember the Slack Webhook URL.
Heroku: twilio2slack service
Start with this service, because it is the glue that connects the other two pieces. It is Available on Github, and is setup in Heroku:
- create a new service in Heroku, using the twilio2slack git repo.
- create a
config.py
file from theconfig.py.sample
- Include your Slack Webhook URL.
- Create a random string as your endpoint.
- Publish the service on Heroku. Remember the URL.
Twilio
-
create a Programmable SMS service in Twilio, pointing to:
http://{heroku-url}:5858/message/{endpoint-random-string}
Where {heroku-url} is your heroku service name, and {endpoint-random-string} is the string you generated and put in as the endpoint in the config.py
file.
Testing and Using
Once you have these three things working, you should be able to send SMS messages to the Twilio SMS phone number, and it will appear in your slack channel.
On the podium, you can use a tablet with the Slack client installed, showing either the direct #inbound-sms
channel, or a second channel if you want people triaging the sms messages -- they can copy into the triaged channel for you.