Gmail + Airtable: approved lead replies, logged
Lead follow-up breaks in boring ways. A form submission lands, someone “will reply later,” the draft never happens, and you find the missed lead a day late in your inbox.
This Gmail Airtable automation hits marketing managers first because they own response speed and consistency. But sales reps juggling inbox chaos feel it too, and founders end up firefighting the mess. You get fast, AI-drafted replies with a human approval step, plus clean Airtable logging for every outcome.
Below, you’ll see exactly how the workflow runs, what it replaces, and what you need to launch it without turning your process into a full CRM migration.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Gmail + Airtable: approved lead replies, logged
flowchart LR
subgraph sg0["On form submission Flow"]
direction LR
n0@{ icon: "mdi:swap-vertical", form: "rounded", label: "Workflow Configuration", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Extract Lead Data", pos: "b", h: 48 }
n2@{ icon: "mdi:robot", form: "rounded", label: "Generate Email Draft", pos: "b", h: 48 }
n3@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n4@{ icon: "mdi:cog", form: "rounded", label: "Wait for Approval", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check Approval Status", pos: "b", h: 48 }
n6@{ icon: "mdi:message-outline", form: "rounded", label: "Send Email to Lead", pos: "b", h: 48 }
n7["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Create Lead in Airtable"]
n8["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Update Lead Status (Rejected)"]
n9["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/form.svg' width='40' height='40' /></div><br/>On form submission"]
n10@{ icon: "mdi:message-outline", form: "rounded", label: "Send Approval Request Email", pos: "b", h: 48 }
n1 --> n2
n3 -.-> n2
n4 --> n5
n9 --> n0
n6 --> n7
n2 --> n10
n5 --> n6
n5 --> n8
n0 --> n1
n10 --> n4
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n9 trigger
class n2 ai
class n3 aiModel
class n5 decision
class n7,n8 database
classDef customIcon fill:none,stroke:none
class n7,n8,n9 customIcon
The Problem: Leads slip through and follow-ups get messy
Inbound leads feel “easy” until you’re the one replying. You have to read the message, figure out what they want, write a decent response, remember your standard links, and still sound human. Then someone asks, “Did we reply?” and you realize nothing is tracked unless a person remembered to log it. Worse, the first reply sets the tone. If your response is late or inconsistent, you lose momentum and you rarely get it back.
It adds up fast. Not because any single step is hard, but because you repeat it all day and the quality drifts when you’re busy.
- Drafting “good enough” replies eats about 10 minutes per lead when you include context switching and hunting for past examples.
- Replies vary by person, so prospects get mixed signals about pricing, timelines, or next steps.
- Manual CRM updates don’t happen consistently, which means reporting turns into guesswork.
- Without an approval step, one rushed email can create a promise your team never intended to make.
The Solution: AI drafts in Gmail, humans approve, Airtable tracks everything
This workflow turns a new form submission into a ready-to-send Gmail draft that your team can approve or reject. It starts when a lead submits your n8n Form. Their details get cleaned up and structured (name, email, company, message), then OpenAI generates a tailored follow-up email draft using your company variables like your name, title, and website. That draft is sent to a designated internal address for review with clear Approve and Reject links. Once someone clicks, the workflow either sends the approved email to the lead through Gmail or marks it as rejected for revision, and then logs the full story to Airtable with timestamps.
The workflow begins with the form trigger, then moves into data parsing and AI drafting. After that, it routes into an approval loop (wait for the decision), then takes the correct action in Gmail and Airtable so you can track outcomes without chasing anyone.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you get 15 inbound leads a week. Manually, if each reply takes about 10 minutes to draft and send, that’s roughly 2.5 hours weekly, plus another 30 minutes trying to keep Airtable (or a spreadsheet) updated. With this workflow, a lead submits the form, the draft appears for approval in minutes, and your team spends maybe 2 minutes reviewing and clicking Approve or Reject. That’s around 2 hours back most weeks, and the logging happens automatically.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Gmail to send approval requests and replies.
- Airtable for lead records, drafts, and statuses.
- OpenAI API key (get it from the OpenAI dashboard under API keys)
Skill level: Beginner. You’ll connect accounts, paste IDs (Base/Table), and test the approval links.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A lead submits your form. The n8n Form Trigger captures the inbound details the moment they hit submit, so you’re not waiting on inbox rules or a manual export.
The lead data gets cleaned and prepared. n8n parses the fields you care about (name, email, company, message) and merges them with your “company variables” so the email draft includes the right signature details.
OpenAI drafts the follow-up and Gmail requests approval. The AI writes a reply based on the lead’s message, then Gmail sends that draft to your internal approver address with simple Approve/Reject links.
Airtable becomes the audit trail. When the reviewer clicks a link, the workflow either sends the approved email to the lead via Gmail and logs it in Airtable, or records a rejection outcome for revision and follow-up.
You can easily modify the approval routing to fit one approver or a rotating team based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Form Trigger
Set up the public form that captures lead submissions and starts the workflow.
- Select Incoming Form Trigger and set Form Title to
Leads. - Set Form Description to
We'll reach out to you soon!. - In Form Fields, add required fields for Name, Email (type:
email), Company, Phone (placeholder(222)222-2222), and Message. - Keep the default webhook settings so the trigger can accept submissions.
Tip: Submit a test entry in the form once saved to confirm all required fields are returned in the payload.
Step 2: Connect Airtable
Prepare Airtable connectivity and placeholder values used by downstream nodes.
- Open Setup Variables and set the placeholders for airtableBaseId and airtableTableId to your Airtable IDs (currently
<__PLACEHOLDER_VALUE__Airtable base ID__>and<__PLACEHOLDER_VALUE__Airtable table ID__>). - Fill in company profile values: companyName, senderName, senderTitle, companyEmail, companyPhone, companyAddress, and social URLs (LinkedIn, Twitter, Facebook, Website).
- Ensure includeOtherFields remains enabled so original form fields continue through the workflow.
⚠️ Common Pitfall: Leaving placeholder values in Setup Variables will cause incorrect branding and may prevent Airtable logging from matching your base and table.
Step 3: Set Up Lead Parsing
Normalize incoming form data into consistent fields used by the AI and email templates.
- Open Parse Lead Details and verify the assignments use the provided expressions:
- Set leadName to
{{ $json.body.name || 'Unknown' }}, leadEmail to{{ $json.body.email || '' }}, leadCompany to{{ $json.body.company || '' }}, leadPhone to{{ $json.body.phone || '' }}, and leadMessage to{{ $json.body.message || '' }}. - Keep includeOtherFields enabled to preserve the original payload for later nodes.
Step 4: Set Up AI Drafting with Compose Draft Email
Generate a personalized draft email using the AI agent and OpenAI model.
- Open Compose Draft Email and set Prompt Type to
define. - Paste the provided prompt into Text so it references lead fields and returns only the email body. Confirm the template includes lead placeholders like
{{ $json.Name }}and{{ $json.Message }}. - Open OpenAI Chat Engine and select the model
gpt-4.1-mini. - Credential Required: Connect your openAiApi credentials in OpenAI Chat Engine.
Tip: OpenAI Chat Engine is connected as the language model for Compose Draft Email—add credentials to OpenAI Chat Engine, not the agent node.
Step 5: Configure Approval and Email Actions
Send the draft for approval, wait for review, and route to the approved email path.
- In Dispatch Approval Email, set Send To to your internal review address (currently
"<__PLACEHOLDER_VALUE__Sales Email__>) and keep Subject asNew Lead Email Draft - Approval Required. - Keep the HTML in Message and verify approval links use
{{ $resumeWebhookUrl }}?action=approveand rejection links use{{ $resumeWebhookUrl }}?action=reject. - Credential Required: Connect your gmailOAuth2 credentials in Dispatch Approval Email.
- In Pause for Review, set Resume to
webhook, Resume Amount to24, and enable Limit Wait Time. - In Verify Review Decision, keep the condition that checks
{{ $('Pause for Review').item.json.query.action }}equalsapprove. - In Send Lead Email, set Send To to
{{ $('Incoming Form Trigger').item.json.Email }}and keep the HTML template in Message with dynamic values from Setup Variables and Compose Draft Email. - Credential Required: Connect your gmailOAuth2 credentials in Send Lead Email.
⚠️ Common Pitfall: If the approval email address remains a placeholder, no reviewer will receive the approval message and the workflow will stall at Pause for Review.
Step 6: Configure Airtable Logging
Log approved and rejected leads into Airtable with different status values.
- In Log Lead to Airtable, select your base and table, and verify fields map to expressions like
{{ $('Incoming Form Trigger').item.json.Email }}and{{ $('Compose Draft Email').item.json.output }}, with Status set toEmail Sent - Approved. - Credential Required: Connect your airtableOAuth2Api credentials in Log Lead to Airtable.
- In Record Rejected Lead, keep the same mappings but set Status to
Email Rejected - Needs Review. - Credential Required: Connect your airtableOAuth2Api credentials in Record Rejected Lead.
Execution Flow Note: After Verify Review Decision, approved submissions go to Send Lead Email and then Log Lead to Airtable; rejected submissions go to Record Rejected Lead.
Step 7: Test and Activate Your Workflow
Run a full test to confirm approvals, email delivery, and Airtable logging before enabling production.
- Click Execute Workflow and submit a test entry through Incoming Form Trigger.
- Open the approval email from Dispatch Approval Email and click the approve link to resume Pause for Review.
- Confirm the lead receives the email from Send Lead Email and that a new record appears in Airtable via Log Lead to Airtable.
- Repeat the test with the reject link to ensure Record Rejected Lead is populated.
- When all tests succeed, toggle the workflow to Active for production use.
Common Gotchas
- Gmail credentials can expire or need specific permissions. If things break, check the Gmail node credentials in n8n and confirm the connected Google account still has access.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- OpenAI prompts are generic by default. Add your brand voice and “what not to say” early or you will be editing outputs forever.
Frequently Asked Questions
Usually about 10 minutes once your accounts are connected.
No. You’ll mostly connect credentials, paste your Airtable IDs, and tweak the email wording.
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 OpenAI API costs, which are usually a few cents per draft.
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.
Yes, but you’ll want to adjust the “Dispatch Approval Email” logic so it routes to the right reviewer. Many teams send approvals to a shared inbox first, then add a second path that forwards to a specific rep based on company name, region, or service type. You can also change the approval links to write the approver name into Airtable for accountability. If you want stricter control, add a second approval gate before “Send Lead Email.”
Usually it’s expired Google OAuth access, so reconnect the Gmail credential in n8n and re-test the “Dispatch Approval Email” node. Also confirm you didn’t switch Google accounts mid-setup. If it only fails during sending, check the From address and permissions on the mailbox you’re trying to send from.
A lot, as long as your n8n plan and inbox can keep up.
Often, yes, if you care about the approval loop and detailed logging. n8n makes it easier to pause, wait for a decision, branch on approve vs. reject, and then continue without hacks. You also get a self-hosting option, which is handy when volumes grow and per-task pricing gets annoying, frankly. Zapier or Make can be faster to set up for simple “form → email” sends, but approvals add complexity quickly. Talk to an automation expert if you want a quick recommendation for your exact stack.
You end up with faster replies, cleaner records, and a follow-up process that doesn’t depend on someone having a “good inbox day.” Set it up once, then let the workflow carry the load.
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.