Skip to content
All integrations
Small teams running on spreadsheetsStack playbook

Ops without a CRM

No CRM? Every completed call becomes a row.

Not every team runs a CRM, and forcing one for three people is how spreadsheets die. This stack keeps the sheet as the system of record: PyAI completes a call and appends a row directly to your tab (service-account auth, no Zapier hop) with the TL;DR, summary, next steps, and caller number. Filters and pivots work on it like any other sheet, because it is one.

One call, end to end

The loop

  1. 1

    A call completes and Recap finishes its summary.

  2. 2

    PyAI signs an access token with your service-account key and appends the row to your tab.

  3. 3

    The row lands with the call id, timestamp, TL;DR, summary, next steps, and customer phone.

  4. 4

    Your sheet filters, pivots, and charts work on call data like any other rows.

  5. 5

    AMD subscriptions append verdict rows the same way (answered by, confidence) for outbound sheets.

What it looks like running

The row after a rescheduling call

| occurred_at         | tldr                                        | next_steps              | customer_phone  |
| 2026-08-01 09:13:20 | Customer asked to reschedule Friday's...    | Confirm by SMS          | +1 (555) 123-45 |

What each tool does here

PyAI

Runs the calls and the recaps

Google Sheets

Rows appended natively via the Sheets integration

Integration details

Setup order

  1. 1

    In Google Cloud, create a service account, download its JSON key, and share your sheet with the account's email as an Editor.

  2. 2

    In the PyAI console, connect Google Sheets with the JSON key, the spreadsheet id, and your tab name, then press Test.

  3. 3

    Watch the sample row land; real rows append from the next completed call.

  4. 4

    Optional: for multi-step flows (filters, branching, several tools at once), the Zapier integration remains available alongside.

FAQ

Which fields become columns?

Recap rows: event, occurred_at, call_id, status, pack_id, TL;DR, summary, next steps, customer phone. AMD rows add the verdict fields: answered_by, answered_by_twilio, confidence, decision time, reason, session label.

When would I use Zapier instead?

When one call needs several things at once: filters, branching, a sheet row plus a Slack post plus a CRM note. The Sheets integration is the direct single-tab path; Zapier is the multi-tool fan-out.

Is Google Sheets a limit I will hit?

If the sheet outgrows you, the same completed-call events feed HubSpot, Salesforce, Pipedrive, Zoho, Zendesk, Apollo, or Clay with one more connection. Nothing about the PyAI side changes.

What does this stack cost on the PyAI side?

The Sheets connection and deliveries are included; you pay for the calling and Recap or AMD usage you run. Google bills you as they do today.

Run the ops without a crm stack on PyAI.

An instant sandbox key lets you test every leg 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.