Google Sheets

Connect a Google Sheet and Foan treats it as your live customer database. Inbound calls match the caller to a row by phone number; outbound campaigns dial from the rows; the agent has full row context during the call.

What it gets you

  • Inbound recognition — when a customer rings in, the agent already knows their name, last order date, plan tier, anything you've put in the sheet. The greeting personalises automatically.
  • Outbound source — campaigns can dial from the sheet directly. No need to upload a separate CSV.
  • Outcome write-back — call results write back to the sheet (status, summary, captured fields). Your sheet stays in sync with what's happening on the phone.
  • Real-time — changes to the sheet are reflected on the next call. No re-sync.

Setting it up

  1. Connect Google Sheets in /dashboard/integrations. OAuth flow — you grant Foan read+write access to the sheet you pick.
  2. Pick a sheet — Foan lists every spreadsheet you have access to. Pick the one with your contacts.
  3. Map columns — match Foan's expected fields (Phone, Name, Email, Customer ID) to your sheet's columns. Phone is required because that's how we match incoming calls.
  4. Save.

How it's used during a call

Inbound: when a call comes in, Foan looks up the matching row by normalised phone number. The matched row is injected into the agent's prompt as a "Caller context" block:

"The caller is Anna Bowen. last_order_date: 2026-04-21. subscription: weekly bread box. next_delivery: Friday."

The agent then opens with: "Hi Anna — I see you ordered two weeks ago, are you calling about Friday's delivery?"

Outbound: the campaign sources contacts from the sheet directly. Each call has full row context. After the call, the outcome (booked / not interested / opt-out / left voicemail) writes back to a last_call_* column set on the sheet.

What if the columns change

If you rename or delete a column that Foan was mapped to, the integration shows a warning in the dashboard and the affected campaigns pause until you re-map. We don't silently break — you'll know.

Permissions and privacy

We only read the sheet you pick. Other sheets in your Drive are not accessible. Tokens are stored encrypted, refreshed automatically. Disconnect any time — we keep the call history but the integration goes inactive.

Last updated 5 May 2026