Spun can write WhatsApp activity straight into a Google Sheet you own: new leads, orders, calls, archived chats and more, each as a new row, as it happens. It connects with your own Google account (not a shared bot), and it needs nothing outside Spun to work: no Zapier account, no automation platform, no code.
This recipe walks through the real setup: connecting Google, choosing what triggers a row, and what actually lands in the sheet. For the full feature tour and FAQ, see the Google Sheets integration page.
1. Connect your Google account
- 1
Open the Sheets panel
In your Spun inbox: Settings, then Google Sheets. This is manager/owner-only, since it grants access to a Google account.
- 2
Sign in with Google
You are asked for permission over the spreadsheets Spun creates or that you explicitly pick, not your whole Drive. Spun does not request access to read your other files.
- 3
Pick a destination
Create a new spreadsheet in your Drive with one click, or connect an existing sheet (including a folder in a Shared Drive) via the picker.
The connection is per-organization: whoever connects becomes the "sheet owner" shown in the settings panel, and every trigger writes to sheets that account can reach.
2. Choose what creates a row
A "trigger" pairs one WhatsApp event with one sheet tab. You can start from a ready-made template or build a custom trigger from any supported event.
- Quick-start templates: Leads Log (fires on a lead-qualifying label), Order Tracker (chat-flow completed), Call Log (call ended), Support Log (chat archived), Daily Summary (a scheduled daily row of message/contact/response-time stats). One click creates the sheet, tab and formatting.
- Custom triggers: any of the 11 supported events, incoming/outgoing message, contact created/updated/deleted, label assigned, chat flow completed, queued message sent, lead qualified, chat archived, call completed.
3. What actually lands in the sheet
Every event ships with sensible default columns you can use as-is, or open the mapping editor to add, remove or reorder them, exclude phone numbers or message text for privacy, and (on qualifying events) add an AI-generated one-line chat summary column.
Here is the real default layout for the most common trigger, a new incoming WhatsApp message:
{
"Timestamp": "2026-08-18T09:14:02Z",
"From": "+972501234567",
"From Name": "Sarah Cohen",
"Chat": "+972501234567",
"Chat Name": "Sarah Cohen",
"Type": "text",
"Message": "Hi, do you still have this in blue?",
"Open Chat": "<link back to this chat in your Spun inbox>"
}Every column is a fixed value, never a formula: WhatsApp text is written to Sheets as literal text, on purpose, so a message can never inject a working spreadsheet formula.
4. Send a test row before relying on it
- 1
Create the trigger
Save your mapping, or apply a quick-start template.
- 2
Send a queued test row
The settings panel has a "test row" action: it goes through the real delivery pipeline, not a preview, and the panel polls until the row actually appears.
- 3
Check the sheet
Confirm the row landed with the columns you expect, then send a real WhatsApp message to see it capture live.
Good to know before you rely on it
- It is a best-effort log, not a guaranteed mirror. Two honest gaps: messages backfilled in bulk or arriving in a flood do not fire the row-creating event, and capture only becomes durable once the event is queued, so a crash at the exact wrong instant can drop a row. For a complete historical record, use the separate one-off Export History feature instead of trusting the live trigger for the past.
- Renaming the sheet tab is safe; Spun tracks it by its internal ID, not its title, and heals the mapping automatically.
- Google enforces its own request quotas, so a very high-volume account can occasionally see a trigger pause briefly under load. The settings panel shows the health of every trigger and why, if one pauses.