How it works: Your Twilio number is your dedicated dispatch line. Outbound texts go from this number. When activists reply or call back, it forwards to your personal phone and shows in the π¨ inbox.
Twilio setup: In your Twilio Console, go to your phone number's settings and set these webhook URLs:
What this does: Scans outbound SMS sent in the last 7 days and starts a response timer for any activist who was messaged about an upcoming shift but doesn't currently have a timer showing. Use this once after a session restart to restore timers that were lost before they started persisting to Firestore.
What this does: Same as the backfill above, but scoped to a single shift you pick (search by name, e.g. "Farm Bill Senate Outreach"). Useful when you've already messaged a group about a specific event and want their response timers to start ticking without scanning every recent outbound message.
What this does: Walks every shift, groups similar names together (with abbreviation expansion β AdMo β Adams Morgan, Mt Pleasant β Mount Pleasant, etc.), and links every member of a multi-shift group to its canonical name. Skips shifts that already have a series link. Run console autoLinkAllShiftsToSeries({dryRun:true}) first to preview without writing.
What this does: Pulls the last 14 days of outbound calls from Twilio's own call log and reconstructs the π "called this week" badges for any activist whose entry got clobbered by the multi-dispatcher race condition. Safe to re-run β it skips entries that already exist.
π Stampede Alignment
What this does: Walks every assignment document in Firestore and demotes any manually-confirmed activist to tentative, plus removes any host that was not set on Stampede. Going counts (X/Y) will then match Stampede exactly. Confirmations and hosts are now Stampede-only β this one-time cleanup aligns existing historical data with that rule.
π Asana Integration
Add destination:
How it works: Add one destination per person whose Asana project you want to forward to (e.g. Justin, Sam, Cady). Tasks created in Task Manager sync to the default destination. From the π¨ inbox you can forward any message to any destination's Asana project. Each person generates their own Personal Access Token in Asana Developer Console and shares it for their destination.