Google Sheet Automated CRM (n8n)
$0+
https://schema.org/InStock
usd
Ziad Adel
Google Sheets CRM Automations: Lead Stages → Emails, Client Tracking & Delivery Duration
Turn a simple Google Sheet into a lightweight CRM powered by n8n.
Overview
This template monitors edits in your Leads and Clients tabs and reacts automatically:
- Qualified? → sends a Cal.com booking email
- Stage → Awaiting Proposal → sends a “proposal coming soon” email
- Stage → Won → appends the client to Clients with a Start Date & Time
-
Clients: Project Status → Delivered → stamps End Date & Time and computes Time to Deliver (e.g.,
2d 5h 30m)
What This Template Does
- Lead Qualification → Email: When you mark Qualified? in Leads, a booking email is sent automatically.
- Awaiting Proposal → Email: Sends a heads-up email that a proposal is coming soon.
- Won → Client Append: Adds the client to Clients and records the start timestamp.
- Delivered → Completion Metrics: Looks up the client, stamps the end timestamp, and calculates the delivery duration.
How It Works
-
Google Apps Script → Webhooks (onEdit)
- A small Apps Script (provided in the workflow’s Sticky Note) watches the sheet and posts JSON to these n8n webhooks:
/webhook/lead-stage-changed/webhook/lead-qualified/webhook/client-status-changed
- A small Apps Script (provided in the workflow’s Sticky Note) watches the sheet and posts JSON to these n8n webhooks:
-
n8n Flow & Branching
-
lead-stage-changed
- If Awaiting Proposal → send proposal heads-up email
- If Won → format timestamp → append to Clients
-
lead-qualified
- If
qualified = true→ send Cal.com booking email
- If
-
client-status-changed
- If Delivered → lookup client row → stamp End Date & Time → compute Time to Deliver → update row
-
lead-stage-changed
Prerequisites
- Google Sheet with two tabs: Leads and Clients
- Gmail account (or use your preferred email/notification node)
- n8n instance with:
- Google Sheets OAuth2 credentials
- Gmail OAuth2 credentials (if using the Gmail node)
Suggested columns
-
Leads:
Name (A),Client Email (C),Lead Source (D),Stage (E),Qualified? (H) -
Clients:
Name (A),Client Email (C),Project Status (D),Start Date & Time (F),End Date & Time (G),Time to Deliver (H)
Setup Steps
-
Copy/prepare the Google Sheet
- Ensure both Leads and Clients tabs exist with the columns above.
-
Install the Apps Script
- In Google Sheets: Extensions → Apps Script → paste the script from the workflow’s Sticky Note.
- Replace webhook URLs with your n8n endpoints:
https://{{YOUR_N8N_DOMAIN}}/webhook/lead-stage-changedhttps://{{YOUR_N8N_DOMAIN}}/webhook/lead-qualifiedhttps://{{YOUR_N8N_DOMAIN}}/webhook/client-status-changed
- Run
createInstallableTrigger()once to enableonEdit.
-
Open the workflow in n8n & replace placeholders
{{GOOGLE_SHEETS_DOC_ID}}{{LEADS_GID}}{{CLIENTS_GID}}{{CAL_COM_BOOKING_URL}}{{SENDER_NAME}}-
{{GMAIL_CREDENTIAL_ID}},{{GMAIL_CREDENTIAL_NAME}} -
{{GSHEETS_CREDENTIAL_ID}},{{GSHEETS_CREDENTIAL_NAME}}
-
Connect credentials
- Authorize Google Sheets OAuth2 and Gmail OAuth2 (or switch to SMTP/another email node).
-
Activate & test
- Toggle Qualified? on a test row or change Stage to Awaiting Proposal/Won.
- Verify the email, client append, and duration updates flow end-to-end.
Customization Ideas
- Swap Gmail with SMTP, Outlook, or Slack messages.
- Add a Stage = Lost branch to trigger a re-engagement sequence.
- Add guards to prevent duplicate appends to Clients.
- Localize email copy and date formats.
Troubleshooting
-
Nothing triggers: Confirm Apps Script URLs and that
createInstallableTrigger()was run. -
Wrong tab/GID: Open each tab and copy its
gidfrom the URL; update placeholders. - Credential errors: Re-authorize Google Sheets/Gmail OAuth2 in n8n.
-
Wrong first name: Ensure
Namein Leads followsFirst Last; the workflow splits the first token.
Add to wishlist