Most CRMs ask you to commit to a tool, schema, and monthly bill before you've even sold anything. A spreadsheet doesn't. This guide ships you a working contact-management system in Google Sheets or Excel — the same column structure used by a real CRM, plus the formatting tricks that make a flat spreadsheet behave like one. Free. No email signup.
Works in Google Sheets, Microsoft Excel, Apple Numbers, LibreOffice — anything that opens a CSV.
If you're a solo founder, a freelancer, a side-hustler, or a small team selling to fewer than 200 contacts, you don't need HubSpot. You need a single place where every lead, conversation, follow-up date, and quote amount lives. The bar is "I can answer who do I owe a call to today" without thinking. A spreadsheet clears that bar — if you set it up right.
When you outgrow the spreadsheet (you will), there's a clear path forward — and the same template structure carries straight over.
Two formats — pick whichever fits your workflow. Both contain the same 39 columns and two sample rows you'll replace with your actual contacts.
Prefer CSV in Excel? Use the CSV download — Excel opens those natively too.
39 columns sounds like a lot — but each one earns its place. Tier badges show what's strictly necessary vs nice-to-have. If you're starting out, just fill in the Essential ones; add the rest as you need them.
| Column | Tier | Why this column matters |
|---|---|---|
| Record Type | Essential | "Lead" vs "Customer". Your funnel only works if you can tell who's still being sold to vs who's already paying. A single field separates the two universes. |
| Company | Essential | Lets you group multiple contacts at the same account. Most B2B sales involve 2-5 people at one company; without this you'll lose track of which deal owns which conversation. |
| First / Last Name | Essential | Separated (not "Full Name") so you can mail-merge "Hi Sarah" instead of "Hi Sarah Johnson" in templates later. |
| Title | Recommended | Shows whether you're talking to a decision-maker or a gatekeeper. Critical for prioritizing follow-ups. |
| Essential | Primary outreach channel. Even if you mostly call, you need this for proposals and follow-ups. | |
| Website | Recommended | One-click research before a call. Saves 2 minutes per prospect — adds up fast at any volume. |
| Phone / Phone 2 / Phone 3 | Essential | Three slots because real contacts have direct line + cell + main switchboard. Voicemail to one ≠ voicemail to all three. |
| Street / City / State / ZIP | Recommended | Address split into 4 columns (not one) so you can sort by state, filter by territory, build location-based reports later. |
| Business Type | Recommended | Industry / vertical. Lets you slice your pipeline by the segments you actually sell to ("HVAC contractors", "law firms", etc.). |
| Territory | Advanced | Becomes essential when you have 2+ reps. You assign accounts; this column says who owns the geography. |
| Tag | Recommended | Free-form bucket for things like "VIP", "Trade Show 2026", "Decision Maker". Whatever doesn't fit in a fixed dropdown. |
| Lead Source | Essential | "Where did this lead come from?" Knowing whether your closes come from referrals vs Facebook ads vs cold outreach drives every marketing decision you'll make. |
| Lead Owner | Recommended | Who's responsible. Even if it's always you today, fill it in — when you hire a second person, the existing data is already attribution-ready. |
| Referred By | Recommended | Tracks your referral network. Tells you who your best advocates are — which deserves a thank-you gift, which to ask for an intro. |
| Status | Essential | The pipeline stage. New → Working → Connected → Contract → Closed. This is the column you'll color-code (see tip #1 below) and the heart of your CRM. |
| Status Reason | Recommended | Sub-stage detail — "Closed Won" vs "Closed Lost", "Working - Active Sequence" vs "Working - No Response". Lets your reports answer "why" not just "what stage". |
| Sequence / Current Step | Advanced | Tracks which automated outreach campaign someone is in (and what step). Only useful once you have actual sequences running — leave blank to start. |
| Due Date | Essential | When you next need to do something for this contact. Sort by this column and the top of the list IS your daily to-do list. |
| Amount / Quote Amount | Essential | Quote = what you proposed. Amount = what they actually paid. Both feed pipeline-value math. Without these, a "report" is just a contact list. |
| Contract Start / Renewal Date | Recommended | For customers, when did the relationship start and when does it renew? Renewals are 5x cheaper than new logos — losing one to "I forgot it was up" is a punch in the gut. |
| Last / Next Check-In Date | Recommended | Customer success cadence. Quarterly check-ins mean a quarterly entry. Without these dates, you don't actually have a cadence. |
| Check-In Cadence | Advanced | "Weekly", "Monthly", "Quarterly". Higher-tier customers get more attention — this column makes that explicit. |
| Health Score / Manual Health Score | Advanced | 0-100 customer health. Manual when you start; automated formula later. Lets you sort customers by "who's about to churn" instead of by name. |
| Texting Available | Recommended | Yes/No. SMS gets 98% open rates vs 20% for email — but only when you have explicit opt-in. This is your opt-in tracker. |
| Notes | Essential | Last conversation, what they care about, gotchas to remember. The single highest-leverage column on the whole sheet. |
| LinkedIn URL / Facebook URL | Recommended | One-click jump to their public profile. Drives 30 seconds of relevant context before any call: recent posts, mutual connections, role changes. |
| Created Date | Essential | When this contact entered your system. Lets you measure "average days from lead to close" and spot the contacts that have been "Working" for 6 months and need a decision. |
| Activity log columns (AN+) | Recommended | Reserved for one log entry per cell, appended right-to-left. Your conversation history. Date-prefixed text like "2026-05-15 - Call - left voicemail, ref. pricing". |
A spreadsheet is a grid until you teach it the right tricks. These five take 10 minutes total and make the difference between "spreadsheet" and "system."
Format → Conditional formatting on the Status column. Set color rules: blue = New, orange = Working, purple = Connected, amber = Contract, green = Closed Won, red = Dead. You'll spot pipeline shape across 200 rows in one second instead of one minute.
Select the Status column → Data → Data validation → "Dropdown (from a range)" → enter your statuses. Now every cell is a click-to-pick instead of a typo opportunity. Same trick for Lead Source, Tag, Business Type — anywhere you'd want consistent values for filtering.
View → Freeze → 1 row in Sheets, or View → Freeze Top Row in Excel. Now your column headers stay visible as you scroll. Sounds trivial; you'll wonder how you lived without it on row 87.
In Google Sheets: Data → Filter views → Create new filter view. Filter Due Date column with custom formula =AND(F2>=TODAY(), F2<=TODAY()+7). Save it. Now you have a one-click view of everything to do this week — your daily Monday-morning queue.
Insert → Pivot table → Rows = Status, Values = Sum of Quote Amount. You now have a one-cell answer to "what's my pipeline value by stage?" Refresh whenever. This is the single highest-ROI 30 seconds you'll spend in setup.
For every interaction, prepend a date: 2026-05-15: Called, left VM. 2026-05-12: Sent proposal v2. 2026-05-08: Discovery call - they care about X. Newest at the top. Reading any contact's history takes 10 seconds. Once you have 50+ interactions per contact, move to the activity log columns (AN onwards).
A spreadsheet CRM works for the first 200 contacts and the first solo year. Then specific frictions start showing up — not because spreadsheets are broken, but because they were never designed for this. Honest list of the moments people hit the wall:
When you hit any two of these, you've outgrown the spreadsheet. We'll get to the natural next step at the bottom — but first, two more things that make the spreadsheet itself better.
A perfectly-built CRM with no contacts in it is a perfectly-built file. You need a way to actually GET people into the spreadsheet without spending three minutes copy-pasting per contact.
Free Chrome extension that scrapes contact info from any website you're on (LinkedIn profile, company About page, BBB listing, Google Maps result) and lets you push it into a spreadsheet or directly into the CRM. One click instead of three minutes of copy-paste per contact. Works without a CrawlSpace account on a per-spreadsheet basis. See how it works →
No extension yet? In the meantime: when researching a prospect, copy their phone + email from their website, paste into the row, and prepend today's date in the Notes column with what you found. Build the muscle of "data lives in the sheet, not in tabs I forgot to close."
Once your spreadsheet is set up and filling with leads, the highest-leverage moves are usually around outbound and follow-up automation. Each link below opens a deeper guide on a specific automation strategy — read in any order.
How to send multi-step outreach campaigns instead of one-off manual emails. The biggest time multiplier in the entire CRM stack.
Find local businesses by industry + city across Google Maps, BBB, and DuckDuckGo simultaneously. Replace ZoomInfo / Apollo for SMB prospecting.
If you stay on Google Sheets long-term, here's how to make a CRM read AND write from your sheet so you keep ownership of the data.
Auto-import leads from Facebook ad campaigns straight into your CRM the moment a form is submitted. No CSV exports.
Same idea for LinkedIn — auto-pipe ad leads into your contact list with the source tagged automatically.
27+ pre-built reports plus a custom report builder. When pivots stop scaling, this is what replaces them.
What "Status" + "Quote Amount" turns into when you outgrow a single column. Kanban board, stage probabilities, weighted forecasting.
The "Texting Available" column has a bigger purpose. 10DLC-verified business texting at $0.01/segment, integrated with your contact list.
If you got value from this guide, the natural next step (when you're ready) is the same column structure inside an actual CRM — without losing any of the data you've already entered. CrawlSpace CRM was built around this exact 39-column schema, reads and writes to your existing Google Sheet or Excel file as the source of truth, and adds the things spreadsheets can't do: built-in dialer, automated sequences, multi-user without conflicts, real reports, mobile app.
$29.95/month, every feature included, 7-day free trial. If it's not worth it, keep using the spreadsheet — that's why this template stays free. No catch.
Same template structure · Reads/writes your existing sheet · Cancel anytime