Module 3 — People, Clients and Deals · Lesson 3.5
Google Sheet Sync for Deals and Accounts
Importing from a sheet, the saved mapping, and the outbound mirror that never touches your source tab
~12 min
What you'll learn
- Import deals or accounts from a Google Sheet and save the column mapping
- Re-sync without re-mapping
- Turn on the outbound mirror and understand exactly which tab it writes
- Choose sensibly between sheet-as-source and Kavanah-as-source
Most teams adopting a CRM already have a spreadsheet, and most of them are not ready to abandon it on day one. Kavanah's answer is to sync rather than demand a migration: pull the sheet in, and optionally write Kavanah's view back to a tab of its own so the spreadsheet people still have their spreadsheet. Done deliberately this is a genuinely good transition path. Done carelessly it is a way to overwrite a pipeline, which is why the guard exists.
Setting up the import
Connect Google Sheets first, under Settings → Integrations. The sync reads the sheet using that account's token, so this is not optional and the account needs access to the spreadsheet.
Then open Clients → Deal Room and click Import from sheet. Paste the spreadsheet URL, pick the tab, and map each column to a Kavanah field.
The part people miss: running the import also SAVES the link and the mapping. It is not a one-off paste. From then on, Sheet sync → Sync now re-pulls that tab using the saved mapping, with no re-mapping step. That is the whole point of doing the mapping carefully once.
The Accounts tab on Clients works the same way for client records.
The outbound mirror
Optionally, you can enable 'Mirror Kavanah state back to the sheet'. Kavanah then writes the pipeline out on each sync and hourly in the background.
It writes to a SEPARATE tab — by default one called Kavanah Sync. Your original tab is never written to.
This is worth stating plainly because it is the property the whole feature depends on. The mirror is a destructive overwrite of whatever tab it targets: it rewrites the contents rather than merging. Pointed at your source tab, one sync would destroy the real pipeline.
So Kavanah refuses to let the mirror tab be the same as the source tab. There is one edge worth knowing about: if your source tab happens to already be called Kavanah Sync, the default mirror name collides with it — rename one of them before enabling the mirror.
Which direction is your source of truth
Decide this explicitly, because a team that has not decided will end up editing both.
Sheet as source: people keep working in the spreadsheet, Kavanah imports on a cadence, and you use Kavanah for the reporting, the follow-up cadences and the agent. Turn the mirror off. This is the right shape for the first month of a transition.
Kavanah as source: people work in the Deal Room, and the mirror writes a read-only view back for the spreadsheet holdouts and for whatever downstream sheet formulas depend on it. Turn the mirror on. This is the right shape once the team has moved.
What does not work is both. Edits made in the sheet are overwritten by the next import; edits made in Kavanah are not visible to sheet users until the mirror runs. Pick one, tell everyone which, and revisit in a month.
Operational notes
The sync runs hourly in the background as well as on demand, so a mirror is never more than an hour stale.
Because the sync reads with the connecting account's Google token, that connection breaking breaks the sync. Module 9 covers connection health properly; the relevant habit here is that a sync which has silently stopped looks exactly like a pipeline where nothing changed.
And because the importer re-runs the link setup on every sync, the mirror settings have to be preserved across those runs rather than reset. They are — but if you ever find the mirror has quietly turned itself off, that is the mechanism to suspect and it is worth reporting rather than just re-enabling.
Wire up a sheet
- 1
Settings → Integrations. The sync uses this account's token, so it must be an account with access to the spreadsheet.
- 2
Import from sheet and map the columns carefully
Clients → Deal Room → Import from sheet. The mapping is saved, so this is the one time you do it.
- 3
Decide your direction and set the mirror accordingly
Sheet as source: mirror off. Kavanah as source: mirror on, writing to its own tab. Not both.
- 4
Check the mirror tab name does not collide
If your source tab is already called Kavanah Sync, rename one before enabling the mirror.
What to watch
- Last successful sync
- When the sheet link last pulled or mirrored without error.
- Healthy signal: Within the hour. A stalled sync looks identical to a quiet pipeline, which is why you check the timestamp rather than the data.
- Edit location split
- Whether the team is editing in the sheet, in Kavanah, or unhelpfully in both.
- Healthy signal: One place. Both means somebody's edits are being silently discarded on every sync.
Key takeaways
- ·Running the import saves the link and the column mapping — later syncs need no re-mapping.
- ·The mirror writes a SEPARATE tab and never your source tab; it is a destructive overwrite of whatever it targets.
- ·Kavanah refuses a mirror tab equal to the source tab; watch for the default-name collision.
- ·Decide which side is the source of truth and tell the team — editing both silently discards work.
- ·The sync depends on the connecting Google account; a broken connection looks like a quiet pipeline.
Module 4 turns to everything that arrives: chat, email, calendar, intake forms, and the notifications that tie them together.