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

CRM template cover: a free sales CRM spreadsheet for Google Sheets and Excel with contacts, deals, activities and a dashboard
AUTHOR:
REVIEWER:

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.

The Extractor
The Refiner
The Verifier
The Exporter

Get thousands of leads in 4 minutes.

Stop stitching tools together.
Start with verified sales data, delivered in minutes.

SCALE SALES NOW

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.

TabWhat it holdsWho fills it
Start hereEight setup steps, the colour key, HubSpot export notes and the Spona CTAnobody
DashboardDeals and value by stage, eight pipeline counts and an owner tableformulas only
ContactsOne row per person: 32 columns in the five first-call groups, then owner, next action and sourcereps
DealsOne row per opportunity: 41 columns, one block of fields per stagereps
ActivitiesOne row per call, email, message or meetingreps
ListsStages with their required fields, owners, lead sources, lost reasons and pipelinesthe 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.

CRM template map: Lists feeds the dropdowns, Contacts, Deals and Activities join on three keys, the Dashboard counts them

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.

#FieldWhy before the first callColumns in the sheetSpona export field
1Company and ICP fitConfirm the target business, size, industry and geographyCompany name, Company domain name, Industry, Employee band, Country/Region, ICP fitCompany name; domain; industry; employee band; country
2Named decision makerReach the person accountable for the buying decisionFirst name, Last name, Job title, Seniority, Decision maker?, Profile URLFull name; job title; seniority; professional profile URL
3Verified contact routeUse a current email or an appropriately typed phone numberEmail, Email status, Phone number, Phone type, Last verifiedWork email; verification status/date; business phone/type
4Reason to contact nowTie the conversation to a recent relevant company eventTrigger (why now), Trigger source URL, Trigger checkedHiring/funding/technology evidence; source URL; last-checked timestamp
5Existing workflow and desired volumeAvoid pitching before understanding the current tools and monthly requirementCurrent tools, Monthly volume neededRep-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.

StageRequired fieldsColumns in Deals
1. NewAccount domain; contact identity; owner; source/dateCompany domain name, Contact email, Deal owner, Created, Lead source
2. ICP qualifiedIndustry; size; geography; target role; exclusions checkedICP fit confirmed, Target role, Exclusions checked
3. Discovery completeCurrent tools; monthly usable contacts; pain; decision maker; next stepCurrent tools, Monthly volume needed, Pain, Decision maker, Next step
4. Sample evaluationFixed account sample; baseline; success metric; due dateSample, Baseline, Success metric, Evaluation due
5. Commercial reviewVolume; quoted price; approver; decision date; termsAgreed volume, Amount, Approver, Decision date, Terms
6. Closed wonAccepted order; start date; agreed scope; handoff ownerOrder accepted, Start date, Agreed scope, Handoff owner
7. Closed lost / no decisionReason; competitor; actual decision date; future revisit date if agreedLost 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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Log every touch. One row per call, email or meeting in Activities. The Touches column on Contacts counts them by email address.
  6. 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 CRMExcel CRM template
Size limit20 million cells or 100 MB per file1,048,576 rows by 16,384 columns
Editing togetherSeveral editors at once in the browser, with version historySeveral people co-authoring at once, from OneDrive or SharePoint
SharingA link with Viewer, Commenter or Editor rightsA file, or a SharePoint link
Export to HubSpotFile, Download, CSV per tabSave as CSV per sheet
CostFree with a Google accountIncluded 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.

ColumnFormula (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
CRM template status ladders: the follow-up and verification checks in order, with the colour each outcome gets

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.

RuleWhat to do in the sheet
One sheet per fileDownload Contacts and Deals as two CSV files
Contacts need EmailColumn M, named Email, is the identifier
Deals need Deal name, Pipeline and Deal stageColumns A, F and G, with the Lists values
Dropdown values must match a labelRename stages, lead sources and lost reasons in Lists to match HubSpot
Owners by name, email or owner valueType owners in Lists exactly as they appear in HubSpot
Blank cells do not clear valuesFine for a first import; mind it on re-imports
Free tools: 20 MB a file, 50 imports and 500,000 rows a dayFar 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.
The Extractor
The Refiner
The Verifier
The Exporter

Get thousands of leads in 4 minutes.

Stop stitching tools together.
Start with verified sales data, delivered in minutes.

SCALE SALES NOW

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 LEADSSparkle

Similar Topics For You

see all texts