Intern
What you actually do
Follow a new name. If it starts in Sheets, that is the bug. Freeze and import. You do not 'clean the sheet' as a lifestyle.
Library / Wire / A Google Sheet is a report, not a writer
Sheets feel honest. They are also how pipeline, recare, and launch lists fork into five truths. Wiring this is not connecting Sheet → GHL as a lifestyle. It is demoting the sheet to a view, moving write-in to GHL objects, and killing the CSV loop. Use a sheet for analysis if you must. Do not let it accept new leads.
Sheets feel honest. They are also how pipeline, recare, and launch lists fork into five truths. Wiring this is not connecting Sheet → GHL as a lifestyle. It is demoting the sheet to a view, moving write-in to GHL objects, and killing the CSV loop. Use a sheet for analysis if you must. Do not let it accept new leads.
Ask: where does a new person enter? If the answer is a tab, you do not have a CRM. You have a spreadsheet with a GHL sticker.
Two-way sync Sheet ↔ GHL is how you get ping-ponged fields and duplicates. One-way export is allowed. Two-way is a third database.
Imports: one-time, mapped, then lock. Recurring imports are how you resurrect dead emails and duplicate live ones.
Recare, launch lists, and 'board' tabs are the usual hostages. Each has a GHL object: stage, smart list, campaign segment.
Analysts can dump to Sheets. Operators cannot work the dump. If sales lives in the tab, permissions failed.
Intern
Follow a new name. If it starts in Sheets, that is the bug. Freeze and import. You do not 'clean the sheet' as a lifestyle.
Operator
Sheets are reports. GHL is write-in. Protect ingest. Pasted columns are incidents.
CEO
A company that types leads into Rows cannot report a pipeline. First-write in GHL is the number. Until then, dashboards are copies of a tab.
Google Sheet tabs, GHL contact/opportunity, CSV import history, form writers, owner of the sheet, 'source of truth' sentence, weekly export (optional, one way).
New lead → GHL form/calendar/ads ingest; sheet does not get a new row as the first write
Sheet, if any, is a one-way export or a Looker/GHL report — not an ingest
Historical sheet rows → one-time import with a spec, then freeze the tab
Automations that watch the sheet for new rows are temporary migration, dated to end
Leads, recare, launches, call lists. Who types first. What GHL object should replace it.
Why: You cannot kill a ghost tab you have not listed.
Done when: Inventory. Each tab has a kill or demote plan.
The highest-volume tab: new rows must come from GHL (form, call, ads). People stop typing new names into Sheets.
Why: If ingest stays, nothing else matters.
Done when: A new test lead does not require a sheet row to exist first. GHL is first.
Map columns to spec fields. Dedupe on email/phone. Import. Freeze the tab (view-only) or archive.
Why: Living imports recreate the sheet as CRM.
Done when: Import date on the spec. Tab is not accepting new operator input.
Smart lists or pipelines with exit rules. Campaigns send from GHL, not from a sheet of emails pasted into a campaign.
Why: Pasting emails is how you skip suppressions and consent.
Done when: A launch test send uses a GHL segment, not a copied column.
If a Zap fills a sheet, make it export-only. If a Zap creates GHL from sheet rows, date it as migration and delete.
Why: Sheet as a writer will always win because it feels faster in the moment.
Done when: No live Zap creates contacts from new sheet rows, except a dated migration with an end date this month.
Inventory tabs. Watch where a new lead is typed. Move that ingest. Run one mapped import if history is needed. Freeze the tab. Confirm this week’s campaign is not a pasted column. Kill sheet-to-GHL Zaps or date them.
A 'data person' to maintain the sheet, or a two-way sync product, until ingest is GHL. Paying to maintain a second CRM is paying for folklore.
GHL login exists. Real pipeline is a sheet. VA copies both ways. Launch paste. Recare tab. Duplicates. 'GHL is messy' because the sheet is the truth. That is a souvenir CRM.
New lead never typed in Sheets first. Import frozen. Send from GHL segment. No two-way Zap. Operators open GHL to work a contact.
Think in a report. Write in a CRM. If thinking requires write access, the sheet will become the company.
Then export. Do not type. Reporting pain is not a reason to ingest in Rows.
Give them a GHL form or a user with tight permissions. A contractor tab is still a second CRM.
This week
This week: inventory, move ingest, freeze history, GHL segments for the next send, kill two-way. One tab at a time, starting with new leads.
A full calendar and an empty pipeline is two databases.
Read ↗A high score in a CSV is not a qualified opportunity.
Read ↗If the thank-you does not change the contact, the page was a brochure.
Read ↗If paid lives in Stripe and the opportunity is still open, reporting is theatre.
Read ↗Working notes
The minimum CRM, pipeline, and nurture spec before you add more pages. Request the file. It arrives by email — not a public dump, not a drip of slogans.
Email and WhatsApp stay open. A call is for installing the system — not for a tour of tools.