DEV Community

Chandrani Mukherjee
Chandrani Mukherjee

Posted on

Build AI-Powered SMS & Voice Apps with Twilio and Python

Artificial intelligence is transforming how applications interact with users—but without seamless communication channels, even the smartest models fall short. Twilio bridges that gap by giving your AI apps the ability to send messages, respond to users, handle voice, and automate conversations. In this article, we’ll build a simple—but powerful—AI-driven SMS assistant using Twilio + Python.

Why Twilio + AI + Python?

Python is the go-to language for AI because of its rich ecosystem (OpenAI, LangChain, HuggingFace, FastAPI, etc.). Twilio adds real-time reachability:

  • Send AI-generated responses via SMS
  • Build voice apps powered by LLM reasoning
  • Connect AI chatbots to WhatsApp
  • Trigger LLM workflows from inbound user messages
  • Integrate with retrieval (RAG), analytics, workflows, or IoT events

Prerequisites

  • Python 3.9+
  • Twilio account + phone number enabled for SMS
  • An AI model/API (OpenAI, Groq, Anthropic)
  • pip install twilio flask
  • pip install openai

Build an AI SMS Assistant (Flask + Twilio + OpenAI)

1. Environment

export TWILIO_AUTH_TOKEN="your_token"
export TWILIO_SID="your_sid"
export OPENAI_API_KEY="your_key"
Enter fullscreen mode Exit fullscreen mode

2. app.py

from flask import Flask, request
from twilio.twiml.messaging_response import MessagingResponse
from openai import OpenAI
import os

app = Flask(__name__)
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

@app.route("/sms", methods=['POST'])
def sms_reply():
    user_text = request.form['Body']

    completion = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[
            {"role": "system", "content": "You are a helpful AI assistant."},
            {"role": "user", "content": user_text},
        ]
    )

    ai_reply = completion.choices[0].message["content"]

    resp = MessagingResponse()
    resp.message(ai_reply)
    return str(resp)

if __name__ == "__main__":
    app.run(debug=True)
Enter fullscreen mode Exit fullscreen mode

3. Configure Twilio Webhook

Twilio Console → Phone Numbers → Messaging → Webhook URL:

https://your-server.ngrok.io/sms
Enter fullscreen mode Exit fullscreen mode

AI Voice Bonus

from twilio.twiml.voice_response import VoiceResponse

@app.route("/voice", methods=['POST'])
def voice():
    resp = VoiceResponse()
    resp.say("Hello! Ask me anything.", voice='alice')
    resp.record(max_length=10, action="/process_voice")
    return str(resp)
Enter fullscreen mode Exit fullscreen mode

What You Can Build

  • AI customer support
  • WhatsApp travel planner
  • Voice LLM receptionist
  • Real-time IoT → SMS AI alerts
  • RAG chatbot via SMS
  • Study tutor bot

Deployment

  • Docker + Gunicorn
  • AWS Lambda
  • GCP Cloud Run
  • Fly.io
  • Railway

Conclusion

Twilio transforms AI models from passive generators into interactive, real-time communication agents. With a few lines of Python, you can build SMS/voice/WhatsApp AI assistants and deploy them anywhere.

Top comments (0)