

How to Track Support Tickets from Gmail to Google Sheets with Make
Automatically log support emails from Gmail to a Google Sheet with status columns for lightweight ticket tracking.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
Small teams wanting lightweight ticket tracking without paying for a full helpdesk system
Not ideal for
High-volume support teams needing automated routing, SLA tracking, or customer-facing ticket numbers
Sync type
pollingUse case type
importReal-World Example
A 12-person B2B startup uses this to track support requests from their [email protected] inbox. Before automation, support emails got lost in Gmail threads and customer issues fell through cracks. Now every email becomes a sheet row with status tracking, and the team updates Priority and Status columns during daily standups. They handle 150 tickets monthly and spot trends like which features generate the most questions.
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 Make
Copy the pre-built Make blueprint and paste it straight into Make. 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 | ||
| Date Received | date | |
| Email Subject | subject | |
| Customer Email | from.email | |
| Email Content | textContent | |
2 optional fields▸ show
| Message ID | messageId |
| Thread ID | threadId |
Step-by-Step Setup
Dashboard > Create scenario > Gmail
Create new scenario
Start a new Make scenario for email-to-sheet logging. You'll build this as a real-time trigger that fires when emails hit your support inbox.
- 1Click 'Create a new scenario' from the Make dashboard
- 2Click the large + button in the center
- 3Search for 'Gmail' in the app list
- 4Select 'Gmail' from the results
Scenario > Gmail > Watch emails
Set up Gmail trigger
Configure the Watch emails module to monitor your support inbox. This will fire every time a new email arrives that matches your criteria.
- 1Click 'Watch emails' from the Gmail trigger options
- 2Click 'Add' next to Connection to authenticate Gmail
- 3Set Folder to 'INBOX' or your specific support label
- 4Set Maximum number of emails to 10
Gmail module > Show advanced settings
Add email filters
Filter emails to only process support requests. Set up criteria so internal emails and spam don't create tickets in your sheet.
- 1Expand 'Show advanced settings' in the Gmail module
- 2Set Query to 'to:[email protected] OR to:[email protected]'
- 3Check 'Mark as read' if you want processed emails marked automatically
- 4Set Criteria to 'Unread emails only'
Scenario > + > Google Sheets > Add a row
Connect Google Sheets
Add the Google Sheets module to receive the email data. This will append new rows to your ticket tracking spreadsheet.
- 1Click the + button to the right of the Gmail module
- 2Search for 'Google Sheets' and select it
- 3Choose 'Add a row' from the action list
- 4Click 'Add' next to Connection to authenticate Google Sheets
Google Sheets module > Spreadsheet selection
Select target spreadsheet
Choose the Google Sheet where tickets will be logged. Make sure this sheet has column headers that match your ticket fields.
- 1Click the Spreadsheet dropdown in Google Sheets module
- 2Select your existing support ticket spreadsheet
- 3Choose the correct Sheet tab (usually 'Tickets' or 'Sheet1')
- 4Set Table contains headers to 'Yes'
Google Sheets module > Column mapping
Map email fields to sheet columns
Connect Gmail data to your sheet columns. This determines what information gets pulled from each email into your ticket tracker.
- 1Click in the Date column field and select 'Date' from Gmail data
- 2Map Subject to the Gmail 'Subject' field
- 3Map From to the Gmail 'From: Email' field
- 4Set Priority column to a default value like 'Medium'
Google Sheets module > Column mapping continued
Set default ticket values
Configure default values for status and other fields that you'll update manually later. This ensures every ticket starts with consistent data.
- 1Set Status column to 'New' (hardcoded text)
- 2Map Notes to Gmail 'Text content' for email body
- 3Add any other custom fields like Assignee or Category
- 4Leave some columns empty for manual updates later
Google Sheets module > Right click > Add error handler
Configure error handling
Set up error handling so failed emails don't break the entire workflow. This prevents one corrupted email from stopping all ticket creation.
- 1Right-click the Google Sheets module
- 2Select 'Add error handler'
- 3Choose 'Break' directive from the error handler options
- 4This will skip failed emails but continue processing new ones
Scenario > Run once button
Test with sample email
Run a test to verify email data flows correctly into your spreadsheet. This catches field mapping issues before going live.
- 1Click 'Run once' at the bottom of the scenario
- 2Send a test email to your support address
- 3Wait 2-3 minutes for Gmail to detect the new email
- 4Check that a new row appears in your Google Sheet
Scenario > ON/OFF toggle
Activate the scenario
Turn on the automation to start processing support emails automatically. The scenario will now run continuously in the background.
- 1Click the ON/OFF toggle in the bottom left to 'ON'
- 2The scenario status changes to 'Active'
- 3Set up runs every 15 minutes automatically
- 4New support emails will create ticket rows going forward
Drop this into a Make custom function.
JavaScript — Custom FunctionformatDate({{gmail.date}}; "MM/DD/YYYY HH:mm") - converts Gmail's ISO date to readable format for your sheet▸ Show code
formatDate({{gmail.date}}; "MM/DD/YYYY HH:mm") - converts Gmail's ISO date to readable format for your sheet... expand to see full code
formatDate({{gmail.date}}; "MM/DD/YYYY HH:mm") - converts Gmail's ISO date to readable format for your sheetScaling Beyond 300+ tickets/day+ Records
If your volume exceeds 300+ tickets/day records, apply these adjustments.
Switch to webhook triggers
Gmail's polling trigger hits rate limits at high volume. Use Gmail's Push notifications with Pub/Sub for real-time processing without API limits.
Batch sheet updates
Instead of adding one row per email, collect emails in a data store and bulk-insert every 15 minutes. This reduces Google Sheets API calls and prevents rate limiting.
Add duplicate prevention
High volume increases chances of processing the same email twice. Add a Google Sheets search before each insert to check if the Message ID already exists.
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 Make for this if you need real-time ticket logging and plan to manually update status columns in the sheet. Make's Gmail trigger fires within 15 minutes of new emails, and the visual interface makes field mapping obvious for non-developers. At 2 operations per ticket (Gmail watch + Sheets add), you can process 500 tickets monthly on the free plan. Skip Make if you need advanced ticket routing or automated responses - use a proper helpdesk like Freshdesk instead.
This workflow costs almost nothing at normal support volumes. Each ticket uses 2 operations (Gmail trigger + Sheets row). At 200 tickets per month, that's 400 operations total, well within Make's free 1,000 operation limit. Even at 1,000 tickets monthly (2,000 operations), you'd pay $9/month for Make's Core plan. Zapier would cost $20/month for the same volume since their Starter plan caps at 750 tasks. N8n self-hosted is free but requires server management.
Zapier handles Gmail authentication more reliably - their OAuth refresh works better for long-running scenarios. N8n offers better email parsing with built-in HTML-to-text conversion and regex extraction for ticket IDs from subject lines. But Make's visual debugging wins for this use case. When a ticket fails to create, Make's execution history shows exactly which field mapping broke and with what data.
You'll hit Gmail's API pagination if importing historical emails - it returns max 100 emails per request. Large email threads can break the text content mapping, especially with inline images or complex HTML. Make's Gmail module sometimes double-processes emails that get marked unread by other tools. Add a duplicate check using Message ID, or accept that busy support days might create duplicate rows you'll need to clean manually.
Ideas for what to build next
- →Add Slack notifications for high-priority tickets — Connect a Slack module after the sheet update to notify your team channel when emails contain urgent keywords like 'down' or 'critical'.
- →Create automatic status updates based on replies — Build a second scenario that watches for your team's replies to customers and automatically changes ticket status from 'New' to 'In Progress' in the sheet.
- →Set up weekly ticket summary reports — Use Google Sheets formulas or a scheduled Make scenario to count tickets by status and email a weekly summary to your team lead.
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