PyAI x Google Sheets
Every completed call becomes a row. No CRM required.
Share your sheet with a Google service account (a robot email address) and PyAI appends one row per completed call: event, timestamp, call id, status, the TL;DR, summary, next steps, and caller number (or the AMD verdict columns). Filters, pivots, and charts work on call data like any other rows, because they are.
- Status
- Live
- Direction
- PyAI to Google Sheets
- Setup
- Console, no code
- Cost
- Included
What lands in your sheet
One appended row per completed call, inserted into the tab you name. Recap events carry the summary fields; AMD events carry the verdict fields, so one tab can collect both cleanly.
The row after a rescheduling call
recap.call.completed | 2026-08-01T09:13:20Z | call_8fK2mQ9xR4
completed | support_v1
Customer asked to reschedule Friday's installation
The customer called to move their appointment...
Confirm the new slot by SMS
15551234567Setup, end to end
- 1
In Google Cloud, create a service account and download its JSON key.
- 2
Share your spreadsheet with the service account's email as an Editor.
- 3
In the PyAI console, open Integrations and choose Google Sheets, then paste the JSON key, the spreadsheet id, and the tab name.
- 4
Press Test; a sample row lands in the tab. From the next completed call, rows append automatically.
Delivery you can prove
Verified, and never twice
Every delivery carries proof it is really from us (the X-PyAI-Signature header, an HMAC your tools can verify) and a unique receipt id (the Idempotency-Key), so a retry can never post the same call twice.
Retried, then shown to you
If your endpoint hiccups, we retry with backoff (eight attempts over about twenty minutes). Still failing? The exact error waits on the integration card in your console, not in a log you never read.
Your credentials stay yours
Tokens, secrets, and webhook URLs are encrypted at rest and masked everywhere. They never appear in the messages we send.
Included, no extra fees
Integrations come with your Recap or AMD usage. There is no per-connection or per-delivery charge.
FAQ
How is the spreadsheet secured?
Access runs through your own service account: PyAI signs hourly access tokens with its key and calls the Sheets API directly. The JSON key is encrypted at rest, the private key never appears on any read, and you can revoke access any time by unsharing the sheet.
Which columns land per row?
Recap rows: event, occurred_at, call_id, status, pack_id, tldr, summary, next_steps, customer_phone. AMD rows: event, occurred_at, call_id, status, answered_by, answered_by_twilio, confidence, decision_ms, reason, session_label.
What happens when the tab is renamed or the share is removed?
The append fails visibly: the error sits on the integration card with retries already attempted (eight tries over about twenty minutes). Fix the tab or the share and the next delivery succeeds.
What does the Google Sheets integration cost?
It is included with your Recap or AMD usage. There is no per-row or per-connection fee from PyAI.
Connect Google Sheets to PyAI today.
An instant sandbox key lets you test every delivery without billing. Create an account when you want saved projects, and fund a live key for production traffic.
Agents is live in beta. Sandbox keys have daily limits and never touch billing.