Integrations / Google Sheets
Google Sheets AI voice agents that log every call as a row
The agent takes the call, and a webhook tool sends the caller's name, number and reason to a service of yours, which appends them as a row with the Sheets API.
Call intake agent
Takes the caller's details and logs them to the sheet.
Instructions
Ask for the caller's name and what they are calling about. Before the call ends, log the call with a one-line reason and the outcome, which is answered, callback requested or message taken.
Connected tools
- Log callWebhook
What a Google Sheets AI voice agent can do
Open one to watch a call. The grey lines are the tools the agent calls mid-sentence.
Name, phone number, reason and outcome go into the columns you choose, one row per call in the order the calls came in.
A sales or front desk team that already works from a spreadsheet gets new callers there, with no CRM to set up.
The tool fills the phone column from the caller ID, so the agent never has to ask for the number or read it back.
Tool definitions
Webhook tools go to POST /v1/agents/tools. Transfers are a system tool on the agent. Replace the placeholder values in capitals with your own.
Log call
Sends the call details to your service, which appends a row.
Show the JSON definition
Set it up
No native connector. The tool calls a service of yours, which signs in to Google with a service account or OAuth and calls the Sheets API. Vendor details read in November 2026.
Create a service account
In Google Cloud, enable the Google Sheets API and create a service account. Share the spreadsheet with the service account's email address, as you would with a person.
Run the append endpoint
Your service gets an access token with the
spreadsheetsscope, then callsspreadsheets.values.appendwith the sheet's ID, a range such asCalls!A1, and the row as avaluesarray.Add the tool
Point the tool at your service with a bearer secret. The phone parameter reads
system__caller_id, so the model never sees or fills it.Test with a real call
Call the agent and check that the new row appears under the last one.
Documentation
Before you build
Why not call Google directly
Google access tokens last an hour, and a webhook tool sends the token you stored, so it fails once that expires. Your service gets new ones. API keys only reach public data.
Send RAW and INSERT_ROWS
RAW stores the caller's words as text. USER_ENTERED turns a leading = into a formula and phone numbers into numbers. INSERT_ROWS adds a row; OVERWRITE writes over cells below.
Use cases for teams on Google Sheets
More integrations
Enterprise-grade security
HIPAA compliant

SOC 2 Type 2

GDPR
Google Sheets AI voice agent FAQs
Can an AI voice agent add rows to Google Sheets?
Yes, through a small service of yours. A Cartesia webhook tool sends the caller's name, number and reason to the service, which calls spreadsheets.values.append and adds one row per call. There is no native Google Sheets integration.
Why can't the tool call the Sheets API directly?
Google access tokens last an hour, and a webhook tool sends the token you stored, so the calls start failing once it expires. Your service gets new tokens with a service account. API keys only reach public data, so they cannot write to a private sheet.
Can I skip running a service?
Which valueInputOption should the service send?
RAW, with insertDataOption set to INSERT_ROWS. RAW stores the caller's words as text, while USER_ENTERED turns a leading = into a formula and phone numbers into numbers. INSERT_ROWS adds a new row, and OVERWRITE writes over cells below the table.
How much does a voice agent that logs to Sheets cost?
Agents run at $0.03/min, plus LLM usage and telephony. You also host the small service that appends the row, and the Sheets API calls run under your own Google Cloud project.
Get started today
Talk to an expert.
Connect with a member of our team and learn how Cartesia can help you build world-class voice experiences.
Start building.
Access our models via API and bring a voice agent into production in minutes.