Require two-person email approvals for Airtable change requests with Gmail
Ready for 3.0Ready for 3.0. This template uses no nodes that n8n 3.0 removes. No removed nodes, versions or helpers found. Static check, last run 2026-10-19.
What this workflow does
This workflow has 24 nodes and runs on Airtable events. Along the way it connects Airtable and Gmail.
How it runs
Trigger: On Airtable events.
- Approval Rules (Edit Fields (Set)): sets 6 fields: block_self_approval, reply_window_hours, pending_status…
- Handle Each Request Once (Remove Duplicates): removes duplicate items
- Read The Change Request (Code): runs custom JavaScript code
- Still Waiting For A Decision? (If): checks a condition and branches into true / false
- Handle One Request At A Time (Loop Over Items (Split in Batches)): loops over the items in batches
- Read The Approver Pool (Airtable): search (record)
- Pick Two Different Approvers (Code): runs custom JavaScript code
- Enough Approvers Available? (If): checks a condition and branches into true / false
- Ask The First Approver (Gmail): send and wait for a reply (message)
- Refuse - No Eligible Approvers (Edit Fields (Set)): sets 1 field: refusal_reason
…plus 11 more steps. See the full node list below.
Services it uses
Before you upgrade to n8n 3.0
Nothing in this workflow is removed in n8n 3.0, so it should import and run after the upgrade.
Nodes used (10)
- Airtable Trigger
n8n-nodes-base.airtableTrigger - Edit Fields (Set)
n8n-nodes-base.set - Remove Duplicates
n8n-nodes-base.removeDuplicates - Code
n8n-nodes-base.code - If
n8n-nodes-base.if - No Operation, do nothing
n8n-nodes-base.noOp - Loop Over Items (Split in Batches)
n8n-nodes-base.splitInBatches - Airtable
n8n-nodes-base.airtable - Gmail
n8n-nodes-base.gmail - Switch
n8n-nodes-base.switch
From the author
Who's it for Teams that keep change requests in Airtable and need a second pair of eyes before anything is applied: database changes, access grants, refunds, supplier payments. How it works 1. A new row in the Change Requests table starts a run. Rows a human…