CRM Template for Google Sheets and Excel: A Free Sales CRM Spreadsheet With the Fields That Matter

Publish date: Oct 28, 2026
A CRM template is a spreadsheet with one row per contact, one row per deal and the columns your reps need to work them. The one on this page is a free CRM template for Google Sheets with an Excel download, and no form between you and the file.
Its columns are not generic. They follow the five fields I want in front of a rep on my team before a first call. The deal stages follow the seven stages the Spona team tracks in HubSpot, each with the fields a deal must carry before it moves on. The sheet counts what is missing, flags overdue follow-ups and tells you which emails need a fresh check.
Get thousands of leads in 4 minutes.
Stop stitching tools together.
Start with verified sales data, delivered in minutes.
No contracts · No setup · No onboarding
Free CRM template: six tabs in Google Sheets and Excel
Open the free CRM template, choose File, then Make a copy. For Excel, choose File, then Download. There is no email gate. OnePageCRM compared 12 free CRM templates and found six behind a form.
| Tab | What it holds | Who fills it |
| Start here | Eight setup steps, the colour key, HubSpot export notes and the Spona CTA | nobody |
| Dashboard | Deals and value by stage, eight pipeline counts and an owner table | formulas only |
| Contacts | One row per person: 32 columns in the five first-call groups, then owner, next action and source | reps |
| Deals | One row per opportunity: 41 columns, one block of fields per stage | reps |
| Activities | One row per call, email, message or meeting | reps |
| Lists | Stages with their required fields, owners, lead sources, lost reasons and pipelines | the sales lead, once |
Three grey example rows show how the colours work. Delete them before use. Every example domain ends in .example, so no row in the file belongs to a real person.

HubSpot's own CRM template has seven tabs and is pitched at "your first 25-50 customers or leads". Salesflare's Excel CRM is three sheets behind a direct .xlsx link. Vertex42's sheet is licensed for private use only, not for distribution.
None of the three sets required fields per stage, and none records when an email was last verified. This sheet does both.
The five CRM template fields a rep needs before the first call
The Contacts tab is built from Spona's own records: the five things a rep on my team must have on screen before a first call. Each one maps to a group of columns, and four of the five map to fields a Spona export already carries.
| # | Field | Why before the first call | Columns in the sheet | Spona export field |
| 1 | Company and ICP fit | Confirm the target business, size, industry and geography | Company name, Company domain name, Industry, Employee band, Country/Region, ICP fit | Company name; domain; industry; employee band; country |
| 2 | Named decision maker | Reach the person accountable for the buying decision | First name, Last name, Job title, Seniority, Decision maker?, Profile URL | Full name; job title; seniority; professional profile URL |
| 3 | Verified contact route | Use a current email or an appropriately typed phone number | Email, Email status, Phone number, Phone type, Last verified | Work email; verification status/date; business phone/type |
| 4 | Reason to contact now | Tie the conversation to a recent relevant company event | Trigger (why now), Trigger source URL, Trigger checked | Hiring/funding/technology evidence; source URL; last-checked timestamp |
| 5 | Existing workflow and desired volume | Avoid pitching before understanding the current tools and monthly requirement | Current tools, Monthly volume needed | Rep-entered discovery field; not supplied by the data export |
Field 5 is the one a data export cannot fill. A rep learns the current tools and the monthly volume on the call, so the two columns start empty and stay empty until discovery.
The first draft of the sheet stopped at those five groups. My review sent it back with three additions to the first-call view. They are a last-verified date, an opportunity owner and a next-action due date.
Without an owner, nobody chases the row. Without a due date, the sheet cannot tell you what is late. Without a verified date, a bounce is the first sign that an email went stale.
For the ICP fit column, the three values are Strong, Partial and No fit. Define them once with the ideal customer profile template and keep the definition in the Lists tab.
Source and opt-out columns in the CRM template
Four columns at the right of Contacts carry provenance: lead source, date added, do not contact and notes. They exist for the law, not for reporting.
GDPR Article 14 covers people whose data you did not collect from them. You must tell them "from which source the personal data originate". Do it within one month of getting the data, and no later than your first message to them. The lead source and trigger source URL columns answer that question in one glance.
In the UK, the ICO says PECR's email rule "does not apply to corporate subscribers", but sole traders and some partnerships count as individuals. A named business email is still personal data. Before live B2B calls, screen numbers against both the CTPS and TPS registers.
In the US, the FTC's CAN-SPAM guide says "the law makes no exception for business-to-business email". You must honor an opt-out within 10 business days. Each separate email in violation can cost up to $53,088.
That is why Do not contact is a dropdown with one value, Yes. The row stays grey in the sheet instead of being deleted.
Seven sales CRM template stages and the fields each one needs
Most spreadsheet templates list stages and nothing else. Salesforce's example runs "Lead," "Qualified," "Proposal Sent," "Negotiation," "Won/Lost". Smartsheet uses Lead, Qualified, Trial, Contract and Closed. Pipedrive's Excel CRM uses Appointment, Proposal, Negotiation, Pilot and Agreement.
None of them says what a deal must contain before it moves.
The Deals tab uses the seven stages the Spona team tracks in HubSpot, with the required fields for each. The stages sit in the Lists tab, so you can rename them.
| Stage | Required fields | Columns in Deals |
| 1. New | Account domain; contact identity; owner; source/date | Company domain name, Contact email, Deal owner, Created, Lead source |
| 2. ICP qualified | Industry; size; geography; target role; exclusions checked | ICP fit confirmed, Target role, Exclusions checked |
| 3. Discovery complete | Current tools; monthly usable contacts; pain; decision maker; next step | Current tools, Monthly volume needed, Pain, Decision maker, Next step |
| 4. Sample evaluation | Fixed account sample; baseline; success metric; due date | Sample, Baseline, Success metric, Evaluation due |
| 5. Commercial review | Volume; quoted price; approver; decision date; terms | Agreed volume, Amount, Approver, Decision date, Terms |
| 6. Closed won | Accepted order; start date; agreed scope; handoff owner | Order accepted, Start date, Agreed scope, Handoff owner |
| 7. Closed lost / no decision | Reason; competitor; actual decision date; future revisit date if agreed | Lost reason, Competitor, Actual decision date, Revisit date |
Stage 2 reuses the industry, size and geography from the contact row, so its block in Deals holds only the three checks a rep makes: ICP fit confirmed, target role, exclusions checked. Stage 3 is the discovery stage; it is where field 5 of the first-call view gets filled.
The Missing fields column counts the blank required fields at the current stage. A deal moves when the count reads 0. At stages 1 to 5, the current stage's block also turns light blue, a gentler nudge than a locked cell. The B2B sales pipeline guide covers the stages themselves in more depth.
Stage 7 asks for a reason, a competitor and the actual decision date. "None" is a valid competitor. In my experience, lost reasons are the first column to go blank in a spreadsheet CRM, because nobody is paid to fill them in.
How to set up the CRM spreadsheet in six steps
- Copy the file. Make a copy in Google Sheets or download the .xlsx. Rename it with your team's name and work only in that copy.
- Fill the Lists tab. Type your reps in the Owners column. Keep the seven stages or rename them. Set the re-verify period in cell B3; it starts at 90 days.
- Load your contacts. Paste one row per person into Contacts, groups 1 to 5 from left to right. A list from a data tool fills the first four groups; how to build a lead list covers where the rows come from.
- Open your deals. One row per opportunity in Deals, with the domain, the contact email, an owner and a stage. The company name is typed, not looked up, so HubSpot can import it later.
- Log every touch. One row per call, email or meeting in Activities. The Touches column on Contacts counts them by email address.
- Read the Dashboard on Monday. Open deals, open value, win rate, overdue next steps, contacts to re-verify and bounced emails fill in on their own.
The formulas are pre-filled to row 107 on Contacts and Deals. For more rows, select the last formula row and drag it down.
Using Google Sheets as a CRM with your team
Share the copy with Editor access for reps and Viewer access for anyone who only reads the Dashboard. Protect the Lists tab (Data, then Protect sheets and ranges) so a rep cannot rename a stage by accident. Give each rep a filter view on their own owner name, which keeps everyone's sort order separate. Version history under File shows who changed a cell and when.
How to make a CRM in Excel from the download
Open the .xlsx and save it to OneDrive or SharePoint, because co-authoring only works from there. Convert each data tab to a Table (Ctrl+T) so new rows inherit the formulas and the dropdowns. The conditional formats and data validation travel with the file.
Excel turns a typed range such as "1-10" into a date. That is why the employee bands use the word "to" instead of a hyphen.
Google Sheets CRM or CRM Excel template: which one to use
Both files hold the same columns and the same formulas. The choice is about who edits the sheet and from where.
| Google Sheets CRM | Excel CRM template | |
| Size limit | 20 million cells or 100 MB per file | 1,048,576 rows by 16,384 columns |
| Editing together | Several editors at once in the browser, with version history | Several people co-authoring at once, from OneDrive or SharePoint |
| Sharing | A link with Viewer, Commenter or Editor rights | A file, or a SharePoint link |
| Export to HubSpot | File, Download, CSV per tab | Save as CSV per sheet |
| Cost | Free with a Google account | Included with Microsoft 365 |
The limits come from Google's own file size page and Microsoft's Excel specifications. Neither is the real ceiling for a sales team. This template's Contacts tab uses 32 columns. At Google's 20 million cells, that is about 625,000 contact rows.
The spreadsheet gives out as a process long before it gives out as a file.
Google Sheets wins when reps work from laptops, phones and different offices, and when the sales lead wants one link that is always current. Excel wins when the team already lives in Microsoft 365, or when IT will not allow company data in Google Drive. If you convert the .xlsx to Google Sheets later, any cell with more than 50,000 characters is removed. That only matters for pasted call notes.
CRM spreadsheet formulas that flag overdue follow-ups and stale contacts
Five formulas do the work. Each uses only functions that exist in both Google Sheets and Excel, with no array formulas and no macros. Vertex42's last-contact calculation needs an array formula or MAXIFS; the sheet uses neither, so it converts cleanly in both directions.
| Column | Formula (row 8) | What it tells you |
| Contacts, Follow-up | `=IF(M8&G8="","",IF(AE8="Yes","Do not contact",IF(Y8="","No next action",IF(Y8<TODAY(),"Overdue",IF(Y8=TODAY(),"Due today","Upcoming")))))` | Whether the next action is overdue, due today or upcoming |
| Contacts, Verification | `=IF(M8="","",IF(N8="Bounced","Bounced",IF(Q8="","Not verified",IF(TODAY()-Q8>Lists!$B$3,"Re-verify","OK"))))` | Whether the email was verified within the period set in Lists!B3 |
| Contacts, Touches | `=IF(M8="","",COUNTIF(Activities!$B$8:$B$2007,M8))` | How many activities carry this email |
| Deals, Stage no. | `=IF(G8="","",(G8=Lists!$A$7)+(G8=Lists!$A$8)*2+...+(G8=Lists!$A$13)*7)` | The stage as a number, which the colours and the missing-field count key on |
| Deals, Missing fields | `=IF(M8="","",(M8=1)*(5-COUNTA(B8,D8,E8,O8,P8))+(M8=2)*(3-COUNTA(Q8:S8))+...)` | How many required fields are blank at the current stage |

The 90-day re-verify period is a template setting, not a benchmark. Set it from your own bounce data. The reason to set one at all is job movement.
The median US employee has been with the current employer 3.9 years, and 3.5 years in the private sector. Spread across a list, that is a steady trickle of addresses going dead every month. The data hygiene guide sets a refresh cadence in days.
The Verification column treats a bounce as final. A contact whose email bounced keeps the row, loses the email and gets a new one through CRM data enrichment, not through guessing.
The Dashboard uses COUNTIF, COUNTIFS and SUMIFS over the Deals and Contacts tabs. The seven stage rows are wired into the formulas, so rename a stage in Lists rather than adding an eighth.
When a CRM spreadsheet stops working: importing it into HubSpot
A spreadsheet CRM fails as a process, not as a file. Salesforce lists five upgrade signs: data volume, automation, a single customer view, reporting and mobile access. OnePageCRM and Pipedrive both put the switch at 50 to 100 contacts, and neither cites data for it. The better test is behaviour.
Move when two reps edit the same row in the same week. Move when a follow-up needs an automatic email rather than a red cell. Move when the sales lead rebuilds the Dashboard every Monday because the counts stopped matching.
The move is cheap. HubSpot's free CRM costs $0 a month for up to 2 users, with no credit card. A free account holds up to 1,000 contacts. The template is laid out so that its Contacts and Deals tabs export as two HubSpot import files.
Importing contacts from Excel to a CRM: HubSpot's rules
HubSpot's import file rules are strict about shape. A file must be .csv, .xlsx or .xls and contain only one sheet, so export Contacts and Deals separately. Contacts need an Email column. Companies need a Name or a Company domain name.
New deals need Deal name, Pipeline and Deal stage. The stage names must match the options in your HubSpot pipeline, so create the seven stages there first.
| Rule | What to do in the sheet |
| One sheet per file | Download Contacts and Deals as two CSV files |
| Contacts need Email | Column M, named Email, is the identifier |
| Deals need Deal name, Pipeline and Deal stage | Columns A, F and G, with the Lists values |
| Dropdown values must match a label | Rename stages, lead sources and lost reasons in Lists to match HubSpot |
| Owners by name, email or owner value | Type owners in Lists exactly as they appear in HubSpot |
| Blank cells do not clear values | Fine for a first import; mind it on re-imports |
| Free tools: 20 MB a file, 50 imports and 500,000 rows a day | Far above what this sheet will reach |
Skip the formula columns on import: Follow-up, Verification, Touches, Stage no., Missing fields and Days open. HubSpot has its own stage, task and activity properties.
The three columns my review added (Last verified, Opportunity owner, Next action due) become custom date and user properties. They are the first three worth creating.
Filling the CRM template with verified leads: where Spona fits
Most columns in the first four groups of Contacts are fields a Spona export carries. You describe your ideal customer in a chat; the AI mines 40+ sources, verifies every lead and delivers a scored list in about 4 minutes. Every search starts with a free sample, and the free plan holds 3,000 one-time credits.
On a paid plan, export the rows as CSV and paste them into Contacts. The Verification column then reads OK on day one, because the last-verified date arrives with the row.
On Spona's pricing, a Standard Search lead with email only costs 3 to 7 credits. That is $0.024 to $0.07 a lead. A new search session costs 1,000 credits. That is $8 to $10, depending on the plan.
Enriching a list you already hold costs 3 credits for company data and 5 for a verified email. Spona's exclusion lists can hold the Do not contact rows, so they stay out of the next search.
Where it does not fit:
- Spona does not sync to Google Sheets. The HubSpot integration is its only native CRM connection, and CSV export comes with the paid plans. For this sheet, that CSV is the route in.
- Field 5, current tools and monthly volume, is rep-entered. No export supplies it, Spona's included.
- Spona finds and verifies the people. It does not run the deal. Automation, sequences and a mobile app belong to a CRM product, or to an app builder such as Airtable or Softr.
- A column this sheet lacks, such as a legal basis per contact, is best added before the first import, not after.
Get thousands of leads in 4 minutes.
Stop stitching tools together.
Start with verified sales data, delivered in minutes.
No contracts · No setup · No onboarding
CRM template FAQ
What is a CRM template?
A CRM template is a spreadsheet laid out to track customers and deals. It holds one row per contact and one row per deal, with columns for the stage, the owner, the next action and its due date. Good ones add dropdowns, a dashboard and rules that flag overdue work. The sheet on this page is one, with six tabs and the stages pre-set.
Can I create a CRM in Excel?
Yes. Excel handles dropdowns, conditional formats, COUNTIFS and co-authoring from OneDrive, which is everything a contact and deal tracker needs. The download on this page is a finished Excel CRM template, so you do not have to build the formulas yourself. The limits are the ones every spreadsheet has: no automation and no sequences.
Can I build my own CRM for free?
Yes, two ways: a Google Sheets or Excel template costs nothing beyond the account you already have. HubSpot's free CRM costs $0 a month for up to 2 users, with no credit card. Its free account holds up to 1,000 contacts. A sound path is to start with the sheet and import it into HubSpot once two or more people share the same deals.
Is Excel or Google Sheets a CRM?
Not on its own. A spreadsheet becomes a CRM when it has stages with rules, an owner and a next action per row, and a log of touches. It stops being one when it needs automation, permissions per record or an audit trail, which is where a CRM product takes over.
What is the best template for a CRM?
The best CRM template matches your stages and counts what is missing before a deal moves. It dates every follow-up and records where each contact came from. Its headers should match the CRM you will import into later, so the move is a CSV export rather than a rebuild. Check those four points before you check the colour scheme.
Is there a free CRM template available in Excel?
Yes. The file on this page downloads as .xlsx from the Google Sheet, with the same six tabs, dropdowns and formulas. Salesflare and Vertex42 also offer free Excel CRM templates; Vertex42's is for private use only, and neither sets required fields per stage.
Share this article
GET FREE LEADS





