The five columns that actually matter
Most leads don't die because a shop lacks software. They die because a name got scribbled on a sticky note and nobody circled back. A spreadsheet fixes that as well as any $200-a-month CRM, as long as you actually open it every day.
Go to sheets.google.com, sign in with the Google account you use for your Business Profile or Gmail, and click Blank spreadsheet. Name it Lead Tracker. Type these headers across row 1, one per column:
- A: Name
- B: Phone or email
- C: Job (three or four words, like "gutter cleaning, 2-story")
- D: Source (Google, referral, Facebook, yard sign, whatever brought them in)
- E: Status (New, Contacted, Quoted, Won, Lost)
That's it. Five columns. Every extra column you add is one more thing you'll skip filling in when you're standing in someone's driveway. Bold row 1 and freeze it so it stays visible: select row 1, then View > Freeze > 1 row.
Why Source and Status are the two that pay for themselves
Name and phone number just get you to a callback. Source and Status turn a list of strangers into decisions you can act on.
Source tells you where to spend money and where to stop. After a month, filter column D and count leads by channel, then check column E to see how many turned into Won. A yard sign that brought four leads and zero jobs is telling you something different than four Google leads that closed three of four.
Status keeps leads from going cold. Anyone sitting in New for more than a day hasn't been called back yet. Anyone stuck in Quoted for two weeks needs a follow-up text, not a shrug. Color-code it if it helps: select column E, Format > Conditional formatting, set New to red, Contacted to yellow, Quoted to blue, Won to green. A glance at the sheet now tells you what needs attention today.
Get every lead into the sheet without retyping it
A tracker only works if new leads land in it automatically, because the version where you mean to add them later is the version that falls apart by week three.
If your website has a contact form, switch it to Google Forms, which writes straight into a sheet with no extra tool. Go to forms.google.com, click Blank form, and add four questions matching your columns: Name, Phone or email, Job, and how they heard about you. Click the green Sheets icon (top right) and choose Create a new spreadsheet, or select your existing Lead Tracker. Every submission now appears as a new row within seconds. Add a Status column to that sheet, since Forms won't create one for you.
To use the form as your contact page, click Send, then the link icon, and paste that URL wherever your contact form used to live. Most site builders can also embed it directly under an Embed or Custom HTML block.
For leads that come in by phone or text, the sheet still needs a human to add the row. The goal isn't zero typing, it's zero leads living only in your head or your call log.
Automate the notification, not just the intake
A row appearing in a spreadsheet you don't have open does nothing. Add a notification so a new lead actually interrupts your day.
In the spreadsheet: Tools > Notification settings > Notify me at, choose "When a user submits a form" and "Right away." That's an email the moment someone fills out the form, enough for a lot of shops.
For a text instead of an email, or for leads posted somewhere your whole team sees, use the same kind of automation as the guide on missed-call text-back at /guides/missed-call-text-back: a free-tier Zapier or Make account watching for new Google Sheets rows and firing off an SMS or a Slack message. Zapier's free tier runs about 100 tasks a month as of mid-2026; Make's runs about 1,000 operations. Either connects to Sheets with no code, just an OAuth login like signing into your Google account normally.
Run it for five minutes a day
The sheet is only as good as the habit around it. Once a day, filter Status to New and call or text everyone in it, same day if you can manage it. A lead that sits overnight is a lead calling your competitor by morning.
Once a week, filter to Quoted and follow up with anyone who's gone quiet. For an actual script instead of winging it, the guide on a quote follow-up system at /guides/quote-follow-up-system has the exact day 2, day 5, and day 14 texts to send.
Once a month, sort by Source and Status together and see which channels actually produce Won jobs. That's the number that should decide next month's marketing spend, not gut feel.
When a spreadsheet stops being enough
A sheet breaks down at a specific point, and it's not about how many leads you get. It's about how many people touch the sheet and how many things need to happen automatically after a lead comes in.
The signs: two or more people are supposed to update Status and one of them keeps forgetting, so leads sit untouched because nobody knows whose turn it is. You want a lead to trigger more than a notification, things like an automatic text sequence, a calendar booking, or a job created in your invoicing tool the moment it's marked Won. Or you're duct-taping together three or four free tools (Forms, a spreadsheet, Zapier, a texting app) and any one breaking quietly loses you a lead with nobody noticing for a week.
At that point you're not shopping for a CRM, you're describing a small piece of custom software: one system where a lead comes in, gets routed to the right person, triggers the right message, and shows up in the report you actually look at. That's a different build than a $99-a-month CRM subscription with forty features you'll never open.