Route Voicemails with Python and Telnyx AI Telnyx released a Python Flask example that uses AI to classify voicemails and route them to appropriate workflows such as Slack alerts, email, or ticket queues. The app transcribes audio voicemails, then uses Telnyx AI Inference to categorize messages into types like urgent, billing, or spam, triggering corresponding actions. I built a small Flask example that turns voicemail into a routing workflow. Code: https://github.com/team-telnyx/telnyx-code-examples/tree/main/voicemail-smart-router-python https://github.com/team-telnyx/telnyx-code-examples/tree/main/voicemail-smart-router-python The app accepts either: For audio, it transcribes the voicemail first. Then it uses Telnyx AI Inference to classify the message and decide where it should go. The app classifies voicemails into: urgent billing support sales spam routine Each category maps to a route: php urgent - Slack alert billing - email support - ticket queue sales - CRM lead spam - blocklist + archive routine - daily digest git clone https://github.com/team-telnyx/telnyx-code-examples.git cd telnyx-code-examples/voicemail-smart-router-python cp .env.example .env pip install -r requirements.txt python app.py Configure .env : TELNYX API KEY=your telnyx api key AI MODEL=zai-org/GLM-5.2 FALLBACK MODEL=meta-llama/Llama-3.3-70B-Instruct HOST=127.0.0.1 Optional Slack webhook for urgent messages: SLACK WEBHOOK=https://hooks.slack.com/... curl -X POST http://localhost:5000/voicemails/transcript \ -H "Content-Type: application/json" \ -d '{ "transcript": "This is an emergency. Our production system is down and we need help immediately.", "caller number": "+17177247292" }' Example response: { "category": "urgent", "confidence": 1.0, "priority": "high", "reason": "The caller reports a production system outage requiring immediate attention.", "suggested action": "Escalate immediately to the on-call engineering team.", "route": "slack", "routed to": " oncall-alerts", "routing status": "delivered" } curl -X POST http://localhost:5000/voicemails/process \ -F "file=@voicemail.wav" \ -F "caller number=+17177247292" For audio, the app calls: POST /v2/ai/audio/transcriptions using: distil-whisper/distil-large-v2 Then it calls: POST /v2/ai/chat/completions to classify the transcript. POST /voicemails/transcript POST /voicemails/process GET /voicemails GET /voicemails/