Automated Lead-to-Client Pipeline with Google Sheets Email Notifications & Time Tracking

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

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 client-status-changed If Delivered → lookup client row → stamp End Date & Time → compute Time to Deliver → update row

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-changed https://{{YOUR_N8N_DOMAIN}}/webhook/lead-qualified https://{{YOUR_N8N_DOMAIN}}/webhook/client-status-changed Run createInstallableTrigger() once to enable onEdit.

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 gid from the URL; update placeholders.
Credential errors**: Re-authorize Google Sheets/Gmail OAuth2 in n8n.
Wrong first name: Ensure Name in **Leads follows First Last; the workflow splits the first token.

Video Walkthrough Demo

Screen Studio Template Demo Video

0
Downloads
0
Views
8.32
Quality Score
beginner
Complexity
Author:Ziad Adel(View Original →)
Created:9/10/2025
Updated:10/17/2025

🔒 Please log in to import templates to n8n and favorite templates

Workflow Visualization

Loading...

Preparing workflow renderer

Comments (0)

Login to post comments