Table of Contents
Automate SMS Campaigns
Ever wanted to collect feedback or responses over SMS and have them instantly appear in a Google Sheet? With Twilio Studio Flow and Zapier, you can do this without writing a single line of backend code.
This guide walks you through buying a Twilio number, creating a Studio Flow to handle incoming messages, sending those messages to a Zapier webhook, and finally storing them in a Google Sheet.
Prerequisites
- A Twilio and Zapier account
- A Google account (for Google Sheets)
- Basic knowledge of REST APIs and Webhooks
Step 1: Buy a Number in Twilio
- Go to Twilio Console > Phone Numbers > Buy a Number
- Filter by SMS and select one
- Purchase and save the number
Step 2: Create a Studio Flow
Go to Studio > Flows in the Twilio Console and create a new flow.
Flow Structure
- Trigger: Incoming Message
- ➝ Make HTTP Request
Configure the HTTP Request
- Method:
POST
- Request URL: Paste the Zapier webhook URL (see next step)
- Content Type:
application/x-www-form-urlencoded
- Body Parameters:
From
:{{trigger.message.From}}
Body
:{{trigger.message.Body}}
Don’t forget to Publish your flow—Twilio won’t use your latest edits unless it’s published.
Step 3: Set Up the Zap
- In Zapier, create a new Zap
- Choose Webhooks by Zapier → Catch Hook as the trigger
- Copy the custom webhook URL
- Paste it into the HTTP Request widget in your Studio Flow
- Send a test SMS to your Twilio number so Zapier can catch a sample
Step 4: Connect to Google Sheets
-
Add an Action: Google Sheets → Create Spreadsheet Row
-
Select the target spreadsheet and worksheet
-
Map incoming fields:
From
→ Phone NumberBody
→ Message Text- Optionally: Add a
Timestamp
using Zapier’s built-in meta fields
Step 5: Test It Out
Send a test message to your Twilio number and confirm that:
- Zapier catches the request
- A new row is added to your Google Sheet
Your no-code SMS capture system is live. This workflow is perfect for feedback collection, surveys, or simple user interactions—all via SMS. And it requires zero backend deployment. Need to scale? Add branching logic, databases, or serverless functions later. But this foundation handles a ton with just two tools.
Common Pitfalls
Incorrect Content-Type
If your HTTP widget is set to JSON but you’re sending URL-encoded data (or vice versa), Zapier won’t parse the payload. Make sure both match.
Zapier Test Trigger Didn’t Catch Data
If the webhook didn’t fire, check that:
- Your Twilio number is assigned to the flow
- You sent an SMS after updating the flow
- You published the latest version
Variables Not Resolving
Use exact syntax like {{trigger.message.Body}}
. Typos or incorrect variable names (like {{message.Body}}
) won’t work.