Skip to main content

Automated lead-to-client pipeline with Google Sheets email notifications & time tracking

Workflow preview

Workflow preview
100%
Automated lead-to-client pipeline with Google Sheets email notifications & time tracking preview
Open on n8n.io

Important notice

This workflow is provided as-is. Please review and test before using in production.

1. Workflow Overview

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 y...

Best for

  • CRM automation workflows
  • Multimodal AI automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.webhook, n8n-nodes-base.set, n8n-nodes-base.gmail, n8n-nodes-base.if, n8n-nodes-base.datetime, n8n-nodes-base.googlesheets, n8n-nodes-base.code, n8n-nodes-base.stickynote

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Ziad Adel.

Original n8n.io source

1.1 Workflow description

Title
Automated lead-to-client pipeline with Google Sheets email notifications & time tracking
Workflow name
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

  1. 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
  2. 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

  1. Copy/prepare the Google Sheet

    • Ensure both Leads and Clients tabs exist with the columns above.
  2. 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.
  3. 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}}
  4. Connect credentials

    • Authorize Google Sheets OAuth2 and Gmail OAuth2 (or switch to SMTP/another email node).
  5. 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

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Webhook: Lead Stage Changed

Type / Role
n8n-nodes-base.webhook - webhook
Config choices
Version 1

Block 2 - Prepare Email Fields

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3

Block 3 - Gmail: Send Stage-Change Email

Type / Role
n8n-nodes-base.gmail - gmail
Config choices
Version 2

Block 4 - IF: Stage == Won

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2

Block 5 - Format Start Timestamp

Type / Role
n8n-nodes-base.dateTime - dateTime
Config choices
Version 1

Block 6 - GS: Clients Append (On Won)

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4

Block 7 - Webhook: Lead Qualified?

Type / Role
n8n-nodes-base.webhook - webhook
Config choices
Version 1

Block 8 - IF: Is Qualified

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2

Block 9 - Gmail: Send Cal.com Invite

Type / Role
n8n-nodes-base.gmail - gmail
Config choices
Version 2

Block 10 - GS: Leads Update Stage to Meeting Booked

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4

Block 11 - Webhook: Client Status Changed

Type / Role
n8n-nodes-base.webhook - webhook
Config choices
Version 1

Block 12 - IF: Delivered?

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2

Block 13 - GS: Clients Lookup by Email

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4

Block 14 - Format End Timestamp

Type / Role
n8n-nodes-base.dateTime - dateTime
Config choices
Version 1

Block 15 - GS: Clients Update End & Duration

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4

Block 16 - Code

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 17 - If

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.2

Block 18 - Webhook: Meeting Booked

Type / Role
n8n-nodes-base.webhook - webhook
Config choices
Version 2.1

Block 19 - Sticky Note

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 20 - Sticky Note1

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 21 - Sticky Note2

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 22 - Sticky Note3

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 23 - Sticky Note4

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 24 - Sticky Note5

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

3. Summary Table

Workflow Automated lead-to-client pipeline with Google Sheets email notifications & time tracking
Complexity advanced
Nodes 24
Categories CRM, Multimodal AI
Author Ziad Adel
Published 17 Aug 2025

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/7514/7514.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Automated lead-to-client pipeline with Google Sheets email notifications & time tracking do?

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 y...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your CRM, Multimodal AI use case.