# Can Google Sheets be your CRM?

> When a Google Sheet works as your CRM, where it breaks once more people and automations write to it, what to move to, and what I'd pick per situation.

Yes, while one person works every lead and types every row. It starts to break when a second person or an automation writes to it, because a sheet takes whatever row it's given: a duplicate, a blank owner, a lead nobody followed up. At that point the record moves into a CRM, and the sheet becomes a copy.

A lot of small businesses start their lead list in a sheet, and it's a sensible place to start. It costs nothing, everyone already knows how to use it, and one person can see every lead on one screen. The trouble starts when the sheet stops being one person's list and becomes the place where three people and two tools all write.

## The handoff

In a sheet, every step from a new lead to a follow-up is done by a person or by a tool appending rows. These are the seven places it can slip.

| Step | What does it | Where it breaks |
| --- | --- | --- |
| Lead arrives | Your site's form, an email or a call | Each source lands somewhere different, and a lead only exists in the sheet once someone or something puts it there. |
| Row added | A person typing, or a form or automation appending | Rows added at the bottom can sit unseen while the team works at the top, and an automation refused by Google's per-minute limits loses the row unless it tries again. |
| Duplicate checked | Whoever remembers to search first | Unless someone searches before adding, the same person under a second email, or typed in twice, becomes two rows with two sets of notes. |
| Owner set | A name typed in a column | The owner column is a habit. A blank cell looks the same as a lead nobody wanted, so everyone assumes someone else has it. |
| Follow-up | A person's memory or calendar | Sheets can email you when someone else edits the sheet. A lead nobody touched hasn't changed, so it never shows up in those emails. |
| Status updated | Whoever touched the lead last | Two people working the same row type over each other's notes. A cell's edit history can leave out rows that were added or deleted, and changes made by formulas. |
| Reported on | Someone filtering the sheet | The numbers are as good as the last person who kept their rows up to date. |

## Where it breaks

The first break is the second person. Two people work from the same rows, and the second note replaces the first. Version history can show who changed what, but only people who can edit the file can open it, and restoring an earlier version clears the cell history from before the restore.

The second is ownership. In a CRM, the owner is a field the tool knows about, so a lead without one can be found and handed to someone. In a sheet, it's a name typed in a column, and the leads with an empty cell are the ones nobody follows up.

The third is the automations. A form or a booking tool appends rows while the team edits the same sheet by hand, and a lead added at the bottom can wait days for someone to scroll down. Google Sheets has per-minute limits on how fast another tool can write to it, and a write over the limit is refused, so an automation that doesn't try again loses that lead before it reaches the sheet.

You can protect the owner and status columns so only chosen people can edit them, or show a warning before an edit. That controls who edits a column. It doesn't make anyone fill it in, and Google's own help says protection shouldn't be used as a security measure.

## The source-of-truth and dedupe rule

- One place is the record. Once more than one person works the leads, that's a CRM, and every change to a lead is made there first.
- The sheet becomes a copy the CRM writes to, one way. Nobody types into the copy, because the next sync writes over it.
- The key for a person is the email, lowercased and trimmed. A lead without one waits for a person before it becomes a contact.
- Every lead has an owner before anyone works it. A lead that arrives with none goes to one named person.
- Forms and automations write to the CRM. The sheet only ever receives a copy.

HubSpot's free CRM is where I'd look first for a small team. It covers up to two users and 1,000 contacts, and it matches contacts on the email by itself, which takes care of the key. Two things that back up those rules aren't in the free tier, though: required fields are listed from Starter, and duplicate management from Professional. So on the free CRM the owner rule is still a habit, and I'd add a small check that flags any lead without one.

## What stays human

Cleaning up the sheet before the record moves stays with a person. Deciding that two rows are the same lead, and which notes to keep, takes someone who knows the leads.

So does picking the owner when a lead arrives with none, and deciding when a lead is dead. A system can make sure each of those lands in front of a named person. It can't make the call for them.

## What I'd pick, per situation

| If you | I'd pick |
| --- | --- |
| Work every lead yourself and get a handful a week | Stay on the sheet. Add an owner column anyway, keep one row per person, and search before you add a row. |
| Have a second person working leads from the same sheet | Move the record into a CRM, and keep the sheet as a copy for anyone who likes that view. |
| Have forms or automations adding rows to the sheet | Point them at the CRM and let the CRM copy rows out to the sheet, so every lead lands where the owner rule and the email key apply. |
| Have two people working leads and want to spend nothing | HubSpot's free CRM, plus a small check for leads with no owner, since required fields aren't in the free tier. |
| Build reports or formulas on the sheet | Keep the sheet as the copy. The CRM writes to it one way, and your formulas and charts read from the copy. |
| Want a sheet or a base to stay the record, with the CRM fed from it | That's the reverse setup, and it has its own page on keeping a base as the record and syncing one way. |

*Diagram: Once the CRM is the record, every change is made there first, and the sheet is a copy it writes to one way.*

## Questions

**Is Google Sheets good enough as a CRM for a small business?**

For one person working their own leads, yes. It stops being enough when a second person or an automation writes to it, because a sheet only holds what people type, so an owner nobody set, a second row for the same person and a lead nobody touched for a week all look normal.

**How many leads can a Google Sheet hold?**

A spreadsheet holds up to 20 million cells, so size is rarely why a team moves. Two people in one row, leads with no owner and rows nobody sees come much sooner.

**Can I keep using my sheet after moving to a CRM?**

Yes, as a copy. The CRM writes to it one way, so your views and formulas keep working. A change typed into the copy gets written over on the next sync, so the habit of updating leads has to move to the CRM too.

**Can I lock the owner column in Google Sheets?**

You can protect a range so only the people you choose can edit it, or show a warning before an edit. That controls who edits the column. It doesn't make anyone fill it in, and Google says protection shouldn't be used as a security measure.

**Does HubSpot's free CRM stop duplicates?**

It matches contacts on the email, so the same email twice is one contact. The same person under a second email is still two contacts, and duplicate management is listed from Professional, so a person checks and merges those.

[BOOK A FREE CONSULTATION](https://cal.com/mashrur-signalnine/30min)

## Sources

- [Google Drive Help, Files you can store in Google Drive: up to 20 million cells for a spreadsheet created in or converted to Google Sheets](https://support.google.com/drive/answer/37603), read 2026-10-05
- [Google Docs Editors Help, Find what's changed in a file: browsing earlier versions needs edit permission; a cell's edit history can leave out added or deleted rows and changes made by formulas; restoring a version clears the cell history from before it](https://support.google.com/docs/answer/190843), read 2026-10-05
- [Google Docs Editors Help, Protect, hide and edit sheets: a protected range can be limited to chosen editors or show a warning, and protection shouldn't be used as a security measure](https://support.google.com/docs/answer/1218656), read 2026-10-05
- [Google Docs Editors Help, Manage your notifications: in Sheets you can set up email notifications for yourself when others make changes](https://support.google.com/docs/answer/91588), read 2026-10-05
- [Google for Developers, Sheets API usage limits: per-minute quotas per project and per user, and a request over quota is refused and should be retried with backoff](https://developers.google.com/sheets/api/limits), read 2026-10-05
- [HubSpot, Free CRM: free with up to two users and 1,000 contacts; required fields listed from Starter, duplicate management from Professional](https://www.hubspot.com/products/crm), read 2026-10-05
- [HubSpot Knowledge Base, Deduplicate records: on all plans, contacts are deduplicated on the email](https://knowledge.hubspot.com/records/deduplication-of-records), read 2026-10-05

## Related

- [Source of truth](https://signalnine.io/md/glossary/source-of-truth): The one system whose copy of a record wins when two tools disagree. Why it matters for opt-outs and phone numbers, and how a one-way sync keeps it that way.
- [Dedupe key](https://signalnine.io/md/glossary/dedupe-key): A dedupe key is the field a system uses to decide two records are the same person or company. Which key to pick, an example, and what goes wrong without one.
- [CRM hygiene](https://signalnine.io/md/glossary/crm-hygiene): CRM hygiene is keeping CRM records accurate, complete and free of duplicates. Why it decays, what it breaks, and how a system keeps it as a routine.
- [Duplicate contacts: why your CRM keeps making two of everyone](https://signalnine.io/md/bottlenecks/duplicate-contacts): Duplicates come back after every cleanup because each intake lane creates its own records. One match rule, checked before any record is created, stops that.
- [Two tools, two truths: which system is the source of truth](https://signalnine.io/md/bottlenecks/source-of-truth): When two tools disagree about a client, pick one owner tool for each field, let changes flow one way from it, and send edits made elsewhere back to the owner.
- [How do I sync Airtable to HubSpot without a mess?](https://signalnine.io/md/integrations/airtable-to-hubspot): Airtable as the record, HubSpot fed one way: which side wins, which key matches records, what breaks in a two-way sync, and what I'd pick.
- [Records from forms and emailed PDFs, kept in one place that stays right](https://signalnine.io/md/systems/data-intake-sync): A system I built that keeps the right version of each customer record in Airtable. Forms and emailed PDFs feed it, and HubSpot copies from it.
- [Where do your leads leak?](https://signalnine.io/md/tools/lead-leak-finder): Twelve yes or no checks across the four places a lead dies: never recorded, answered, followed up or closed out. See your worst leak and what closes it.

---
Mashrur Rahman, Founder, SignalNine. Published 2026-10-05, updated 2026-10-05.
Id: I14
Canonical: https://signalnine.io/integrations/google-sheets-as-crm
