Automated Tasks
Informational only — these are the automated processes, webhooks, and CLI sync jobs that run behind the scenes. Use this page to understand what's supposed to happen automatically and to troubleshoot when something looks wrong.
Twilio — Inbound SMS
1 task
Inbound SMS capture
Fires every time a text message is received on your Twilio number. Saves the message to the Inbox as a new SMS item.
Trigger
POST /twilio/sms/incoming
Webhook
Setup
Configure in Twilio Console → Phone Numbers → your number → Messaging → Webhook (A message comes in).
Env vars
TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN, TWILIO_CALLER_ID
Twilio — Inbound Voice / Voicemail
5 tasks
Inbound call router
Fires on every inbound call. Rings the on-duty agent's browser first (Twilio Client). If unanswered or nobody on duty, falls back to the agent's cell phone.
Trigger
GET|POST /twilio/voice/incoming
Webhook
Setup
Configure in Twilio Console → Phone Numbers → your number → Voice → Webhook (A call comes in).
Env vars
TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN, PUBLIC_BASE_URL
Inbound call fallback (cell forward)
Called automatically by the inbound call router when the browser ring times out. Forwards the call to the agent's cell number, then routes to voicemail.
Trigger
POST /twilio/voice/incoming/fallback
Webhook
Setup
Called internally via TwiML action= — not configured directly in Twilio Console.
Env vars
TWILIO_FALLBACK_CELL (optional — falls back to user cell_number)
Voicemail recorder
Plays a 'leave a message' prompt and starts a recording with transcription. Called automatically when both browser and cell forward are unanswered.
Trigger
GET|POST /twilio/voice/incoming/voicemail
Webhook
Setup
Called internally via TwiML redirect — not configured directly in Twilio Console.
Env vars
PUBLIC_BASE_URL
Voicemail recording callback
Fires when a voicemail recording is complete. Saves the recording URL to the Inbox.
Trigger
POST /twilio/voice/recording
Webhook
Setup
Configured automatically via TwiML recordingStatusCallback= in the voicemail recorder.
Env vars
PUBLIC_BASE_URL
Voicemail transcription callback
Fires when Twilio finishes transcribing a voicemail. Attaches the transcription text to the matching Inbox voicemail item.
Trigger
POST /twilio/voice/transcription
Webhook
Setup
Configured automatically via TwiML transcribeCallback= in the voicemail recorder.
Env vars
PUBLIC_BASE_URL
Twilio — Outbound Calls
3 tasks
Outbound call TwiML (browser dialer)
Fires when an agent initiates a call from the browser (Twilio Voice JS SDK). Returns TwiML that dials the prospect's number using your Twilio Caller ID.
Trigger
POST /twilio/voice/outgoing
Webhook
Setup
Configure in Twilio Console → TwiML Apps → your app → Voice Request URL.
Env vars
TWILIO_ACCOUNT_SID, TWILIO_API_KEY_SID, TWILIO_API_KEY_SECRET, TWILIO_APP_SID, TWILIO_CALLER_ID
Call status callback
Fires when a call's status changes (ringing → answered → completed, etc.). Updates the call record in the database with duration and final status.
Trigger
POST /twilio/calls/status
Webhook
Setup
Set as statusCallback= parameter when initiating calls, or in Twilio Console.
Env vars
None beyond active Twilio config
Dial status callback
Fires on Dial verb completion events (DialCallStatus). Updates the call record with dial-leg status and recording URL if present.
Trigger
POST /twilio/calls/dial-status
Webhook
Setup
Configured automatically via TwiML action= on the Dial verb.
Env vars
None beyond active Twilio config
Data Sync — CLI Commands
2 tasks
RentCast rental listings sync
Pulls active rental listings from the RentCast API and upserts them into the Rental Listings table. Run manually or via a scheduled cron job.
Trigger
python app.py sync-rentcast-rentals
CLI / Cron
Setup
No automatic schedule — must be triggered manually or via cron/task scheduler.
Env vars
RENTCAST_API_KEY
MLS rental listings sync (RETS)
Syncs active MLS rental listings via RETS and enriches matching RentCast records with MLS data. Run manually or via a scheduled cron job.
Trigger
python app.py sync-mls-rentals
CLI / Cron
Setup
No automatic schedule — must be triggered manually or via cron/task scheduler.
Env vars
RETS_URL, RETS_USERNAME, RETS_PASSWORD
Networking Events — On-Demand Sync
1 task
Networking events calendar sync
Scrapes/syncs event calendars for configured networking clubs (iCal, custom scrapers). Runs at most once per day — skips if already synced today.
Trigger
On page load: /networking-clubs/events or /api/networking-events
On Demand
Setup
Automatic — fires when someone visits the Networking Events calendar page. No cron needed.
Env vars
None — uses club calendar URLs stored in the database