Built a Python app for outbound call campaigns with queueing, rate limits, and SMS summaries
I put together a small Python/Flask example for running outbound call campaigns in a more structured way.
The basic flow is:
\- send a list of phone numbers to \`POST /campaign\`
\- get back a campaign ID
\- queue the calls
\- apply a calls-per-minute rate limit
\- place the calls with Call Control
\- receive signed webhook events as calls progress
\- store call results in SQLite
\- send an SMS summary when the campaign finishes
Code: https://github.com/team-telnyx/telnyx-code-examples/tree/main/ai-call-campaign-orchestrator
What I liked about this pattern is that the campaign has one lifecycle instead of being scattered across a queue service, telephony provider, database job, and notification worker.
This is still a sample, so before using something like this in production I’d add auth, retries, opt-out handling, audit logs, campaign-level limits, and better reporting. But as a starting point for durable outbound communication workflows, it felt like a useful shape.