Live Text a Presenter

Technical Level: Adept

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:

Slack

  1. If you don't yet have one, create a Slack Team.
  2. 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:

  1. create a new service in Heroku, using the twilio2slack git repo.
  2. create a config.py file from the config.py.sample
    • Include your Slack Webhook URL.
    • Create a random string as your endpoint.
  3. Publish the service on Heroku. Remember the URL.

Twilio

  1. 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.