How to Set Up Google Sheets as Your Free CRM with n8n
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:
- Customer database (name, email, phone, etc.)
- Purchase history tracking
- Last contact date
- Customer tags/segments
- Automated data entry from website/store
- 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
| Column | Type | Example |
|---|---|---|
| Customer ID | Auto-number | 1 |
| Text | [email protected] | |
| Name | Text | John Doe |
| Phone | Text | +1-555-0123 |
| First Purchase Date | Date | 2025-03-15 |
| Last Purchase Date | Date | 2025-10-20 |
| Total Orders | Number | 5 |
| Total Spent | Currency | $487 |
| Tags | Text | VIP, Newsletter |
| Last Contact | Date | 2025-11-01 |
| Source | Text | Website Form |
| Status | Dropdown | Active, Inactive, Churned |
| Notes | Text | Prefers email contact |
Sheet 2: Orders
| Column | Example |
|---|---|
| Order ID | ORD-1001 |
| Customer Email | [email protected] |
| Date | 2025-10-20 |
| Amount | $97 |
| Product | Course Bundle |
| Status | Completed |
Sheet 3: Interactions
| Column | Example |
|---|---|
| Date | 2025-11-01 |
| Customer Email | [email protected] |
| Type | Email Sent |
| Notes | Welcome sequence - email 2 |
Step 2: Build n8n Automation Workflows
Workflow 1: New Customer from Website Form
Trigger: Webhook (form submission) Actions:
- Check if customer exists in Sheet
- If new: Add row to Customers sheet
- If existing: Update last contact date
- Send welcome email
- 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:
- Add order to Orders sheet
- Update customer’s Total Orders and Total Spent
- Update Last Purchase Date
- Check if qualifies for VIP tag (>$500 spent)
- 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:
- Find customers with Last Purchase > 90 days ago
- Tag as “At Risk”
- Add to win-back campaign list
- 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 →
More Posts You'll Love
Based on your interests and activity