Intermediate~20 min setupEmail & ProductivityVerified April 2026
Gmail logo
Google Sheets logo

How to Track Vendor Communication from Gmail to Google Sheets with N8n

Automatically log all emails from specific vendor domains to Google Sheets with sender, subject, and timestamp for compliance tracking.

Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.

Best for

Teams needing vendor email audit trails with custom data processing and local storage control

Not ideal for

Simple email forwarding or teams wanting instant email notifications

Sync type

polling

Use case type

import

Real-World Example

💡

A 25-person manufacturing company uses this to track all emails from their 12 key suppliers for compliance audits. Their procurement team previously manually forwarded important vendor emails to a shared folder, missing 30% of communications. Now every vendor email gets logged automatically with timestamps for their ISO certification requirements.

What Will This Cost?

Drag the slider to your expected monthly volume.

/mo
505005K50K

Each platform counts differently — Zapier: 1 task per trigger. Make: 1 operation per module per record. n8n: 1 execution per run.

Prices shown for annual billing. Based on published pricing as of April 2026.

Estimated ROI

1000

min saved/mo

$583

labor value/mo

Free

no platform cost

Based on ~2 min manual effort per operation at $35/hr fully loaded labor cost.

Implementation

Skip the setup

Import this workflow directly into n8n

Copy the pre-built n8n blueprint and paste it straight into n8n. All modules, filters, and field mappings are already configured — you just need to connect your accounts.

Before You Start

Make sure you have everything ready.

Google account with Gmail access
Google Sheets spreadsheet with headers: Date, Sender, Subject, Domain
List of vendor email domains to track
N8n instance (cloud or self-hosted) with Google integrations enabled

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Email DateinternalDate
Sender Addresspayload.headers[From]
Email Subjectpayload.headers[Subject]
Sender Domainderived from From header
2 optional fields▸ show
Message IDpayload.headers[Message-ID]
Thread IDthreadId

Step-by-Step Setup

1

Workflows > New Workflow

Create new N8n workflow

Set up a new workflow to monitor Gmail for vendor emails. You'll build a scheduled workflow that checks Gmail every 15 minutes for new messages from specified domains.

  1. 1Click 'New Workflow' from the N8n dashboard
  2. 2Name it 'Vendor Email Tracker'
  3. 3Click 'Save' to create the workflow
What you should see: You should see a blank canvas with a Start node already placed.
2

Nodes > Core > Schedule Trigger

Add Schedule Trigger node

Configure the workflow to run every 15 minutes. This gives you near real-time tracking without hitting Gmail's API limits too aggressively.

  1. 1Click the '+' button next to Start
  2. 2Select 'Schedule Trigger' from the Core nodes
  3. 3Set Trigger Interval to 'Minutes'
  4. 4Enter '15' in the Minutes field
What you should see: The Schedule Trigger node shows 'Every 15 minutes' in the node summary.
Common mistake — Don't set this below 10 minutes - Gmail's API has aggressive rate limiting for frequent polling
n8n
+
click +
search apps
Gmail
GM
Gmail
Add Schedule Trigger node
Gmail
GM
module added
3

Nodes > Google > Gmail

Connect Gmail node

Add Gmail integration to search for emails from your vendor domains. You'll need to authenticate with your Google account and configure the search parameters.

  1. 1Click '+' after the Schedule Trigger
  2. 2Search for 'Gmail' and select it
  3. 3Choose 'Get Many' operation
  4. 4Click 'Sign in with Google' to authenticate
  5. 5Authorize N8n to access your Gmail
What you should see: Gmail node shows green 'Connected' status and displays your email address.
4

Gmail > Parameters

Configure vendor domain search

Set up Gmail to only fetch emails from specific vendor domains. Use Gmail's search syntax to filter by sender domain and recency.

  1. 1In the Gmail node, set Format to 'Full'
  2. 2In the Query field, enter 'from:@vendor1.com OR from:@vendor2.com newer_than:1h'
  3. 3Replace vendor1.com and vendor2.com with your actual vendor domains
  4. 4Set Limit to 50
What you should see: The Query field shows your vendor domain search string.
Common mistake — The newer_than:1h filter prevents processing the same emails repeatedly - adjust based on your schedule frequency
5

Nodes > Core > IF

Add IF node for new emails

Check if Gmail returned any emails before proceeding. This prevents the workflow from failing when no new vendor emails exist.

  1. 1Add an IF node after Gmail
  2. 2Set Condition to 'Number'
  3. 3Set Value 1 to '{{$json.length}}'
  4. 4Set Operation to 'Larger'
  5. 5Set Value 2 to '0'
What you should see: IF node shows the length comparison condition in its summary.
6

Nodes > Google > Google Sheets

Connect Google Sheets node

Add Google Sheets integration to log the email data. You'll authenticate and select your target spreadsheet for the communication log.

  1. 1Connect a Google Sheets node to the 'true' output of the IF node
  2. 2Select 'Append' operation
  3. 3Click 'Sign in with Google' if not already connected
  4. 4Select your target spreadsheet from the dropdown
  5. 5Choose the worksheet (usually 'Sheet1')
What you should see: Google Sheets node shows your selected spreadsheet name and worksheet.
Common mistake — Make sure your spreadsheet has headers in row 1: Date, Sender, Subject, Domain - the append operation starts at row 2
7

Google Sheets > Columns

Map email fields to spreadsheet

Configure which email data goes into each spreadsheet column. You'll extract the sender, subject, date, and domain from the Gmail response.

  1. 1In the Google Sheets node, click 'Add Column'
  2. 2Set Column A to 'Date' with value '{{$json.internalDate}}'
  3. 3Add Column B as 'Sender' with '{{$json.payload.headers.find(h => h.name === "From").value}}'
  4. 4Add Column C as 'Subject' with '{{$json.payload.headers.find(h => h.name === "Subject").value}}'
  5. 5Add Column D as 'Domain' with '{{$json.payload.headers.find(h => h.name === "From").value.split("@")[1].split(">")[0]}}'
What you should see: Four columns configured with the field mapping expressions visible.
Common mistake — The header extraction uses find() which will break if headers are missing - Gmail API always includes these but test thoroughly
Gmail fields
from
subject
snippet
body
date
available as variables:
1.props.from
1.props.subject
1.props.snippet
1.props.body
1.props.date
8

Workflow > Execute Workflow

Test the workflow

Run a test to verify your vendor email tracking works correctly. You'll see sample data flow from Gmail to your spreadsheet.

  1. 1Click 'Execute Workflow' button
  2. 2Wait for all nodes to complete (green checkmarks)
  3. 3Click on the Google Sheets node to see the output
  4. 4Check your spreadsheet for new rows with vendor email data
What you should see: Green checkmarks on all nodes and new rows appear in your Google Sheets with vendor email details.
Common mistake — If no emails match your domain filter, the IF node will skip to 'false' output - this is normal, not an error
n8n
▶ Run once
executed
Gmail
Google Sheets
Google Sheets
🔔 notification
received
9

Node Settings > Error Handling

Add error handling

Configure the workflow to handle API failures gracefully without stopping the entire automation. This ensures continuous monitoring even during temporary issues.

  1. 1Click on the Gmail node settings (gear icon)
  2. 2Select 'Continue on Fail' option
  3. 3Add an HTTP Request node connected to the error output
  4. 4Configure it to send error notifications to your monitoring system
What you should see: Gmail node shows error handling enabled and error notification path configured.
10

Workflow > Activate Toggle

Activate the workflow

Turn on the workflow to begin automatic vendor email tracking. The schedule will start immediately and run every 15 minutes.

  1. 1Click the toggle switch at the top right to 'Active'
  2. 2Verify the status shows 'Active' with a green indicator
  3. 3Check the executions log after 15 minutes to confirm it's running
What you should see: Workflow status shows 'Active' and appears in your active workflows list.
Common mistake — Once active, this runs continuously - monitor your Gmail API quota in Google Cloud Console to avoid hitting limits

Drop this into an n8n Code node.

JavaScript — Code Node// Clean and standardize vendor domains
▸ Show code
// Clean and standardize vendor domains
const fromHeader = $json.payload.headers.find(h => h.name === 'From').value;
const domain = fromHeader.match(/@([^>\s]+)/)?.[1]?.toLowerCase();

... expand to see full code

// Clean and standardize vendor domains
const fromHeader = $json.payload.headers.find(h => h.name === 'From').value;
const domain = fromHeader.match(/@([^>\s]+)/)?.[1]?.toLowerCase();
return { ...json, cleanDomain: domain };

Scaling Beyond 500+ vendor emails/day+ Records

If your volume exceeds 500+ vendor emails/day records, apply these adjustments.

1

Increase polling frequency

Switch from 15-minute to 5-minute intervals to reduce the number of emails processed per execution. This prevents Gmail API timeout issues and stays within per-request limits.

2

Add batch processing

Use N8n's SplitInBatches node to process emails in groups of 25. This prevents Google Sheets API from hitting write rate limits when appending many rows simultaneously.

3

Implement deduplication

Add a Function node that checks Message-ID against recent entries to prevent duplicate logging if the workflow runs overlapping executions during high email volume periods.

Going live

Production Checklist

Before you turn this on for real, confirm each item.

Troubleshooting

Common errors and how to fix them.

Frequently Asked Questions

Common questions about this workflow.

Analysis

VerdictWhy n8n for this workflow

Use N8n for this if you need vendor communication tracking but want full control over the data processing and storage location. N8n's function nodes let you parse email headers, extract domains, and format timestamps exactly how your compliance team needs them. The Gmail API integration pulls full message metadata without the field mapping restrictions you hit in Zapier. Skip N8n if you just need basic email forwarding - Zapier's Gmail trigger is simpler for that.

Cost

This workflow uses about 96 executions per day (every 15 minutes). At 200 vendor emails monthly, you're looking at 2,880 executions total per month. That fits N8n's Starter plan at $20/month easily. Make would cost $21/month for the same volume with their Core plan. Zapier Professional runs $50/month for this execution count. N8n saves you $30 monthly versus Zapier here.

Tradeoffs

Zapier's Gmail trigger fires faster - usually within 2-3 minutes of email arrival versus N8n's 15-minute polling. Make has better built-in email parsing that extracts sender domains without custom functions. But N8n wins on data control - you can process email headers however you want, add custom validation logic, and store locally without vendor lock-in concerns that plague the other platforms.

Gmail's API paginates search results at 100 emails per call - if vendors send more than 100 emails between checks, you'll miss some unless you add pagination handling with N8n's loop nodes. The internalDate field comes as Unix timestamp, not readable dates, so you need the Function node conversion. Gmail search syntax is picky about the newer_than parameter - 'newer_than:1h' works but 'newer_than:1 hour' fails silently.

Ideas for what to build next

  • Add vendor response time trackingCreate a follow-up workflow that monitors your email replies to vendors and calculates response times for vendor relationship management.
  • Set up compliance alertsBuild notifications that trigger when high-priority vendors haven't sent communications within expected timeframes, helping maintain vendor relationships.
  • Create vendor communication dashboardConnect your Google Sheets log to Google Data Studio or similar tools to visualize communication patterns and vendor engagement trends over time.

Related guides

Was this guide helpful?
Gmail + Google Sheets overviewn8n profile →