Blog › Integration guide

Integration guide

How to connect Twilio to Google Sheets

A Twilio Google Sheets integration through Zapier or Apps Script: how each one works, where texts and replies fall out of the sheet, and how AI agents keep the list and the follow up right.

DBDavid Brennan, Founder and CEO, Arkeo AI · October 26, 2026 · 7 min read
Integration guide

Texts and calls from Twilio, kept in your Google Sheet

TwilioGoogle Sheets
The short answer

A Twilio Google Sheets integration runs one of two ways: a Zapier zap, or a short Apps Script inside the sheet that Twilio's own tutorial walks through. A zap can add a row for each new text or finished call, or send a text when a row is added. The script can text each person on a list from a menu in the sheet. Where it stops: new texts reach Zapier on a timer, rows break the zap when someone sorts or deletes them, and the sheet never learns who texted STOP or whose text failed. Someone still reads the replies and fixes the list. AI agents do that work.

What a Twilio Google Sheets integration has to do

Twilio sends and gets your texts and calls. Google Sheets is often where the list lives: customers to remind, staff to text, leads that called in. When the two don't talk, someone copies numbers from the sheet into a text tool, then copies the replies back by hand.

So connected has to mean two things. A new row should turn into the right text, sent once. And what comes back, a reply, a missed call or a failed text, should land on the right row, so the next person who opens the sheet sees the truth.

Ways to connect Twilio and Google Sheets

Twilio's and Zapier's own pages describe two ways. Agents are the third.

A Zapier zap

How it works
Zapier has a Twilio app with triggers for New SMS, New Call, New Recording and New WhatsApp Message, and actions to Send SMS, Call Phone and Send WhatsApp Message. On the Google Sheets side, a zap can start from a new or updated row, or add a row.
Good for
Logging each text or call to a sheet, or sending one text when a row is added. No code.
Where it breaks
Zapier's page says New SMS is a polling trigger that checks every 15 minutes on the Free plan. Zapier's help says the Updated Spreadsheet Row trigger only fires on a value it has not seen in that row before. A Zapier Community thread on a sheet zap that stopped firing names a blank row, a sort or a deleted row as things that break it.

Apps Script in the sheet

How it works
Twilio's tutorial has you write a short script in the sheet's script editor. It adds a menu to the sheet, sends a text to each row through Twilio, and writes a status in the last column.
Good for
Someone comfortable with a little code who wants to text a list, like payment reminders, from the sheet itself.
Where it breaks
In the tutorial you enter your Twilio keys through a menu, and you have to enter them again each time you reload the sheet. The script only sends; replies don't come back to the sheet. Google limits each script run to 6 minutes, so a long list may stop partway.

Arkeo agents

How it works
Agents send the texts from your Twilio number, read the replies and missed calls, and write the result on the right row in your sheet. They mark who opted out or has a bad number, and send the replies that need a person to your team.
Good for
Teams that text customers or staff from a list each day and lose time copying replies back.
Where it breaks
Anything your rules keep for a person, like a reply from an upset customer, goes to the owner in one message.

How to connect Twilio to Google Sheets with Zapier

These follow Zapier's and Twilio's own guides. Open them for the screens.

  1. 1

    Get your Twilio number ready

    You need a Twilio phone number. Zapier's guide says a trial account needs at least one verified number, and US texting on a trial account needs Toll Free verification.

    Zapier's Twilio guide →

  2. 2

    Connect Twilio in Zapier

    Find your Account SID and Auth Token in your Twilio account settings. In Zapier, go to the Apps page, click + Add connection, search for Twilio and enter the two values.

    Zapier's Twilio guide →

  3. 3

    Set up your sheet

    Put one header row at the top and keep each phone number in one column, in plain text with the country code, like +15551234567. Twilio's tutorial uses a last column for the message status.

    Twilio's Google Sheets tutorial →

  4. 4

    Build the zap

    To log texts, start with Twilio New SMS and add a Create Spreadsheet Row step. To send texts, start with Google Sheets New Spreadsheet Row and add a Twilio Send SMS step. Map the phone number and message fields.

    Zapier's Twilio and Google Sheets page →

  5. 5

    Test it, then leave the sheet's shape alone

    Add a test row with your own number and check the text arrives. While the zap is on, add rows only at the bottom and don't sort, rename or delete columns.

    Zapier's sheet trigger help →

Where the Twilio Google Sheets integration stops

A zap or a script moves one text at a time in one direction. The sheet is still a list a person has to keep right.

Replies show up late. Zapier's Twilio page says the New SMS trigger polls, every 15 minutes on the Free plan. A customer who answers a reminder can wait that long before their reply shows up in the sheet, and the zap only adds the reply as a new row. Someone still matches it to the person who sent it.

Opt-outs don't reach the list. Twilio's help article says a STOP reply puts that number on a block list, and later texts to it fail with an error. The sheet doesn't know. The number stays on the list, the next send fails, and nobody notices unless they check Twilio's logs.

The sheet breaks the zap. In a Zapier Community thread about a sheet zap that stopped firing, the answer lists a blank row, a sort, a deleted row or a renamed column as changes that cause errors. Zapier's help adds that the Updated Spreadsheet Row trigger won't fire on a value it has already seen in that row.

The script only sends. Twilio's tutorial writes a status after each send, but replies never come back to the sheet, and Google stops a script run after 6 minutes.

So someone still reads the replies, finds the row, marks who said STOP and fixes the numbers that bounced.

See agents keep your Twilio texts and your Google Sheet in stepBring the sheet you text from. In 15 minutes you'll know which of this work agents would do, and the hours it would save.

The agents that do it

Each agent does one job from start to finish, in your own Twilio and Google Sheets. Your team talks to them in Slack or Teams.

Questions

Is my customers' information safe?

Yes. Agents work in your own Twilio account and Google Sheets and see only what their job needs. Customer details never go into public AI. Agents connect to AI through business-grade connections audited under SOC 2.

Can I send texts from Google Sheets with Twilio?

Yes. Twilio's tutorial shows a short Apps Script that adds a menu to your sheet and texts each row. A Zapier zap can also send a text through Twilio when a new row is added.

Can Twilio save incoming texts to Google Sheets?

Yes, with a zap. Start with Twilio's New SMS trigger in Zapier and add a Create Spreadsheet Row step. Zapier's page says that trigger checks for new texts every 15 minutes on the Free plan.

Why did my Google Sheets zap stop working?

A Zapier Community thread lists a blank row, a sort, deleted rows or renamed columns as changes that break it. Make those changes with the zap turned off. If it still won't fire, Zapier's team suggests turning it off and on again.

What does it cost?

You get the price on the call, along with the hours it saves your team.

Sources

Where to go next

Book a 15-minute call

Keep each text and reply on the right row of your sheet

Bring the work your team does by hand. In 15 minutes you'll know which agents fit, the hours they free up and what it costs.

Step 1 of 2 · Your details