Skip to main content

Send personalized emails from Google Sheets via SMTP

Workflow preview

Workflow preview
100%
Send personalized emails from Google Sheets via SMTP preview
Open on n8n.io

1. Workflow Overview

What problem does this solve? This workflow automates sending personalized emails using a contact list stored in Google Sheets and a professional SMTP email account. It removes manual work such as ...

Best for

  • Social Media automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.scheduletrigger, n8n-nodes-base.googlesheets, n8n-nodes-base.splitinbatches, n8n-nodes-base.if, n8n-nodes-base.set, n8n-nodes-base.emailsend, n8n-nodes-base.wait, 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 shivam gandhi.

Original n8n.io source

1.1 Workflow description

Title
Send personalized emails from Google Sheets via SMTP
Workflow name
Send personalized emails from Google Sheets via SMTP

What problem does this solve?

This workflow automates sending personalized emails using a contact list stored in Google Sheets and a professional SMTP email account.

It removes manual work such as identifying who should receive an email, filtering no-show or specific leads, avoiding duplicate sends, and updating records after emails are sent. The entire process runs automatically in a controlled and repeatable way.

This is useful when you want to send targeted emails without using a full email marketing platform.

How this workflow operates

This workflow works with any type of email list stored in Google Sheets and sends emails based on conditions you define.

  1. No-show workshop or webinar attendees Mark contacts as No-Show in the sheet and the workflow will send personalized follow-up emails only to those contacts.

  2. Cold email lists Use the same workflow for cold outreach by adjusting the filter condition (for example, status = “Cold”).

  3. Old or re-engagement lists Re-engage inactive contacts by updating their status (for example, “Re-engage” or “Inactive”) and running the workflow.

  4. Custom filtering logic The filter conditions can be customized to match any column value (status, tag, campaign, or label), giving you full control over who receives emails.

In all cases, emails are sent one by one, duplicate sends are prevented, and Google Sheets is updated after each successful send.

What does it do?

  1. Fetches contact data from Google Sheets

  2. Processes contacts one by one to ensure safe delivery

  3. Filters contacts based on a no-show or custom status

  4. Checks whether an email has already been sent

  5. Sends personalized emails via SMTP

  6. Adds a delay between emails to respect provider limits

  7. Updates Google Sheets to mark emails as sent

Key features

  • Google Sheets–based contact management

  • SMTP email sending (works with any professional provider)

  • No-show and status-based filtering

  • Built-in duplicate email prevention

  • Configurable delay between emails

  • Beginner-friendly and easy to customize

  • No external email marketing tools required

Ideal for

  • Marketers sending follow-ups or reminders

  • Sales teams running targeted outreach

  • Coaches and course creators following up with attendees

  • Founders and small teams managing email outreach via spreadsheets

  • Anyone who wants simple, rule-based email automation

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 - Start email automation

Type / Role
n8n-nodes-base.scheduleTrigger - scheduleTrigger
Config choices
Version 1.3

Block 2 - Fetch contacts from Google Sheets

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

Block 3 - Process contacts one by one

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

Block 4 - Check no-show status

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

Block 5 - Check if email already sent

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

Block 6 - Prepare email content

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

Block 7 - Send email via SMTP

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

Block 8 - Delay between emails

Type / Role
n8n-nodes-base.wait - wait
Config choices
Version 1.1

Block 9 - Mark email as sent in sheet

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

Block 10 - Sticky Note11

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

Block 11 - Sticky Note

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

Block 12 - Sticky Note13

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

Block 13 - Sticky Note1

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

Block 14 - Sticky Note2

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

Block 15 - Sticky Note4

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

Block 16 - Sticky Note5

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

Block 17 - Sticky Note12

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

3. Summary Table

Workflow Send personalized emails from Google Sheets via SMTP
Complexity advanced
Nodes 17
Categories Social Media
Author shivam gandhi
Published 25 Jan 2026

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/12982/12982.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 Send personalized emails from Google Sheets via SMTP do?

What problem does this solve? This workflow automates sending personalized emails using a contact list stored in Google Sheets and a professional SMTP email account. It removes manual work such as ...

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 Social Media use case.