A monitoring tool that sends phone call notifications via Twilio when polls are posted on Poll Everywhere.
- 📞 Phone call notifications when polls are posted
- 🌐 Web interface for easy configuration
- 🔄 Supports multiple poll types (text polls, multiple choice polls)
- ⚡ Configurable polling interval
- 🔍 General poll detection that works with any Poll Everywhere poll format
-
Install dependencies:
python3 -m venv venv source venv/bin/activate pip install -r requirements_phone.txt -
Configure Twilio credentials in
.envfile:cp env.phone.example .env # Edit .env and add your Twilio credentials -
Start the TwiML server (for phone call messages):
python twiml_server.py # In another terminal, expose it with ngrok: ngrok http 80 -
Update
.envwith your ngrok URL:TWILIO_TWIML_URL=https://your-ngrok-url.ngrok-free.app/twiml
Start the web app:
python web_app.pyOpen http://localhost:5001 in your browser and:
- Enter your Poll Everywhere URL (e.g.,
https://pe.app/krishavsingla) - Enter your phone number (e.g.,
+15551234567) - Click "Start Monitoring"
Start monitoring:
python pollwatch_phone.pyThe script uses environment variables from .env:
POLL_URL- Poll Everywhere page URLTWILIO_TO_NUMBER- Phone number to receive callsINTERVAL_SEC- Polling interval (default: 30 seconds)
TWILIO_ACCOUNT_SID- Your Twilio Account SIDTWILIO_AUTH_TOKEN- Your Twilio Auth TokenTWILIO_FROM_NUMBER- Your Twilio phone number (must be verified)TWILIO_TWIML_URL- Your TwiML endpoint URL (ngrok or Twilio TwiML Bin)
INTERVAL_SEC- Polling interval in seconds (default: 30)
- Polls the Poll Everywhere page at regular intervals
- Detects when a new poll is posted or when a poll starts accepting responses
- Extracts the username from the Poll URL
- Makes a phone call via Twilio with a custom message: "{username} has just posted a poll. Go check it out!"
- Tracks state to avoid duplicate notifications
pollwatch_phone.py- Main monitoring script (command line)web_app.py- Web interface for managing monitorstwiml_server.py- Flask server for generating TwiML responsesenv.phone.example- Example environment variables file
MIT