🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Google Sheets + Gmail, form tracking you can trust

Lisa Granqvist Partner Workflow Automation Expert

Manually checking Google Form responses against a roster sounds simple, until you’re doing it every day and still missing people. Someone swears they submitted, your sheet says they didn’t, and now you’re stuck doing detective work instead of follow-up.

This Sheets Gmail automation hits department coordinators hardest, but program managers and small teams running workshops feel it too. You get a live view of who has submitted, who hasn’t, and you can send the right email in minutes, not hours.

You’ll set up an n8n workflow suite that reconciles your roster with responses, shows a simple dashboard, and triggers acknowledgement or reminder emails from Gmail.

How This Automation Works

Here’s the complete workflow you’ll be setting up:

n8n Workflow Template: Google Sheets + Gmail, form tracking you can trust

Why This Matters: Roster vs. form mismatches

Tracking submissions is annoying because the “truth” lives in two places: your roster sheet and your form response sheet. You end up filtering, sorting, searching for register numbers, and copy-pasting names into email drafts. It’s not just time. It’s the mental load of remembering who you already nudged, plus the awkwardness of reminding someone who actually did submit (or forgetting someone who didn’t). After a few rounds, the spreadsheet starts to feel like a crime scene.

It adds up fast. Here’s where it breaks down in real life.

  • Every manual cross-check turns into 30–60 minutes of filtering and “did I already email them?” second-guessing.
  • Roster data and form data rarely match perfectly, so one typo in a register number can hide a submission.
  • Acknowledgements get skipped when things get busy, which means more “I submitted, did you get it?” follow-ups later.
  • Reminders go out late or not at all, and then you’re chasing responses at the last minute.

What You’ll Build: A live tracking dashboard with one-click emails

This workflow suite turns your Google Sheets into a real-time registration tracker that stays current without babysitting. It starts with a webhook-based dashboard in n8n: you open a simple URL, and n8n pulls your student roster from one sheet and your Google Form responses from another. A small code step compares them using a shared identifier (like Register No.), then generates an HTML dashboard that lists totals, submitted, and pending. From that same dashboard, you can trigger two companion webhooks: one sends a thank-you email to people who completed the form, and the other emails a reminder to the ones still pending. The result is clean tracking plus fast follow-up, with far fewer mistakes.

The workflow begins when you load the live tracking page or press a dashboard button. n8n matches roster rows to form response rows, then prepares the right email content and sends it through Gmail. Finally, it returns a confirmation page so you know the send actually happened.

What You’re Building

Expected Results

Say you’re tracking 120 students. Manually, you might spend about 45 minutes exporting or opening responses, another 45 minutes matching register numbers, then 30 minutes writing and sending emails, so roughly 2 hours per follow-up round. With this workflow, you open the dashboard URL (about a minute), click “Send Acknowledgements” or “Send Reminders,” and wait a few minutes for Gmail to send. You still keep control, but the grind disappears.

Before You Start

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Sheets to store roster and responses.
  • Gmail to send acknowledgements and reminders.
  • Google OAuth credentials (set up in Google Cloud Console for Sheets/Gmail access).

Skill level: Beginner. You’ll connect Google accounts, confirm sheet columns, and paste in webhook URLs.

Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).

Step by Step

A dashboard page gets opened. The “Live Tracking” workflow starts from an n8n webhook endpoint (like /live-tracking), which means you can bookmark it and treat it like an internal tool.

Your two Sheets are pulled in. n8n reads the student roster sheet (Register No., name, email) and reads the form response sheet (timestamp, Reg No., email address). These come in as two data streams.

The roster is reconciled against responses. A merge step aligns the two sets, and a small code step compares keys (usually Register No.) to figure out who is “submitted” and who is “pending.” It then builds an HTML dashboard showing summary stats and two action buttons.

Emails are sent on demand. When you click “Send Acknowledgements” or “Send Reminders,” a companion webhook runs, merges roster + responses again (so it’s always current), generates personalized email copy, sends via Gmail, then returns a confirmation page.

You can easily modify the matching field (Register No., email, or a custom ID) to fit your process. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Webhook Trigger

Set up the three incoming webhooks that drive the dashboard view and the email actions.

  1. Open Incoming Dashboard Hook and set Path to 2235781f-4371-4f6e-8767-41c352ed171f, with Response Mode set to responseNode.
  2. Open Incoming Acknowledgement Hook and set Path to send-acknowledgements, with Response Mode set to responseNode.
  3. Open Incoming Reminder Hook and set Path to send-reminder, with Response Mode set to responseNode.
  4. Confirm the parallel execution: Incoming Dashboard Hook outputs to both Fetch Spreadsheet Data and Retrieve Form Responses in parallel.
  5. Confirm the parallel execution: Incoming Acknowledgement Hook outputs to both Fetch Student Roster and Fetch Response Records in parallel.
  6. Confirm the parallel execution: Incoming Reminder Hook outputs to both Retrieve Roster Records and Fetch Reminder Responses in parallel.
Use unique paths in production and keep the dashboard path private since it can trigger bulk messaging.

Step 2: Connect Google Sheets

Attach Google Sheets data sources for student rosters and form responses across the three flows.

  1. Open Fetch Spreadsheet Data and select the document 1-i55cyu2DKZ_alSlR3Bd7abHn_EfvTpg73hv2y3zb4o and sheet gid=0. Credential Required: Connect your googleSheetsOAuth2Api credentials.
  2. Open Retrieve Form Responses and select the document 10eIZzrzgRy8PKfyhhVc8eG8lFoAxEqE0h-IOnqHwdVE and sheet 1113734691. Credential Required: Connect your googleSheetsOAuth2Api credentials.
  3. Open Fetch Student Roster and select the document 1-i55cyu2DKZ_alSlR3Bd7abHn_EfvTpg73hv2y3zb4o and sheet gid=0. Credential Required: Connect your googleSheetsOAuth2Api credentials.
  4. Open Fetch Response Records and select the document 10eIZzrzgRy8PKfyhhVc8eG8lFoAxEqE0h-IOnqHwdVE and sheet 1113734691. Credential Required: Connect your googleSheetsOAuth2Api credentials.
  5. Open Retrieve Roster Records and select the document 1-i55cyu2DKZ_alSlR3Bd7abHn_EfvTpg73hv2y3zb4o and sheet gid=0. Credential Required: Connect your googleSheetsOAuth2Api credentials.
  6. Open Fetch Reminder Responses and select the document 10eIZzrzgRy8PKfyhhVc8eG8lFoAxEqE0h-IOnqHwdVE and sheet 1113734691. Credential Required: Connect your googleSheetsOAuth2Api credentials.
⚠️ Common Pitfall: Ensure column headers match exactly (e.g., Register No. and Reg No) to avoid mismatches in merge logic.

Step 3: Set Up Dashboard Processing

Merge roster and response data, then generate the HTML dashboard returned to the browser.

  1. Open Combine Register Streams and set Mode to combine with Advanced enabled.
  2. In Combine Register Streams, set Merge By Fields to map Register No. (field1) with Reg No (field2).
  3. Open Build Tracking Dashboard and review the JavaScript that compiles summary stats and the HTML dashboard output.
  4. Open Return Webhook Output and set Respond With to text and Response Body to =={{ $json["html"] }}.
Replace the placeholder https://[YOUR_WEBHOOK_URL] inside Build Tracking Dashboard with your actual webhook base URL for the dashboard buttons.

Step 4: Configure Acknowledgement Email Flow

Join roster and response data, build personalized thank-you emails, send them via Gmail, and return an acknowledgement page.

  1. Confirm Merge Email Sources receives input from both Fetch Student Roster and Fetch Response Records in parallel.
  2. Open Compose Thank You Emails and verify the subject is ✅ Thank You for Your Submission and the body template uses {{name}} and {{reg}} placeholders.
  3. Open Dispatch Email Notices and set Send To to ={{$json["Email Address"]}}, Subject to {{ $json.subject }}, and Message to ={{ $json.htmlBody }}. Credential Required: Connect your gmailOAuth2 credentials.
  4. Open Return Acknowledgement Page and confirm the HTML response body contains your correct dashboard link.
⚠️ Common Pitfall: If Compose Thank You Emails returns “No completed students found,” no emails will be sent—this is expected behavior when there are no matches.

Step 5: Configure Reminder Email Flow

Identify pending students, prepare reminder messages, send them via Gmail, and return the reminder confirmation page.

  1. Confirm Merge Reminder Sources receives input from both Retrieve Roster Records and Fetch Reminder Responses in parallel.
  2. Open Compose Reminder Emails and verify the subject is ⚠️ Reminder: Please Complete Your Form and the template uses {{name}} and {{reg}} placeholders.
  3. Open Send Reminder Emails and set Send To to ={{$json["Email Address"]}}, Subject to ={{ $json.subject }}, and Message to ={{ $json.htmlBody }}. Credential Required: Connect your gmailOAuth2 credentials.
  4. Open Return Reminder Page and confirm the HTML response body contains your correct dashboard link.
⚠️ Common Pitfall: Compose Reminder Emails returns “All students have submitted. No reminders needed.” when there are no pending records—this stops email sending by design.

Step 6: Test and Activate Your Workflow

Validate each webhook path, ensure email delivery, and then activate the workflow for production.

  1. Click Execute Workflow and open the test URL from Incoming Dashboard Hook to confirm the HTML dashboard renders.
  2. Use the dashboard buttons to trigger Incoming Acknowledgement Hook and Incoming Reminder Hook, confirming each returns the correct HTML confirmation page.
  3. Verify that Dispatch Email Notices and Send Reminder Emails send messages to the expected email addresses.
  4. When the test run is successful, toggle the workflow to Active to enable production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Troubleshooting Tips

  • Google Sheets credentials can expire or need specific permissions. If things break, check the Google connection inside n8n’s Credentials section first.
  • If you’re using webhook buttons from the dashboard, make sure your n8n webhook URLs are correct for your environment (test vs. production). A copied “test” URL is a common reason the button works once and then fails later.
  • Gmail can throttle or reject bursts if you send too many emails too quickly. If you’re emailing a big roster, add a short delay between sends and confirm your Gmail account is allowed to send from that address.

Quick Answers

What’s the setup time for this Sheets Gmail automation?

About 30 minutes if your Sheets columns are already clean.

Is coding required for this Sheets Gmail automation?

No. You’ll paste in a workflow and connect accounts, and the included code nodes are already set up for the matching and email text.

Is n8n free to use for this Sheets Gmail automation workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Google Workspace costs if you’re sending from a managed domain.

Where can I host n8n to run this Sheets Gmail automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I modify this Sheets Gmail automation workflow for different use cases?

Yes, and you should. Most teams swap the “match key” used in the merge and code steps (for example, using email instead of Register No.), then tweak the “Compose Thank You Emails” and “Compose Reminder Emails” text to match their tone. You can also add a log step that writes each send to a “Mail Logs” sheet. If you want WhatsApp instead of email, replace the Gmail send with an HTTP Request to a provider like Twilio.

Why is my Google Sheets connection failing in this workflow?

Usually it’s expired or changed Google OAuth consent. Reconnect the Google Sheets credential in n8n, then confirm the connected Google account still has access to the spreadsheet. Also check that the sheet name and columns haven’t been renamed, because the workflow may be selecting fields that no longer exist. If you’re running this on a shared drive, permissions can be quirky, honestly.

What volume can this Sheets Gmail automation workflow process?

A few hundred rows per run is normal, and Gmail sending limits tend to be the real cap.

Is this Sheets Gmail automation better than using Zapier or Make?

Often, yes, because this setup needs matching logic, “pending vs completed” lists, and an HTML dashboard response, which are awkward in simple two-step tools. n8n handles branching logic without nickel-and-diming you for each path. It also gives you the option to self-host, which matters if you run this daily and don’t want per-task pricing to creep up. Zapier or Make can still work if you only want “new form response → send email,” but that’s not the same as reconciling against a roster. If you’re torn, Talk to an automation expert and we’ll help you pick the simplest option.

Once this is running, your Sheets stay honest and your follow-ups stop slipping through the cracks. Set it up once, then use the time you get back for the work that actually needs you.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal