Examples of Twilio Webhooks for SMS

Discover practical examples of Twilio webhooks for SMS and learn how to use them effectively.
By Jamie

Introduction to Twilio Webhooks for SMS

Twilio webhooks are a powerful feature that allows developers to receive real-time notifications when specific events occur within the Twilio ecosystem. This is particularly useful for SMS communications, where immediate responses and actions are often required. By leveraging webhooks, developers can automate workflows, enhance user interactions, and improve service delivery. Below are three diverse examples of how to use Twilio webhooks for SMS effectively.

Example 1: Automated SMS Response for Customer Inquiries

When a customer sends a text message to a business, it’s essential to acknowledge their inquiry promptly. This example demonstrates how to set up a webhook that triggers an automatic response to customer messages.

In this scenario, a restaurant uses Twilio to manage customer inquiries through SMS. When a potential customer texts the restaurant, a webhook is triggered to send a predefined response.

To implement this:

  1. Configure your Twilio number to trigger a webhook on incoming SMS messages.
  2. Set up a server endpoint to handle the incoming request and respond accordingly.

Here’s the code for the server endpoint:

from flask import Flask, request
from twilio.twiml.messaging_response import MessagingResponse

app = Flask(__name__)

@app.route('/sms', methods=['POST'])
def sms_reply():
    incoming_msg = request.form.get('Body')
    response = MessagingResponse()
    response.message('Thank you for your inquiry! We will get back to you shortly.')
    return str(response)

if __name__ == '__main__':
    app.run(debug=True)

In this example, when a customer sends a message, they receive an immediate acknowledgment, enhancing customer experience and engagement.

Note: This can be further enhanced by including different responses based on the content of the incoming message.

Example 2: SMS Notifications for Order Status Updates

Many e-commerce businesses use Twilio to keep customers informed about their orders. This example illustrates how to set up a webhook that sends an SMS notification when an order status changes.

In this case, an online store sends SMS updates to customers when their order is shipped, delivered, or if there’s an issue with the order.

  1. When the order status changes in your backend system, send an HTTP POST request to the Twilio API to send an SMS.
  2. Configure your server to handle these status updates and trigger the webhook accordingly.

Here’s how to implement the notification feature:

import requests
from twilio.rest import Client

# Your Twilio credentials
account_sid = 'your_account_sid'
auth_token = 'your_auth_token'
client = Client(account_sid, auth_token)

def notify_customer(phone_number, order_status):
    message = f'Your order status has been updated to: {order_status}'
    client.messages.create(
        to=phone_number,
        from_='your_twilio_number',
        body=message)

# Example usage
notify_customer('+1234567890', 'Shipped')

In this example, customers receive real-time updates about their order status, improving transparency and customer satisfaction.

Note: You can customize the message further based on different order statuses and customer preferences.

Example 3: Event Reminders via SMS

Event organizers often need to remind attendees about upcoming events. This example demonstrates how to use Twilio webhooks to send SMS reminders to participants.

For instance, a conference organizer can send out reminders to registered attendees a day before the event starts.

  1. Set up a scheduled job in your server that triggers the webhook to send reminders.
  2. Use Twilio’s API to send SMS messages to all registered attendees.

Here’s a sample implementation:

import schedule
import time
from twilio.rest import Client

client = Client(account_sid, auth_token)

def send_reminders():
    attendees = ['+1234567890', '+0987654321']  # List of attendees
    for phone_number in attendees:
        message = 'Reminder: The conference is tomorrow at 9 AM. Don’t forget to join us!'
        client.messages.create(
            to=phone_number,
            from_='your_twilio_number',
            body=message)

# Schedule the reminder for one day before the event
schedule.every().day.at('10:00').do(send_reminders)

while True:
    schedule.run_pending()
    time.sleep(1)

This example automates the process of sending reminders, ensuring that participants are well-informed and less likely to forget the event.

Note: You can customize the timing of the reminders based on your event schedule and attendee preferences.


These practical examples of Twilio webhooks for SMS illustrate how businesses can enhance their services through automation and real-time communication. By implementing these strategies, companies can significantly improve customer engagement and operational efficiency.