Google Sheets CRM for Coaches: Build It Step by Step

Yes, you can run a google sheets crm for a coaching practice, and for the first ten or fifteen clients it works well. The version that holds up is not one long list of names: it is six linked tabs (Clients, Sessions, Payments, Check-ins, Dashboard and Lists) with dropdown statuses, a handful of SUMIFS and MAXIFS formulas, and colour rules that tell you who needs attention. This guide gives you every column, every formula and a filled example for a coach with 12 clients, so you can build it this afternoon.
It also tells you where the spreadsheet stops working. A sheet can record that a session happened, a payment arrived or a client went quiet; it cannot book the session, take the payment, remind the client or hand them anything on their phone. When you find yourself copying the same facts between a calendar, Stripe, a form and the sheet every week, a purpose-built coaching platform such as Coachful does those jobs in one place, with one login for you and one branded app for your clients. We make Coachful, so we have a view; the build below is complete either way, and its structure maps closely onto Coachful's client record, which makes moving later straightforward.
If you are a freelancer, consultant or small service business rather than a coach, the build still fits. Swap "sessions" for "deliverables" or "hours" and the formulas work unchanged. The coaching-specific parts are the session counts, check-ins and the hours log, which you can drop.

What does a coaching CRM in Google Sheets have to do?
A coaching CRM has to answer six questions on any given Monday: who is a lead, who is a client, what did each client buy, how much of it is used, who has paid, and who has gone quiet. A spreadsheet can answer all six if you feed it. The harder jobs are the ones that need something to happen without you, and those need a workaround outside the sheet.
Here is the honest split for a coaching practice.
| Job | Can Google Sheets do it? | Workaround if not |
|---|---|---|
| Keep one record per client (contact, package, goal, notes link) | Yes | None needed |
| Track leads through stages | Yes, with a Status dropdown and a filtered view | None needed; no automatic follow-up |
| Count sessions used and left on a package | Yes, with COUNTIFS from a Sessions tab | You must log every session by hand |
| Show who has paid and what is owed | Yes, with SUMIFS from a Payments tab | You copy each payment in from your processor |
| Flag clients who have gone quiet | Yes, with conditional formatting on days since last session | Only as accurate as your session log |
| Let clients book a time | No | A separate booking tool or a Google Calendar booking page, then copy the booking in |
| Take payment, run payment plans | No | Stripe payment links or invoices, reconciled by hand |
| Send reminders before sessions | No | Calendar invite reminders, or Apps Script you write and maintain |
| Collect weekly check-ins | Partly | A Google Form feeding a Check-ins tab; no reminders, no streaks |
| Get a signed coaching agreement | No | An e-signature tool, then tick a checkbox |
| Give the client a place to see their plan | No, safely | A separate, view-only sheet or doc per client |
| Log coaching hours for an ICF credential | Yes, with a minutes column and a SUM | None needed if the log is complete |
Read the right-hand column as your weekly admin. Every "by hand" is ten minutes you spend after each client interaction, and every missed entry makes the formulas quietly wrong. That is the real cost of a spreadsheet CRM, and it is worth knowing before you start. If you only need the tracking columns, our client tracker spreadsheet guide covers a lighter, single-tab version.
How do you build a Google Sheets CRM, step by step?
Create a new spreadsheet, name it something like "Practice CRM 2026", and add six tabs in this order: Clients, Sessions, Payments, Check-ins, Dashboard, Lists. Build Lists first, because the dropdowns in every other tab read from it.
Step 1: The Lists tab (your dropdown values)
Lists holds the fixed vocabulary of your practice. Keeping it in one tab means you change a status name once and every dropdown follows.
- Column A, Client status: Lead, Discovery booked, Proposal sent, Active, Paused, Alumni, Lost
- Column B, Lead source: Referral, Instagram, LinkedIn, Website, Podcast, Workshop, Other
- Column C, Package: your offers by name, for example "Career Pivot (12 weeks)", "Promotion Sprint (6 weeks)", "Single session"
- Column D, Session status: Scheduled, Done, No-show, Cancelled
- Column E, Session type: Discovery, 1:1, Group, Intensive
- Column F, Payment method: Stripe, Bank transfer, Card in person, Other
Seven statuses is deliberate. "Lead" to "Proposal sent" is your pipeline, "Active" and "Paused" are current clients, and "Alumni" and "Lost" keep history without cluttering the views. Resist adding "Hot lead" and "Warm lead"; a status you cannot define in one sentence will be used inconsistently.
Step 2: The Clients tab (one row per person)
Clients is the heart of the sheet: one row per lead or client, never deleted, only moved through statuses. Put these headers in row 1, freeze the row (View, Freeze, 1 row) and freeze columns A and B so the name stays visible while you scroll right.
| Column | Header | Type | How it is filled |
|---|---|---|---|
| A | Client ID | Text, for example C-001 | Typed once; never reused |
| B | Name | Text | Typed |
| C | Text | Typed; must match the email they use on your check-in form | |
| D | Phone | Text (format as plain text so leading zeros survive) | Typed |
| E | Time zone | Text | Typed, for example Europe/London |
| F | Source | Dropdown from Lists!B2:B | Picked |
| G | Status | Dropdown from Lists!A2:A | Picked; changes as they move |
| H | Package | Dropdown from Lists!C2:C | Picked |
| I | Start date | Date | Typed |
| J | End date | Date | Typed or =I2+84 for a 12-week package |
| K | Sessions purchased | Number | Typed |
| L | Sessions done | Number | Formula |
| M | Sessions left | Number | Formula |
| N | Package price | Currency | Typed |
| O | Paid to date | Currency | Formula |
| P | Balance | Currency | Formula |
| Q | Next session | Date | Formula |
| R | Last session | Date | Formula |
| S | Days since last session | Number | Formula |
| T | Agreement signed | Checkbox | Ticked when the signed copy is filed |
| U | Main goal | Text, one sentence | Typed after discovery |
| V | Tags | Text, comma separated | Typed, for example "referral partner, payment plan" |
| W | Notes link | Link to a private doc | Pasted |
| X | Last check-in | Date | Formula |
To make the dropdowns, select G2:G, choose Data, Data validation, Add rule, "Dropdown (from a range)", and enter =Lists!$A$2:$A. Repeat for F and H. For T, select T2:T and choose Insert, Checkbox. Set "Reject the input" for invalid data so a typo like "Actve" cannot slip in and break every count.
Step 3: The Sessions tab (every booked and completed call)
Sessions is a log: one row per session, past or upcoming. The Clients tab reads from it, so this is the tab you must keep current.
- A, Date: date and time of the session
- B, Client ID: dropdown from
=Clients!$A$2:$A - C, Client name: formula, so you never type it twice
- D, Minutes: number, for example 60
- E, Type: dropdown from Lists!E2:E
- F, Paid or pro bono: dropdown with "Paid" and "Pro bono" (this matters for ICF hours)
- G, Status: dropdown from Lists!D2:D
- H, Summary: two lines, not the full notes
- I, Next action: what you or the client committed to
The name lookup in C2, filled down:
=IFERROR(VLOOKUP($B2, Clients!$A:$B, 2, FALSE), "")
When you book a call, add the row with status Scheduled. After the call, change it to Done or No-show. That single habit drives sessions used, last session, days since contact and your hours total.
Step 4: The Payments tab
Payments has one row per payment received: A Date, B Client ID (dropdown from the Clients IDs), C Amount, D Method (dropdown from Lists!F2:F), E Invoice or receipt number, F What it was for, G Note. A payment plan of three instalments is three rows. Refunds are a row with a negative amount, so totals stay honest.
Step 5: The formulas on the Clients tab
Enter these in row 2 and fill down as far as you expect to have rows (row 200 is plenty for most solo practices). The $ signs keep the column fixed while the row changes.
L2 Sessions done
=COUNTIFS(Sessions!$B:$B, $A2, Sessions!$G:$G, "Done")
M2 Sessions left
=IF($K2="", "", $K2-$L2)
O2 Paid to date
=SUMIFS(Payments!$C:$C, Payments!$B:$B, $A2)
P2 Balance
=IF($N2="", "", $N2-$O2)
Q2 Next session (blank if none is booked)
=LET(d, MINIFS(Sessions!$A:$A, Sessions!$B:$B, $A2, Sessions!$G:$G, "Scheduled", Sessions!$A:$A, ">="&TODAY()), IF(d=0, "", d))
R2 Last session
=LET(d, MAXIFS(Sessions!$A:$A, Sessions!$B:$B, $A2, Sessions!$G:$G, "Done"), IF(d=0, "", d))
S2 Days since last session
=IF($R2="", "", INT(TODAY()-$R2))
X2 Last check-in (matches on email)
=LET(d, MAXIFS('Check-ins'!$A:$A, 'Check-ins'!$B:$B, $C2), IF(d=0, "", d))
The LET wrapper exists because MINIFS and MAXIFS return 0 when nothing matches, which Google Sheets would display as 30 December 1899. Format Q, R and X as dates and S as a plain number.
Step 6: Colour rules that do the watching
Conditional formatting turns the Clients tab into a to-do list. Select A2:X200, choose Format, Conditional formatting, "Custom formula is", and add these four rules in order:
Quiet client (light red) =AND($G2="Active", ISNUMBER($S2), $S2>14) Package nearly used (light yellow) =AND($G2="Active", ISNUMBER($M2), $M2<=1) Money owed (light orange, apply to P2:P200 only) =AND(ISNUMBER($P2), $P2>0) Coaching without an agreement (light purple, apply to T2:T200 only) =AND($G2="Active", $T2=FALSE)
Fourteen days suits weekly or fortnightly coaching. If you coach monthly, raise it to 35.
Step 7: The Check-ins tab, fed by a Google Form
Create a Google Form with an email question (or collect emails automatically), then three to five short questions: energy this week (1 to 10), one win, one thing in the way, and the commitment for next week. In the form's Responses tab, link it to this spreadsheet and rename the new tab "Check-ins". Column A becomes the timestamp and column B the email, which is what the X2 formula reads. Our guide to client check-ins without Google Forms explains what a form cannot do here, chiefly reminding the client and showing them their own trend.
Step 8: The Dashboard tab
The Dashboard is a single screen you open on Monday morning. Put labels in column A and these formulas in column B:
Active clients
=COUNTIF(Clients!G:G, "Active")
Open pipeline (leads not yet decided)
=SUM(COUNTIF(Clients!G:G, {"Lead", "Discovery booked", "Proposal sent"}))
Collected this month
=SUMIFS(Payments!C:C, Payments!A:A, ">="&(EOMONTH(TODAY(), -1)+1), Payments!A:A, "<"&(EOMONTH(TODAY(), 0)+1))
Outstanding from active clients
=SUMIFS(Clients!P:P, Clients!G:G, "Active")
Sessions this week (Monday to Sunday)
=COUNTIFS(Sessions!A:A, ">="&(TODAY()-WEEKDAY(TODAY(), 2)+1), Sessions!A:A, "<"&(TODAY()-WEEKDAY(TODAY(), 2)+8), Sessions!G:G, "<>Cancelled")
Coaching hours logged (paid and pro bono)
=SUMIFS(Sessions!D:D, Sessions!G:G, "Done")/60
Paid coaching hours Sessions!G:G, "Done", Sessions!F:F, "Paid")/60
Below the numbers, add two live lists. In D2, the clients who need a message today:
=IFERROR(FILTER(Clients!B2:B, Clients!G2:G="Active", ISNUMBER(Clients!S2:S), Clients!S2:S>14), "Nobody quiet")
In F2, the pipeline with source and status:
=QUERY(Clients!A1:X, "select B, F, G, I where G = 'Lead' or G = 'Discovery booked' or G = 'Proposal sent'", 1)
The ISNUMBER check in the FILTER matters: Google Sheets treats an empty text result as larger than any number, so without it every client with no session yet would appear as quiet.
Step 9: Views and sharing settings
- Filter views, not filters. Use Data, Filter views, Create new filter view for "Active only", "Pipeline" and "Alumni". A filter view changes only your screen; an ordinary filter changes it for anyone else with the file open.
- Protect the formula columns. Select L, M, O, P, Q, R, S and X, then Data, Protect sheets and ranges, and set "Show a warning when editing". One accidental overwrite of L2 breaks a client's session count silently.
- General access: Restricted. In Share, set General access to "Restricted" so only named people can open it. Never use "Anyone with the link" on a file with client contact details, payments and goals.
- Keep notes out of the sheet. Column W links to a private doc per client. Session notes are the most sensitive thing you hold; they should not sit in a cell that every editor can scroll past.
- Version history is your backup. File, Version history, Name current version, once a month. It also lets you see who changed what if you add an assistant.
If you would rather handle intake outside a form-plus-sheet chain, see how to manage client intakes without Google Forms; for files and notes, client documents without Google Drive.
What does a filled-in Google Sheets CRM look like?
Here is the Clients tab for an example coach: Priya, a fictional career coach with 12 clients. The people, packages and prices are illustrative, chosen to show how the formulas and colour rules behave, not to suggest what you should charge. Priya sells two packages in this example: Career Pivot (12 weeks, 6 sessions, 1,200 dollars, payable in three instalments) and Promotion Sprint (6 weeks, 4 sessions, 750 dollars, paid upfront).
| ID | Name (example) | Status | Package | Sessions left | Balance | Days since last session | Agreement | What the colours say |
|---|---|---|---|---|---|---|---|---|
| C-001 | Alex R. | Active | Career Pivot | 3 | $0 | 5 | Yes | Nothing to do |
| C-002 | Bianca L. | Active | Career Pivot | 1 | $400 | 9 | Yes | Yellow and orange: renewal talk, last instalment due |
| C-003 | Chen W. | Active | Promotion Sprint | 2 | $0 | 6 | Yes | Nothing to do |
| C-004 | Dami O. | Active | Career Pivot | 5 | $800 | 3 | No | Purple: agreement missing after first session |
| C-005 | Elena P. | Active | Promotion Sprint | 0 | $0 | 4 | Yes | Yellow: package finished, decide next step |
| C-006 | Farid K. | Active | Career Pivot | 4 | $0 | 18 | Yes | Red: quiet for over two weeks |
| C-007 | Grace H. | Active | Promotion Sprint | 3 | $0 | 7 | Yes | Nothing to do |
| C-008 | Hugo M. | Paused | Career Pivot | 2 | $0 | 41 | Yes | No colour: paused clients are excluded on purpose |
| C-009 | Ines V. | Active | Career Pivot | 6 | $800 | (blank) | Yes | Orange only: first call booked, two instalments to come |
| C-010 | Jonah B. | Active | Promotion Sprint | 1 | $0 | 12 | Yes | Yellow: one session left |
| C-011 | Kemi A. | Alumni | Career Pivot | 0 | $0 | 63 | Yes | No colour: ask for a referral or testimonial |
| C-012 | Luca S. | Active | Career Pivot | 2 | $0 | 21 | Yes | Red: quiet for three weeks |
On Priya's Dashboard the example reads: 10 active clients, outstanding balance of $2,000 (Bianca, Dami and Ines), and a "needs a message" list of Farid and Luca. Three leads sit in the pipeline view below, one each at Lead, Discovery booked and Proposal sent.
Notice what the sheet cannot tell Priya. It does not know whether Farid has been doing the work between calls, only that no call has been logged. It does not know Bianca's last instalment failed on her card unless Priya checks Stripe. And Ines's "(blank)" is correct only if Priya remembered to add the booked session as Scheduled. A spreadsheet is a mirror of what you type into it, which is both its honesty and its limit.

What does the client see, on their phone?
With a Google Sheets CRM, the client sees nothing of it, and that is how it should be. The master file holds every client's contact details, balance and goal, so it can never be shared with a client, even view-only. What a client experiences is everything around the sheet: a calendar invite, an email with a Stripe link, a Google Form link each Friday, maybe a shared doc of their plan.
On a phone, that is four apps and a handful of links in their inbox. Some coaches build a separate, view-only sheet per client that pulls their row with IMPORTRANGE. Be careful with that: once two files are connected through IMPORTRANGE, anyone who can edit the destination file can change the formula to pull other ranges from your master. If you use it, the client must have view access only, and you should check sharing on each client file every quarter.
For comparison, this is what a client sees in a purpose-built coaching app: the next session, the work due before it, and tabs for their program, sessions, progress and documents, under the coach's branding.

And between sessions, their habits and streaks, which is the part a check-in form never shows them.

Where does a Google Sheets CRM stop working?
A Google Sheets CRM stops working when the admin around it costs more time than the coaching it supports. For most solo coaches that happens somewhere between 10 and 20 active clients, or the first time you sell a group program, take on a payment plan for half your roster, or add an assistant. These are the specific limits.
Privacy and sharing risk
Everything sits in one file that is one wrong click from "Anyone with the link". Editors can see every row, every balance and every goal, and there is no per-client permission inside a single sheet. If you coach in or serve clients in the EU or UK, you are handling personal data under the General Data Protection Regulation, which expects you to limit access and delete data you no longer need; check what applies to you with an attorney. If clients tell you about health conditions, remember that coaching is not treatment: keep clinical details out of the sheet, and refer clients to a qualified professional when something is beyond coaching.
Payments
The sheet records payments; it cannot take them. Every instalment is copied in by hand from Stripe or your bank, and a failed card shows up only when you notice the balance never moved. Payment plans, refunds and coupons all happen elsewhere.
Booking and reminders
Clients cannot pick a time from a spreadsheet. You need a booking page, and each booking then needs a row added to Sessions. Reminders come from the calendar invite at best. Our guide to a Google Calendar booking page covers the free option and its gaps.
Check-ins and between-session work
A form collects answers, but nobody is nudged to fill it in, the client never sees their own trend, and you read responses in a tab rather than next to their goal. Habits, daily tasks and program weeks have no natural home in a sheet.
Mobile
The Google Sheets app opens the file on a phone, but a 24-column sheet with frozen columns and dropdowns is hard to edit on a small screen. Logging a session from your phone between calls is possible and unpleasant.
A team
Add a second coach or a virtual assistant and you share the whole file. There are no per-coach calendars, no "only see my clients" view and no staff permissions; protected ranges help, but only for columns, not people's rows.
Size and cost limits
Google's help center lists a limit of up to 20 million cells for a spreadsheet created in or converted to Google Sheets, which a coaching CRM will never reach. Cost is the more practical question. A personal Google account costs nothing. For a business email address and shared storage, Google Workspace Starter is $7 per user per month, Standard $14 and Plus $22, as listed on its pricing page in November 2026, with a 14-day no-cost trial and introductory discounts for new customers in the first year. A Base tier at $2.50 per user per month was also listed.
The question is not whether the sheet can hold your data. It is whether you want to be the integration between your calendar, your processor, your forms and your clients. Our walkthrough on how to replace spreadsheets and Slack in coaching looks at the same moment from the messaging side.
How does a Google Sheets CRM compare with Coachful and dedicated coaching tools?
We compared on four things that decide most coaching setups: one login for the whole client journey, what clients get between sessions, total cost of the stack, and how much setup you do yourself. Coachful leads on those criteria; the others are listed with their own documented strengths. Vendor prices are as listed in October 2026; the Google Sheets row uses prices listed in November 2026.
| Option | Price as listed | Client limit | Booking and reminders | Payments | Client app or portal | Programs, habits, check-ins |
|---|---|---|---|---|---|---|
| Coachful | Lite: $29/month for up to 5 clients | Lower plans cap clients; Pro is unlimited (for 12 clients: Solo: $49/month for up to 20 clients) | Booking pages, two-way calendar sync, email reminders, SMS and WhatsApp once messaging is enabled | Your own Stripe Connect or Razorpay; 0% platform fee | Branded app and client home | Multi-week programs, habits, morning and evening check-ins, goals, streaks |
| Google Sheets (DIY) | No cost on a personal account; Workspace from $7/user/month | None in practice | None; separate tool needed | None; record only | None safe to share | Form responses only |
| Paperbell | $97/month ($80.83/month billed annually) | Unlimited | Booking included | Stripe or PayPal; no extra transaction fee stated | Client portal; mobile browser, no native app (older profile) | No goal or habit tracking (older profile) |
| Practice Better | Starter $35/month for 10 clients; Professional $69/month for 300 | 3 on the free Sprout plan, then by tier | Scheduling and telehealth | Practice Better Payments, powered by Stripe | Client portal; branding and custom URL from Plus ($99/month) | Programs; evergreen programs from Plus |
| CoachAccountable | Level 2 $70/month for 10 active clients; Level 3 $120/month for 20 | By active client | Sessions and scheduling | Processor fees apply | Web portal, no native app (older profile) | Action plans, metrics, worksheets |
| HoneyBook | Starter $29/month billed annually | Unlimited | Scheduler from Essentials ($59/month) | HoneyBook's own processing only | Client portal | None: no programs, habits or check-ins |
The pattern is clear. HoneyBook and similar business CRMs handle the paperwork side (proposals, contracts, invoices) but not delivery. Paperbell, Practice Better and CoachAccountable cover more of a coaching practice, with caps or gaps you should check against your own roster. The spreadsheet costs least in money and most in hours. For wider rankings by niche, see our picks for the best CRM for life coaches and for career coaches.




What is Coachful, and when is it worth moving to?
Coachful is a coaching platform that replaces the spreadsheet and the four or five tools around it. One membership covers booking, payments, coaching agreements, program delivery with habits and check-ins, courses, a community, a website with funnels and email, and an AI assistant, with one login for the coach and one branded app for the client. It is built for coaches who deliver programs rather than single sessions, solo coaches growing into a small team, and anyone replacing 4 to 6 tools. The company is based in Tallinn, Estonia, and is rated 4.5 on Trustpilot from 21 reviews.
Here is how the spreadsheet maps onto it. Your Clients tab becomes the client record, which holds goals, check-ins, habits, notes, intake answers, tags, payments and sessions, and gives each client a status of thriving, active, quiet or at risk without a conditional formatting rule. Your pipeline becomes the Prospects page, with stages and the form or resource each lead came from. Your Sessions tab becomes the calendar, with booking pages, buffers, time-zone detection and two-way sync with Google, Apple/iCloud and Outlook calendars. Your Payments tab becomes transactions through your own Stripe Connect or Razorpay account, with an invoice for each one.

Here is a short walkthrough of the client list and record:
The parts with no spreadsheet equivalent are the ones that happen between sessions: multi-week programs with weekly goals and daily tasks, morning and evening check-ins, habits and streaks, and an intake that arrives already attached to the client. Coaching agreements are e-signed before the first call and stored on the record, so the purple "no agreement" rule is no longer needed. Michelle, the built-in AI assistant, works from live practice data and briefs you before each session. If you are working toward an ICF credential, ICF hour tracking counts hours and distinct clients against ACC, PCC and MCC thresholds and exports a client coaching log with paid and pro bono hours, which replaces the hours formula above.



What it does not do matters too. Coachful is not HIPAA-certified, so it is not a place for clinical records or insurance billing. It does not take PayPal and has no permanent free plan, though there is a free trial. The client app runs under the Coachful listing with your branding, not under your own App Store account. It has no multi-stage deal board for large sales teams and no Salesforce or HubSpot integration. For a coaching practice that outgrew a spreadsheet, those are rarely the deciding gaps; for an agency with a sales team, they might be. Current plans: Lite: $29/month for up to 5 clients; Solo: $49/month for up to 20 clients; Pro: $99/month with unlimited clients; Studio: $199/month with unlimited clients. Monthly plans cancel in one click.
Why Coachful stands out: a free white-glove service. On every plan, you can go to Create, "We'll build it for you · FREE", describe what you want, attach up to 8 reference links and up to 10 files, and the Coachful team builds it inside your own account, usually within about 24 hours. That can be a website, a funnel, a program, a course outline, a form, an email sequence or an automation. Nothing is invented: no fake testimonials, credentials or prices, and gaps are left for you to fill. A leadership coach with a Squarespace renewal days away, for example, got one clean homepage with a repeated "talk with me" button. More examples are in our post on the free white-glove service.

How do you move from a Google Sheets CRM into Coachful?
Moving takes less work than the build did, because the structure above already matches how Coachful organises a client. Clients, programs and content are imported for you during onboarding, so the job on your side is mostly export and decisions.
- Clean the Clients tab. Remove duplicate rows, make sure every active client has a real email, and decide what to do with Lost and old Alumni rows (archive them in your own files rather than importing everyone).
- Export. For each tab you want to bring, use File, Download, Comma-separated values. You get one CSV per tab: Clients, Sessions, Payments and Check-ins.
- Hand it over at onboarding. Send the CSVs along with your packages and any program material. The import is done for you.
- Rebuild, do not import, the moving parts. Your packages become offers with their own checkout, your booking rules become booking pages with buffers and minimum notice, your Google Form becomes a check-in flow, and your agreement template becomes an e-signature agreement. These are configuration, and the white-glove team can build programs, forms and funnels from what you describe.
- Connect the accounts. Link your Stripe Connect or Razorpay account, your calendar, and Zoom, Meet or Teams if you use them.
- Decide on in-flight payment plans. Instalments already running in Stripe outside Coachful will not move on their own; the simplest path is to let current plans finish where they are and set up new ones in Coachful.
- Invite clients, then freeze the sheet. Once everyone is in, set the spreadsheet to view-only for yourself and keep it as an archive. Running both in parallel for more than a couple of weeks recreates the double entry you are leaving.
What clients notice: an invitation to your branded app, one place for their next session, program, tasks and documents, reminders before calls, and an agreement to sign before the first session if they are new. What they stop seeing is the trail of calendar invites, payment links and form links in their inbox.

Should you want a stronger view of the trade-off between generic CRMs and coaching platforms first, our coaching CRM page and the guide to coaching pipelines without Pipedrive cover it in more depth.
What mistakes break a Google Sheets CRM?
Most broken spreadsheet CRMs fail in the same few ways, and every one of them is avoidable.
- Typing names instead of IDs. "Alex R" in one tab and "Alex Rivera" in another breaks every SUMIFS. Match on Client ID, always.
- Free-text statuses. Without data validation, "active", "Active " and "Actve" are three different statuses to COUNTIF.
- Deleting rows. A deleted client takes their history with them. Change the status to Lost or Alumni instead.
- Logging only completed sessions. If upcoming calls are not in Sessions as Scheduled, the Next session column is always blank and the quiet-client rule fires too early.
- Session notes in cells. Long notes make rows unreadable and expose sensitive material to every editor. Link out to a private doc.
- "Anyone with the link" sharing. Convenient for an assistant, and the most common way client data leaks from a spreadsheet.
- Sharing the master with clients. Even view-only, it shows every other client's row.
- Ordinary filters on a shared file. One person filtering to "Active" changes the view for everyone. Use filter views.
- Building for a team you do not have. Twenty extra columns "for later" make the sheet harder to keep current now. Add a column only when you have needed the information twice.
- Staying too long. If you spend more than an hour a week copying data between tools into the sheet, the spreadsheet has become a second job.
Frequently asked questions
Is there a free Google Sheets CRM template for coaches?
You can build one from this guide in about an hour: six tabs, the column list in Step 2 and the formulas in Steps 5 and 8. Building it yourself also means you understand every formula, which helps when something stops adding up. For a single-tab version, our client tracker spreadsheet lists the columns and formulas.
How many clients can a Google Sheets CRM handle?
Technically far more than any solo practice will have, since Google lists a limit of up to 20 million cells per spreadsheet. The practical limit is your admin time: past roughly 15 to 20 active clients, logging every session, payment and check-in by hand becomes a weekly chore. The size of your roster matters less than how many tools feed the sheet.
Can Google Sheets send reminders or follow-ups automatically?
Not on its own. You can write Apps Script to send emails from the sheet, but you then maintain that code yourself, and it breaks quietly when columns move. Most coaches rely on calendar invite reminders, which do not cover check-ins or overdue payments.
Is it safe to keep client information in Google Sheets?
It can be reasonably safe if General access is Restricted, only people who need it are editors, and session notes and health details stay out of the file. The risk is human: one changed sharing setting exposes everyone. If you serve clients in the EU or UK, data protection law applies to that file, so check your obligations with an attorney.
Should I use Google Sheets or a free CRM like HubSpot?
A general CRM adds email tracking and a pipeline board, but it is built for sales teams, not for delivering coaching: no programs, habits or client app. For most solo coaches the choice that matters is spreadsheet versus a coaching platform, because the delivery side is where the hours go.
When should a coach switch from a spreadsheet to coaching software?
Switch when you notice yourself copying the same facts between your calendar, payment processor, forms and the sheet every week, when you launch a group program, or when you add a second person. Those are the points where the sheet's lack of booking, payments and a client app costs more than a subscription.
Can I import my Google Sheets CRM into Coachful?
Yes. Export each tab as a CSV and hand it over during onboarding; clients, programs and content are imported for you. Booking rules, offers, check-in flows and agreements are set up as configuration rather than imported rows.
What is Coachful's free white-glove service?
It is a build service included on every plan: you describe a website, funnel, program, form, email sequence or similar, attach reference links and files, and the Coachful team builds it inside your account, usually within about 24 hours. It does not invent testimonials, credentials or prices, and it does not include recording videos, logo design or ad management. Read more about the white-glove service.
Does this Google Sheets CRM work for freelancers and small businesses?
Yes. Rename Sessions to Deliverables or Hours, replace packages with your services, and drop the Check-ins tab. The ID-based lookups, payment balance and "days since last contact" rule work for any service business.







