How to Set Up Google Sheets as Your Free CRM with n8n

Mike Holownych
#n8n #crm #automation #google-sheets

Quick answer: Replace $50-300/month CRM with Google Sheets + n8n. Tracks customers, purchases, and automates segmentation.

Total cost: $0 (Google Sheets free, n8n free if self-hosted).

Why Google Sheets as CRM?

Traditional CRM costs:

  • HubSpot: $50/month (2 users)
  • Salesforce: $25/user/month
  • Pipedrive: $15/user/month

Google Sheets + n8n:

  • Cost: $0
  • Unlimited records
  • Custom fields
  • Full control of data

Trade-offs:

  • Less polished UI
  • Manual reporting (unless automated)
  • No built-in email sequences (use n8n)

Best for: Businesses with less than 1,000 customers or tight budgets.


What You’ll Build

CRM features:

  1. Customer database (name, email, phone, etc.)
  2. Purchase history tracking
  3. Last contact date
  4. Customer tags/segments
  5. Automated data entry from website/store
  6. Automated follow-up triggers

Example use cases:

  • Track all customers from DashNex store
  • Log interactions automatically
  • Segment by purchase behavior
  • Trigger win-back campaigns for inactive customers

Step 1: Set Up Google Sheet Structure

Create new Google Sheet:

Sheet 1: Customers

ColumnTypeExample
Customer IDAuto-number1
EmailText[email protected]
NameTextJohn Doe
PhoneText+1-555-0123
First Purchase DateDate2025-03-15
Last Purchase DateDate2025-10-20
Total OrdersNumber5
Total SpentCurrency$487
TagsTextVIP, Newsletter
Last ContactDate2025-11-01
SourceTextWebsite Form
StatusDropdownActive, Inactive, Churned
NotesTextPrefers email contact

Sheet 2: Orders

ColumnExample
Order IDORD-1001
Customer Email[email protected]
Date2025-10-20
Amount$97
ProductCourse Bundle
StatusCompleted

Sheet 3: Interactions

ColumnExample
Date2025-11-01
Customer Email[email protected]
TypeEmail Sent
NotesWelcome sequence - email 2

Step 2: Build n8n Automation Workflows

Workflow 1: New Customer from Website Form

Trigger: Webhook (form submission) Actions:

  1. Check if customer exists in Sheet
  2. If new: Add row to Customers sheet
  3. If existing: Update last contact date
  4. Send welcome email
  5. Notify Slack

n8n nodes:

Webhook → Google Sheets (Lookup) → IF node → Google Sheets (Append/Update) → SendGrid → Slack

Workflow 2: New Order Tracking

Trigger: Webhook (new order from store) Actions:

  1. Add order to Orders sheet
  2. Update customer’s Total Orders and Total Spent
  3. Update Last Purchase Date
  4. Check if qualifies for VIP tag (>$500 spent)
  5. Log interaction

n8n nodes:

Webhook → Google Sheets (Append to Orders) → Google Sheets (Update Customer) → Function (Calculate totals) → Google Sheets (Update tags)

Workflow 3: Inactive Customer Detection

Trigger: Schedule (weekly) Actions:

  1. Find customers with Last Purchase > 90 days ago
  2. Tag as “At Risk”
  3. Add to win-back campaign list
  4. Send Slack notification

n8n nodes:

Schedule → Google Sheets (Read all) → Function (Filter inactive) → Google Sheets (Update Status) → Slack

Step 3: Customer Segmentation

Automated tags:

By Spending:

  • VIP: Over $500 total
  • Regular: $100-500
  • New: Under $100

By Activity:

  • Active: Purchased in last 30 days
  • At Risk: 30-90 days since purchase
  • Churned: >90 days since purchase

By Source:

  • Organic: Direct website
  • Paid: Ad campaigns
  • Referral: Referred by existing customer

n8n Function node to calculate tags:

const totalSpent = $json.totalSpent;
const daysSinceLastPurchase = Math.floor((Date.now() - new Date($json.lastPurchaseDate)) / (1000 * 60 * 60 * 24));

let tags = [];

// Spending tags
if (totalSpent > 500) tags.push('VIP');
else if (totalSpent > 100) tags.push('Regular');
else tags.push('New');

// Activity tags
if (daysSinceLastPurchase < 30) tags.push('Active');
else if (daysSinceLastPurchase < 90) tags.push('At-Risk');
else tags.push('Churned');

return [{
  json: {
    email: $json.email,
    tags: tags.join(', ')
  }
}];

Step 4: Automated Reporting

Daily Summary Email

n8n workflow:

Schedule (Daily, 8am)
→ Google Sheets (Count customers by status)
→ Calculate metrics
→ Format HTML email
→ Send via SendGrid

Metrics to track:

  • New customers (last 24 hours)
  • Total active customers
  • At-risk customers needing follow-up
  • Total revenue (last 24 hours)
  • Top customers by spend

Step 5: Advanced Features

Customer Lifetime Value (CLV) Calculation

Add column to Customers sheet:

= Total Spent / (TODAY() - First Purchase Date) * 365

This estimates annual customer value.

Churn Prediction

Flag customers likely to churn:

  • No purchase in 60+ days
  • Only 1 purchase ever
  • Low engagement with emails

RFM Analysis (Recency, Frequency, Monetary)

Score customers 1-5 on:

  • Recency: How recently they purchased
  • Frequency: How often they purchase
  • Monetary: How much they spend

Best customers: High scores in all three.


Real Cost Comparison

Google Sheets CRM + n8n

Year 1 costs:

Google Sheets: $0 (free up to 15GB)
n8n hosting: $60/year (self-hosted on VPS)
Total: $60/year

Traditional CRM

HubSpot CRM:

Free plan: Limited features
Starter: $50/month = $600/year
Professional: $890/month

Pipedrive:

Essential: $15/user/month = $180/year
Advanced: $29/user/month = $348/year

Savings: $120-840/year


Limitations & Workarounds

Limitation 1: No built-in email sequences → Build with n8n (wait nodes + SendGrid)

Limitation 2: Manual data entry → Automate everything with n8n webhooks

Limitation 3: No mobile app → Use Google Sheets mobile app (decent)

Limitation 4: Limited to 5 million cells → Upgrade to Google Workspace ($6/user/month) for 10 million cells

Limitation 5: No deal pipeline visualization → Use Trello integration or stick with simple status column


When to Upgrade to Real CRM

Upgrade when:

  • ✅ >1,000 active customers
  • ✅ Need sales pipeline management
  • ✅ Multi-person team (>5 people)
  • ✅ Complex sales cycles
  • ✅ Need built-in phone/email tracking

Stick with Sheets when:

  • ✅ less than 1,000 customers
  • ✅ Solo or small team
  • ✅ Simple sales process
  • ✅ Budget-conscious

FAQ

Q: Can Google Sheets handle 10,000 customers?

Yes, but it gets slow. Under 5,000 customers is comfortable. Over that, consider Airtable (better for large datasets).

Q: What about data privacy/GDPR?

Google Sheets is GDPR compliant. Ensure you:

  • Have customer consent to store data
  • Can delete data on request
  • Encrypt sensitive data
  • Limit team access

Q: Can I migrate to real CRM later?

Yes. Export as CSV, import to any CRM. Most CRMs support CSV imports.

Q: Is this better than Airtable?

Airtable has better UI and performance for large datasets. But costs $20/user/month. Google Sheets is free.


Related posts:


About the author: I’m Mike Holownych, an automation consultant. I help entrepreneurs replace expensive SaaS with smart automation. Learn more →

MH

About Mike Holownych

I help entrepreneurs build self-running businesses with DashNex + automation. n8n automation expert specializing in e-commerce, affiliate marketing, and business systems.