Automated Cold Email Bulk Sender Using Google Sheets and Gmail - n8n Workflow

Deploy this powerful n8n workflow to automate bulk cold email campaigns directly from a Google Sheet. Features scheduled sending, delay management, and dynamic tracking using the n8n trigger.

Workflow Preview

Ready to automate?

Download this n8n workflow template and start using it instantly.

Who is this best for?

Sales professionals needing to manage large, automated cold outreach campaigns.
Marketers looking for a customizable, self-hosted email automation solution.
n8n users who need reliable, tracked email delivery integrated with Google Sheets.
Anyone seeking efficient n8n templates for data synchronization and periodic execution.

Overview

This robust n8n workflow solves the challenge of manually running large-scale cold email campaigns. By leveraging Google Sheets as the central database, it ensures that your contact list, email subjects, and bodies are easily manageable. The automation runs on a set schedule using an n8n trigger, retrieving only the contacts marked as 'Not Sent'. After successfully dispatching an email via the Gmail n8n node, the corresponding row is instantly updated with the send status, timestamp, and message ID. This continuous loop prevents duplicate sends and provides a critical audit trail, making this one of the most effective n8n templates for sales and outreach teams. This specific n8n workflow is designed for high reliability and controlled sending volumes.

How it Works

The execution starts with the Set Timer n8n trigger, configured to run every six hours.


  1. Data Retrieval: The Get Emails Google Sheets n8n node retrieves all rows where the "Email Sent" column is marked "No".

  2. Volume Control: The data then passes through the Limit n8n node, allowing the user to cap the number of emails processed per execution, crucial for respecting sending limits.

  3. Iteration: The Loop Over Items n8n node processes each email address individually by splitting the data into single batches.

  4. Validation: An If n8n node checks if an "Email Address" actually exists for the current record, ensuring no resources are wasted attempting to send to blank fields.

  5. Sending: If valid, the Send Email (Gmail) n8n node dispatches the personalized cold email, using dynamic data mapping for the subject and body sourced from the Google Sheet data.

  6. Tracking & Update: The Update Records Google Sheets n8n node marks the row as "Yes," recording the exact current timestamp and the unique Gmail message ID provided by the previous n8n node.

  7. Rate Limiting: The Wait n8n node introduces a 10-second delay after the record update before the n8n workflow returns to the Loop Over Items node to process the next item, helping to manage sending throughput and avoid hitting external rate limits.

Installation Guide

To deploy this comprehensive n8n workflow, follow these steps:


  1. Import the n8n Workflow: Copy the provided JSON and import it directly into your n8n instance.

  2. Google Sheet Setup: Duplicate the required Google Sheet Template (as referenced in the sticky notes within the n8n workflow structure).

  3. Credential Setup: Configure the required credentials for both Google Sheets and Gmail (or SMTP if using the alternative path).

For the Get Emails and Update Records n8n nodes, link your Google Sheets OAuth2 API credentials.
For the Send Email n8n node, link your Gmail OAuth2 credentials.

  1. Configuration: Update the Get Emails and Update Records n8n nodes to point to the Document ID and Sheet Name of your newly duplicated Google Sheet.

  2. Scheduling: Adjust the Set Timer n8n trigger to the desired interval for running the bulk sender (default is every 6 hours).

  3. Activation: Once all credentials and configurations are set, activate the n8n workflow to begin automated execution based on the n8n trigger schedule.

Node Details

Set Timer (n8n trigger): Defines the schedule for the n8n workflow execution. Key configuration: Runs every 6 hours.
Get Emails (Google Sheets n8n node): Retrieves potential cold email recipients from the specified Google Sheet. Key configuration: Filters for records where 'Email Sent' column equals 'No'.
Limit (n8n node): Flow control mechanism to restrict the maximum number of items processed per execution run. Key configuration: Default limit is disabled, but can be set to manage sending volume.
Loop Over Items (n8n node): Splits the incoming list of recipients into individual batches (size 1), allowing the rest of the n8n workflow to process one email at a time.
If (n8n node): Conditional routing. Checks if the Email Address field exists in the data payload before proceeding to send the email.
Send Email (Gmail n8n node): Sends the personalized email using configured Gmail credentials. Key configuration: Uses expressions ={{ $json['Email Address '] }} for the recipient, ={{ $json['Email Subject'] }} for the subject, and ={{ $json['Email Body'] }} for the message content.
Update Records (Google Sheets n8n node): Writes back the results of the successful send operation to the sheet. Key configuration: Appends or updates the row, setting 'Email Sent' to 'Yes', 'Sent on' to the current time, and recording the 'Message Id'.
Wait (n8n node): Introduces a delay in the flow to help manage sending rates. Key configuration: Waits for 10 seconds before continuing the iteration.

Related n8n Workflows

Free

Nodes: 9 Nodes
Updated: December 26 2025
View all
Created by
Gain FLow AI
Gain FLow AI

GainFlow AI is your go-to AI automation agency, specializing in Python and no-code solutions to eliminate repetitive tasks for individuals and businesses. Free up your time and boost efficiency. For inquiries, Fill this form - https://docs.google.com/forms/d/e/1FAIpQLSfIiXdw4HMcI2HM-Obng13j_RFiKv7X-mjOVm_mcy2ucRA8EA/viewform or reach out to us at [email protected].

Featured*