

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
pollingUse case type
importReal-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.
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
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.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Email Date | internalDate | |
| Sender Address | payload.headers[From] | |
| Email Subject | payload.headers[Subject] | |
| Sender Domain | derived from From header | |
2 optional fields▸ show
| Message ID | payload.headers[Message-ID] |
| Thread ID | threadId |
Step-by-Step Setup
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.
- 1Click 'New Workflow' from the N8n dashboard
- 2Name it 'Vendor Email Tracker'
- 3Click 'Save' to create the workflow
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.
- 1Click the '+' button next to Start
- 2Select 'Schedule Trigger' from the Core nodes
- 3Set Trigger Interval to 'Minutes'
- 4Enter '15' in the Minutes field
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.
- 1Click '+' after the Schedule Trigger
- 2Search for 'Gmail' and select it
- 3Choose 'Get Many' operation
- 4Click 'Sign in with Google' to authenticate
- 5Authorize N8n to access your Gmail
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.
- 1In the Gmail node, set Format to 'Full'
- 2In the Query field, enter 'from:@vendor1.com OR from:@vendor2.com newer_than:1h'
- 3Replace vendor1.com and vendor2.com with your actual vendor domains
- 4Set Limit to 50
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.
- 1Add an IF node after Gmail
- 2Set Condition to 'Number'
- 3Set Value 1 to '{{$json.length}}'
- 4Set Operation to 'Larger'
- 5Set Value 2 to '0'
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.
- 1Connect a Google Sheets node to the 'true' output of the IF node
- 2Select 'Append' operation
- 3Click 'Sign in with Google' if not already connected
- 4Select your target spreadsheet from the dropdown
- 5Choose the worksheet (usually 'Sheet1')
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.
- 1In the Google Sheets node, click 'Add Column'
- 2Set Column A to 'Date' with value '{{$json.internalDate}}'
- 3Add Column B as 'Sender' with '{{$json.payload.headers.find(h => h.name === "From").value}}'
- 4Add Column C as 'Subject' with '{{$json.payload.headers.find(h => h.name === "Subject").value}}'
- 5Add Column D as 'Domain' with '{{$json.payload.headers.find(h => h.name === "From").value.split("@")[1].split(">")[0]}}'
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.
- 1Click 'Execute Workflow' button
- 2Wait for all nodes to complete (green checkmarks)
- 3Click on the Google Sheets node to see the output
- 4Check your spreadsheet for new rows with vendor email data
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.
- 1Click on the Gmail node settings (gear icon)
- 2Select 'Continue on Fail' option
- 3Add an HTTP Request node connected to the error output
- 4Configure it to send error notifications to your monitoring system
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.
- 1Click the toggle switch at the top right to 'Active'
- 2Verify the status shows 'Active' with a green indicator
- 3Check the executions log after 15 minutes to confirm it's running
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.
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.
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.
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
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.
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.
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 tracking — Create a follow-up workflow that monitors your email replies to vendors and calculates response times for vendor relationship management.
- →Set up compliance alerts — Build notifications that trigger when high-priority vendors haven't sent communications within expected timeframes, helping maintain vendor relationships.
- →Create vendor communication dashboard — Connect your Google Sheets log to Google Data Studio or similar tools to visualize communication patterns and vendor engagement trends over time.
Related guides
How to Share Notion Meeting Notes to Slack with Pipedream
~15 min setup
How to Share Notion Meeting Notes to Slack with Power Automate
~15 min setup
How to Share Notion Meeting Notes to Slack with n8n
~20 min setup
How to Send Notion Meeting Notes to Slack with Zapier
~8 min setup
How to Share Notion Meeting Notes to Slack with Make
~12 min setup
How to Create Notion Tasks from Slack with Pipedream
~15 min setup