🔓 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: onboarding emails sent right

Lisa Granqvist Partner Workflow Automation Expert

Onboarding emails fall apart in the messy middle. Someone updates a Google Sheet late, an email goes out with the wrong template (or doesn’t go out at all), and you only notice when a new hire replies, confused.

People Ops feels the heat first. But HR generalists and onboarding-focused Customer Success teams deal with the same spreadsheet-and-inbox chaos. This Sheets Gmail onboarding automation keeps every step consistent and makes “did we send that?” a question you never have to ask.

This workflow reads your onboarding status from Google Sheets, picks the right message, sends it from Gmail, then updates the sheet so progress is always visible. You’ll see how the logic works, what you need, and where teams usually trip up.

How This Automation Works

See how this solves the problem:

n8n Workflow Template: Google Sheets + Gmail: onboarding emails sent right

The Challenge: Onboarding emails that slip through the cracks

Google Sheets is a surprisingly common “onboarding system” because it’s easy, shared, and flexible. The downside shows up the moment onboarding becomes multi-step. You’re juggling templates, tracking statuses, sending follow-ups, and remembering which version of a message is the current one. One skipped row update can trigger the wrong email. One “I’ll send it later” becomes a forgotten task. And when you’re onboarding several people at once, the mental overhead is honestly worse than the sending itself.

It adds up fast. Here’s where it breaks down for most teams.

  • Template consistency drifts over time because people copy and tweak emails in their inbox instead of using one source of truth.
  • Status tracking becomes unreliable when updates depend on someone remembering to change a cell after sending.
  • Multi-step onboarding is hard to audit, so you can’t quickly answer “what did this person receive?” when questions come in.
  • Exceptions don’t get flagged early, which means missed steps show up days later as escalations.

The Fix: Spreadsheet-driven onboarding emails with built-in tracking

This n8n workflow turns Google Sheets into a reliable onboarding engine instead of a fragile checklist. It starts by pulling your message templates from one sheet and the current user status from another. From there, it builds a structured “message matrix” (so your steps, subjects, and email bodies stay organized), then checks each person’s current step and status using branching logic. The workflow merges in personal details like first name and email, selects the right template for that exact step, and sends the message from Gmail. Finally, it writes the result back to Google Sheets, marks the step completed or passed, and appends the next step so your process keeps moving without manual babysitting.

The workflow can be triggered on a schedule, by a form submission, or by an incoming message event. In the middle, Switch and Code nodes decide what should happen next. At the end, Gmail sends the right email and Sheets becomes your living audit log.

What Changes: Before vs. After

Real-World Impact

Say you onboard 10 people a month with a 5-step email sequence. Manually, you’re usually spending about 10 minutes per email between finding the right template, customizing it, sending, then updating the sheet, which is roughly 8 hours a month. With this workflow, you spend about 20 minutes once setting up templates and statuses, then each person is mostly “hands off” aside from exceptions. The day-to-day becomes quick checks, not repetitive sending.

Requirements

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Sheets to store templates and step statuses
  • Gmail to send onboarding emails from your account
  • Google account OAuth credentials (set up in n8n credentials)

Skill level: Intermediate. You’ll mostly configure credentials and edit a few fields, plus be comfortable adjusting template columns and simple branching.

Need help implementing this? Talk to an automation expert (free 15-minute consultation).

The Workflow Flow

A form submit, a manual run, or a timed trigger kicks things off. You can start onboarding when someone fills in a registration form, when an admin runs it, or on a schedule to process queued rows.

Templates and current statuses are pulled from Google Sheets. One sheet holds the step-based email templates (subject, body, message type), while the other sheet tracks each person’s current step and status.

Logic routes each person to the right next action. Switch nodes check “what step are we on?” and “what’s the status?” Then a Code node merges variables (like names) into the chosen template so it’s ready to send.

Gmail sends the email, and Sheets gets updated immediately. The workflow marks the row completed or passed, appends the next step row, and can escalate errors by notifying an admin when something fails.

You can easily modify the onboarding steps to match your process based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Manual Run Trigger

Set up the manual and scheduled triggers that kick off template retrieval and status processing.

  1. Open Manual Run Trigger and keep the default settings so you can run the workflow on demand.
  2. Review Timed Trigger Start; it is disabled by default. Enable it if you want scheduled runs.
  3. If enabling Timed Trigger Start, keep the interval rule set to minutes as configured.
  4. Confirm both triggers connect to Retrieve Message Templates in the canvas.
Use Manual Run Trigger during setup to validate your Google Sheets connections before scheduling.

Step 2: Connect Google Sheets

These nodes read and update the message templates and status tables. All Google Sheets nodes share the same credential type.

  1. Open Retrieve Message Templates and set Document to [YOUR_ID] and Sheet to Sheet1. Credential Required: Connect your googleSheetsOAuth2Api credentials.
  2. Open Fetch Status Rows and set Document to [YOUR_ID] and Sheet to Sheet1. Credential Required: Connect your googleSheetsOAuth2Api credentials.
  3. Connect Google Sheets credentials to all update/append nodes: Mark Row Completed, Mark Row Passed, Append Next Step, and Append Registration Record. Credential Required: Connect your googleSheetsOAuth2Api credentials.
  4. Verify Mark Row Completed has Operation set to update and columns.status set to completed.
  5. Verify Mark Row Passed has Operation set to update and columns.status set to passed.
  6. Verify Append Next Step has Operation set to append and maps step to {{ $('Fetch Status Rows').item.json.step + 1 }}.
⚠️ Common Pitfall: Leaving [YOUR_ID] unchanged will cause the Google Sheets nodes to fail. Replace it with your actual spreadsheet ID.

Step 3: Set Up Message Matrix Processing

These nodes build the messaging structure and prepare variables for routing and personalization.

  1. Open Build Message Matrix and keep the JavaScript Code as provided for grouping by step and Type.
  2. Open Assign Context Variables and confirm variables is set to {{ { email: $('Fetch Status Rows').item.json['First Name']+'.'+$('Fetch Status Rows').item.json['Last Name'] +'@yourcompany.com', error: "This has been ean error" } }}.
  3. Ensure Fetch Status Rows connects into Assign Context Variables and then to Route by Status.

Step 4: Configure Routing and Step Logic

The workflow routes rows based on status and step, then triggers actions or checks.

  1. In Route by Status, verify the conditions use {{ $('Fetch Status Rows').item.json.status }} with outputs for sent and completed.
  2. In Route Step Actions, confirm each rule matches {{ $('Fetch Status Rows').item.json.step }} for steps 1–5.
  3. In Route Step Checks, confirm the same step rules are configured for steps 1–5.
  4. Ensure Route by Status outputs to both Route Step Actions and Route Step Checks (separate branches).
  5. Keep Perform Step Action and Verify Action Completed as placeholders for action and verification stages.

Step 5: Configure Sub-Workflow Execution and Completion Logic

These nodes execute external workflows, update statuses, and handle completion branches.

  1. Open Run Sub-Workflow (Configure Required) and set Workflow to the workflow ID you want to execute. Map inputs using the provided expressions like {{ $('Fetch Status Rows').item.json.Email }} and {{ $('Build Message Matrix').item.json[$('Fetch Status Rows').item.json.step].sent.Content }}.
  2. Open Run Sub-Workflow (Configure Required) 2 and set the Workflow ID for error handling, using expressions such as {{ $('Build Message Matrix').item.json[$('Fetch Status Rows').item.json.step].error.Content }}.
  3. Open Set Debug Flag and keep check set to true.
  4. Open Completion Branch Check and ensure it checks {{ $json.check }} for true.
  5. Open Run Sub-Workflow (Configure Required) 3 and set the completion workflow ID; it uses {{ $('Build Message Matrix').item.json[$('Fetch Status Rows').item.json.step].completed['Content'] }}.
  6. Open Run Sub-Workflow (Configure Required) 4 and set the error workflow ID to handle completion errors using {{ $('Build Message Matrix').item.json[$('Fetch Status Rows').item.json.step].error['Content'] }}.
⚠️ Common Pitfall: The four Run Sub-Workflow (Configure Required) nodes require valid workflow IDs. Leaving them blank will cause execution errors.

Step 6: Configure Form Onboarding and Gmail Notifications

This branch captures onboarding data and sends templated email notifications via Gmail.

  1. Open Onboarding Form Trigger and confirm Form Title is Welcome to our company and Form Description is Please enter you data here.
  2. Verify hidden fields in Onboarding Form Trigger set step to 1 and status to sent.
  3. Open Append Registration Record and verify Operation is append. Credential Required: Connect your googleSheetsOAuth2Api credentials.
  4. Open Completion Form View and confirm Completion Title is Thanks a lot for entering your information.
  5. Open Incoming Message Trigger and confirm inputs for email, subject, content, and variables.
  6. Open Template Variable Merge and keep the templating code that replaces {{variable}} tokens.
  7. Open Send Gmail Notification and set Send To to {{ $('Incoming Message Trigger').item.json.email }}, Subject to {{ $('Incoming Message Trigger').item.json.subject }}, and Message to {{ $json.msg }}. Credential Required: Connect your gmailOAuth2 credentials.

Step 7: Test and Activate Your Workflow

Validate each branch and confirm that updates and emails occur as expected before enabling scheduled runs.

  1. Click Manual Run Trigger to execute the main processing path and confirm rows are read from Retrieve Message Templates and Fetch Status Rows.
  2. Check Google Sheets to verify Mark Row Completed, Mark Row Passed, and Append Next Step update or append rows as expected.
  3. Submit the Onboarding Form Trigger form to verify Append Registration Record adds the record and Completion Form View displays the thank-you message.
  4. Trigger Incoming Message Trigger from a parent workflow and confirm Template Variable Merge produces a resolved message and Send Gmail Notification sends the email.
  5. Once verified, enable Timed Trigger Start to run on schedule and activate the workflow for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Watch Out For

  • Google Sheets credentials can expire or need specific permissions. If things break, check n8n’s Credentials page and confirm the connected Google account still has access to the spreadsheet.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.

Common Questions

How quickly can I implement this Sheets Gmail onboarding automation?

About an hour if your Sheets are ready and Gmail is connected.

Can non-technical teams implement this onboarding email automation?

Yes. You won’t write code, but you will map a few columns and test the branching logic with sample rows.

Is n8n free to use for this Sheets Gmail onboarding 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 usage limits (usually fine) and any optional tools you add.

Where can I host n8n to run this 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.

How do I adapt this Sheets Gmail onboarding solution to my specific challenges?

You can. Most changes happen in three places: the Google Sheets template columns, the “Route by Status / Route Step Actions” Switch branches, and the “Template Variable Merge” Code node. Common tweaks include adding steps (like “IT setup” or “first-week check-in”), routing different templates by department, and sending escalations to a shared inbox instead of one admin. If you’d rather use Slack or another channel, swap the Gmail send node for a different messaging node and keep the same Sheet-driven logic.

Why is my Gmail connection failing in this workflow?

Usually it’s expired Google OAuth permission or the wrong Google account connected. Reconnect the Gmail credential in n8n, then confirm the account has access to the same Sheets used by the workflow. If it fails only sometimes, you may be hitting Google send limits or trying to send from an alias that isn’t enabled in Gmail settings.

What’s the capacity of this Sheets Gmail onboarding solution?

For most small teams, it’s plenty.

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

Often, yes, because this workflow relies on branching logic, step/status routing, and “write-back” tracking that gets awkward (and pricey) in simpler builders. n8n also gives you a self-hosting option, which can matter if onboarding volume spikes or you want predictable costs. Zapier or Make can still work if your flow is only “new row → send email” with no multi-step state. The moment you need “only send template B if step A is completed,” n8n tends to stay cleaner. Talk to an automation expert if you want help choosing based on your process.

Once your onboarding steps live in Sheets and the sending happens automatically in Gmail, the process stops depending on memory. The workflow handles the repetitive parts so you can focus on the humans you’re onboarding.

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