✉️ Mass SMS messenger with Twilio and Google Sheets
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.




Dynamically extract phone numbers from a defined Google Sheets to send bulk messages with Twilio.


Your Twilio phone number can be blacklisted as spam by carriers if you're sending bulk SMS. Read this FAQ. If you plan on sending bulk SMS on a regular basis, this is not the right software. You should consider obtaining and using short codes to avoid being blacklisted. They are also much faster than a normal Twilio phone number. HackCU and its developers are not responsible if you get blacklisted while using this tool.

This was built for a hackathon and will be used only for about 2 days in a year to send notifications to participants (who are aware of this and voluntarily provide their phone numbers). So, if your use case is similar, you shouldn't run into any issues of being blocked by carriers.


Needs: Python 3.X

$ pip install -r requirements.txt
$ python manage.py migrate
$ python manage.py createsuperuser

Run server

Local environment

Add 4 (2 optional) environment variables:

Run server to

$ python manage.py runserver


Set up Twilio

Follow this guide so the system can work.

Create Google Sheets

Create a Google Sheets. Open to public for viewing.

Add lists to Google Sheets

A list is a column in the mentioned Google Sheets. It is identified by each first row of a column. The rest of the rows must be the phone numbers.

Send SMS to list

  • Open root route. Ex: http://localhost:8000
  • Login with user (you can login with the super user you created in your first steps)
  • Send messages right away.

Add new users


  • Add ability to receive SMS
  • Answer SMS received individually
  • Keep a log of all messages sent and recipients