Nothing to wire up. You describe the business in plain language, Ifa designs and builds it, and you check the plan before any of it exists.

Guide

Google Sheets CRM: Where It Breaks and What to Move To

A Google Sheets CRM works until two people edit it at once. A layout that lasts, the five ways it breaks, and how to move your customers out safely.

By the Ifa team

If your customers, jobs or appointments live in a Google Sheet or an Excel file, you are not behind. A spreadsheet CRM is how most owner-led businesses start, and plenty run on one for years. The question is whether it still fits the way your business works this month. This guide covers what a Google Sheets CRM does well, a layout that lasts, the five ways it breaks, what to move to, and how to move without losing a record.

1. Know what a Google Sheets CRM does well

Be fair to the sheet first. It is free: Sheets comes with any Google account, and Excel with most office subscriptions, so there is no per-seat charge when you add a helper for the summer. It is fast to change: need a “referred by” column? Type a heading. And everyone already knows it, so a new hire can open it on day one without a training video.

If your list is under a few hundred customers, one person edits it, and follow-ups happen because that person opens it every morning, a Google Sheets CRM is a reasonable choice. Move when one of the breaks in step 3 costs you a customer or an afternoon, not because a vendor told you to.

2. Lay the sheet out so it lasts

One tab with forty columns and colored cells works for a month. This layout works for a year or more.

Three tabs, not one

  • Customers: one row per person or company. Never a row per job.
  • Jobs (or Appointments, depending on what you sell): one row per piece of work, with a column naming the customer.
  • Follow-ups: one row per promise, with a date and an owner.

A customer with six jobs should still be one customer. On a single tab, you end up with six phone numbers for the same person, three of them slightly different.

Columns for the Customers tab

Keep it narrow.

Column Type Note
Customer ID Text A short code such as C0042. Never reuse one.
Name Text One column, unless you mail-merge.
Phone Text Text format, so leading zeros survive.
Email Text Lowercase.
Source Dropdown Referral, Google, walk-in, repeat, other.
Status Dropdown Lead, active, dormant, lost.
Next action Text The single next thing to do.
Next action date Date When it is due.
Owner Dropdown Who on your team holds it.
Notes Text Newest at the top.

The Jobs tab needs a Job ID, the Customer ID, a date, a description, a value, a status dropdown (quoted, booked, done, paid) and notes. The Follow-ups tab needs the Customer ID, what was promised, a due date, an owner and a done checkbox.

Data validation on every dropdown and date

As of September 2026, select the column, then go to Data > Data validation in Google Sheets. Choose “Dropdown,” type the allowed values, and pick “Reject the input” for anything else. Use “Is valid date” on every date column. In Excel, it is Data > Data Validation with “List” or “Date.” This one step prevents most of the drift in step 3: nobody can type “Actve” or “next tues” once the cell refuses it.

A duplicate check with COUNTIF

Add a “Dup?” column next to the phone column on the Customers tab and enter, in the first data row:

=IF(COUNTIF($C$2:$C, C2)>1, "duplicate", "")

Copy it down, filter for “duplicate” weekly, and merge what you find. Because “(555) 010-2030” and “5550102030” are different strings to COUNTIF, add a helper column that keeps only digits and check duplicates on it instead:

=REGEXREPLACE(TO_TEXT(C2), "[^0-9]", "")

A “next action” column with a date

The most useful column in a spreadsheet CRM answers “what do I do next, and by when?” for every row. Fill “Next action” and “Next action date” whenever you touch a customer, then add a “Due” column (column I holds the date):

=IF(AND(I2<>"", I2<=TODAY()), "due", "")

A filter view for what is due

As of September 2026, go to Data > Create a filter view, name it “Due today,” and filter the Due column to “due.” A filter view is private to whoever opens it, so each person can check their morning list without rearranging the sheet for everyone else. Also protect the header row and ID columns with Data > Protect sheets and ranges, so nobody sorts one column and separates every name from its phone.

3. Watch for the five ways it breaks

A Google Sheets CRM does not fail loudly. It gets slightly wrong, then more wrong, until someone calls a customer who was already called yesterday. These are the five breaks we see most.

Two people editing at once

Sheets tolerates simultaneous editing; that does not mean the data stays right. One person sorts by name while another types a phone number in row 40, and the phone lands on the wrong customer. Nobody notices for weeks.

No record of who changed what

Sheets keeps version history (File > Version history), and right-clicking a cell offers “Show edit history” as of September 2026. Both help you find one broken cell. Neither tells you that a customer went from “active” to “lost” last Tuesday, or who did it, or why. Once two people share the sheet, this matters every time a customer says “but I told your colleague.”

Dates and phones drift

Without validation, a date column collects “3/4,” “March 4th,” “4 Mar” and “Q1.” Half of them sort as text. Phones lose their leading zero when the cell is set to Number. Emails collect trailing spaces. None of this shows until you filter, merge or import the sheet. Validation prevents new drift; it does nothing for the rows already there.

Files live somewhere else

Before-and-after photos, the signed quote, the inspection report: none of these fit in a cell. So they live in Drive, on someone’s phone, in an email thread, and the Drive folder is named after a customer whose name was later corrected in the sheet. Our page on customer files covers what “attached to the record” should mean.

Follow-ups depend on someone opening the sheet

The “Due today” view only works when a person opens it. When that person is sick or on holiday, the follow-ups stop, and the sheet does not know. This is the break that costs revenue rather than time, and the reason most owners finally move.

4. Decide what to move to when it breaks

There are three honest directions, and each gives up something the sheet did better.

A lightweight CRM

Tools such as HubSpot (a free plan, then paid tiers per seat), Zoho CRM (a limited free plan, then per user) or Less Annoying CRM (one flat per-user price) give you contacts, a pipeline, activity history and reminders out of the box. Pricing models are as of September 2026; check the vendors’ pages for numbers.

You gain logged changes, reminders and a list two people can share. You lose the sheet’s flexibility: a CRM’s idea of a “deal” may not match a grooming appointment or a furnace inspection, and bending it takes custom fields and workarounds. If your work is sales-shaped (quote, negotiate, close), a lightweight CRM is usually the right first step. Our overview of customer management software covers what to look for.

A builder such as Airtable or Softr

Airtable is a database that looks like a spreadsheet, with linked records, attachments in cells, form views and automations; it has a free plan and per-seat paid tiers as of September 2026. Softr builds a simple app on top of Airtable or a Google Sheet, so your team gets screens and buttons instead of a grid; it also has a free plan and tiered pricing as of September 2026.

You gain the freedom of a sheet plus real relationships, files on records, and automations that run without a person. You lose your evenings: you are now the software’s designer, deciding tables, fields, views and rules, and keeping them working as the business changes. For an owner who enjoys this, a builder is excellent. For an owner who does not, it becomes a second job.

A workspace such as Ifa

Disclosure: Ifa makes one of the tools compared here.

Ifa is a business workspace for service businesses. You describe the business in plain words, Ifa proposes the records, fields, relationships, views and lifecycle states, and you review the plan before anything is created. It reads your existing sheet (CSV, XLSX, XLS and the other formats listed on import your data), previews the records it would create, runs checks for duplicates, dates, empty values and the like, and waits for your approval. Files attach to records, scheduled automation handles follow-ups with a preview before any bulk action, and reports carry an audit history, so “who changed this” has an answer.

Where Ifa is behind, plainly: it is pre-launch, with a waitlist and no free tier; you preview your workspace, then pay. It has no calendar sync with Google or Outlook, and invoicing and payments are planned rather than shipped. Booking is flexible: customers can book through a booking page Ifa creates or in chat on a connected channel, and reminders are a workflow you define. If taking card payments is why you are leaving the sheet, a lightweight CRM or a booking app will serve you sooner. If the reason is drift, duplicates, lost files and follow-ups that depend on one person, that is what Ifa is built for. Our spreadsheet to workspace page shows what the proposed workspace looks like for a sheet like yours.

Direction Best when What you give up
Lightweight CRM Work is sales-shaped and reminders matter most The sheet’s flexibility
Builder (Airtable, Softr) You want to design and maintain it yourself Your time, ongoing
Workspace (Ifa) You want the structure proposed and checked, not built by hand Payments for now; pre-launch

5. Move without losing anything

Whatever you pick, the move has four parts.

Export

In Google Sheets, use File > Download > Comma-separated values (.csv) per tab, or File > Download > Microsoft Excel (.xlsx) to keep every tab in one file, as of September 2026. In Excel, File > Save As with CSV UTF-8 per sheet. First make a copy of the whole spreadsheet (File > Make a copy) and leave it untouched; it is your proof if a row goes missing later.

Clean

Do this in the copy, not the original.

  1. Run the COUNTIF duplicate check on phone and email. Merge duplicates by hand; keep the row with the most recent job and paste the older notes into it.
  2. Select each date column and apply Format > Number > Date. Anything that stays left-aligned is text and needs retyping.
  3. Set the phone column to plain text, run the digits-only formula, and paste the result back as values.
  4. Trim spaces from email and name with =TRIM(LOWER(D2)), then paste as values.
  5. Delete columns you never filled in.
  6. Check that every Job row points at a Customer ID that exists: =COUNTIF(Customers!$A$2:$A, B2)=0 on the Jobs tab flags orphans.

Import with a preview

Any tool worth moving to shows what it is about to create before it creates it. Airtable and most CRMs map columns to fields and summarize what will be created or updated. In Ifa, the import runs through a preview and checks, and nothing lands until you approve it.

Import Customers first, then Jobs, then Follow-ups; customers must exist before jobs can link to them. After each import, compare counts: rows in the CSV should equal records created plus duplicates merged. If they do not reconcile, stop and find out why.

Approve, then retire the sheet

Open ten customers at random in the new tool and compare them cell by cell with the sheet, including one with several jobs and one with a next action due today. When those ten are right, freeze the sheet: rename it “ARCHIVE, do not edit,” protect every range, and tell the team. Leaving the sheet editable for “just a few weeks” is how two systems end up with different truths.

What goes wrong and how to avoid it

The team keeps using the sheet after the move. Usually because the new tool is slower for one common task, such as glancing at everything due today. Find that task and make sure a saved view exists for it before you retire the sheet.

Duplicates come back. The importer merged them, but two people add the same customer a week later. A CRM or workspace should warn on a matching phone or email at entry time; turn that on. In a builder, you have to build it.

Dates arrive one day off. Day-month versus month-day formats cause this. Check a handful of dates against the original before approving.

Notes lose their history. A cell of newest-on-top notes becomes one long field. If that is not acceptable, split the notes into dated rows in a helper tab first.

Files never move. The import brings the rows; the Drive folders stay where they were. Budget a separate session to attach the files that matter to their records.

Questions people ask

Is Google Sheets a good CRM?

For one person and a few hundred customers, yes, provided the sheet has separate tabs, validated dropdowns and a next action column with a date. It stops being good the day a second person edits it regularly, or the day a follow-up is missed because nobody opened it.

Is an Excel CRM template better than a Google Sheet?

An Excel CRM template is still a spreadsheet, with the same five breaks. Templates help with layout: our free Excel CRM template ships the separate tabs, dropdown statuses and totals described in step 2, ready to use. What no template adds is edit history, reminders or record-level files.

How many customers can a spreadsheet CRM handle?

Sheets has a cell limit far above anything a customer list reaches. The practical limit is people, not rows: the sheet breaks when the second regular editor arrives, whatever the row count.

What is the difference between a spreadsheet and a database for customer data?

A spreadsheet stores cells; a database stores records with relationships and rules. In a database, a customer linked to six jobs is one customer, a date field cannot hold “next tues,” and every change is logged. You move from spreadsheet to database when the rules a sheet cannot enforce are the ones that keep costing you.

Last updated September 2, 2026.

Bring the list you already have.

Join the waitlist and tell us where your customers live today.