Airtable + OpenAI: enriched leads with draft emails
You start with a simple list of companies. Then the real work begins: googling leadership pages, guessing titles, finding an email format, and trying to write something that doesn’t sound like a template.
This is the kind of mess that burns out sales reps first, but marketers doing outbound and small teams doing their own prospecting feel it too. With Airtable OpenAI enrichment, you turn “Company name + website” into a researched decision-maker and a draft outreach email you can actually send.
Below, you’ll see how the workflow runs inside n8n, what it produces in Airtable, and how to adapt it so your team can review and approve before anything goes out.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Airtable + OpenAI: enriched leads with draft emails
flowchart LR
subgraph sg0["When clicking "Test workflow" Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking 'Test workflow'", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items", pos: "b", h: 48 }
n2["<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/httprequest.dark.svg' width='40' height='40' /></div><br/>Lead Person Research"]
n3@{ icon: "mdi:robot", form: "rounded", label: "Lead Analyzer", pos: "b", h: 48 }
n4@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", pos: "b", h: 48 }
n5@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser3", pos: "b", h: 48 }
n6@{ icon: "mdi:robot", form: "rounded", label: "Email Content Creator", pos: "b", h: 48 }
n7@{ icon: "mdi:robot", form: "rounded", label: "Evaluator", pos: "b", h: 48 }
n8@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser1", pos: "b", h: 48 }
n9@{ icon: "mdi:brain", form: "rounded", label: "OpenAI - 4o-mini", pos: "b", h: 48 }
n10@{ icon: "mdi:brain", form: "rounded", label: "OpenAI o3-mini", pos: "b", h: 48 }
n11@{ icon: "mdi:brain", form: "rounded", label: "OpenAI - 4o-mini - low", pos: "b", h: 48 }
n12["<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/merge.svg' width='40' height='40' /></div><br/>Merge-Search"]
n13@{ icon: "mdi:cog", form: "rounded", label: "Wait-5-sec", pos: "b", h: 48 }
n14["<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 record"]
n15@{ icon: "mdi:cog", form: "rounded", label: "Wait-8-sec", pos: "b", h: 48 }
n16["<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/>Get input records"]
n17["<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/merge.svg' width='40' height='40' /></div><br/>Merge-loop"]
n18@{ icon: "mdi:swap-vertical", form: "rounded", label: "Business_Info", pos: "b", h: 48 }
n19@{ icon: "mdi:swap-vertical", form: "rounded", label: "Jina_API_Key", pos: "b", h: 48 }
n7 --> n17
n17 --> n14
n13 --> n6
n15 --> n1
n19 --> n16
n12 --> n3
n18 --> n19
n3 --> n13
n14 --> n15
n10 -.-> n3
n1 --> n2
n1 --> n12
n1 --> n17
n9 -.-> n6
n16 --> n1
n2 --> n12
n6 --> n7
n11 -.-> n7
n4 -.-> n3
n8 -.-> n7
n5 -.-> n6
n0 --> n18
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 n0 trigger
class n3,n4,n5,n6,n7,n8 ai
class n9,n10,n11 aiModel
class n14,n16 database
class n2 api
classDef customIcon fill:none,stroke:none
class n2,n12,n14,n16,n17 customIcon
The Problem: Lead research and first-touch outreach take forever
Outbound looks simple until you try to do it well. You find a company, open ten tabs, hunt for the right person, and still end up with a generic “Hi there” because you ran out of time. The worst part is the mental switching. Airtable, LinkedIn, the website, Google, your notes, then your email tool. By the time you’re ready to write, you’ve already spent 10 minutes just getting context, and mistakes creep in (wrong name, wrong role, stale info).
It adds up fast. Here’s where it breaks down in day-to-day work.
- Researching a single company can easily take 15–20 minutes before you even type a subject line.
- Teams default to bland outreach because personalization takes too long at scale.
- The “best contact” choice is inconsistent, so reps waste cycles debating who to target.
- Data ends up scattered across notes, inbox drafts, and spreadsheets, which makes reporting and follow-up sloppy.
The Solution: AI-researched leads and outreach drafts inside Airtable
This workflow starts with the companies you already track in Airtable and does the heavy lifting for you. n8n pulls any rows marked as unprocessed, then runs “deep research” on each company using Jina AI (via an HTTP request) to surface useful context and likely decision-makers. Next, an AI agent acts like a lead analyst, picking the best person to contact instead of dumping a random list into your lap. From there, another AI agent writes a personalized outreach email and subject line using your business details, offer, and target audience. Finally, a third AI agent evaluates the email quality and tone, then n8n updates the original Airtable record with the lead name, lead email, subject, body copy, and a review summary so you can approve before sending.
The workflow begins when you run it manually in n8n (great for controlled batches). It then loops through Airtable records marked “no,” researches each company, generates contact + email content, and writes everything back into the same table so the output stays tied to the source record.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you add 30 new companies to Airtable each week. Manually, if you spend about 20 minutes researching and writing per company, that’s roughly 10 hours of work before you even start sending. With this workflow, you run one batch, let it research and draft in the background, then you spend maybe 2 minutes per record reading the email, tweaking a line, and marking it ready. That’s about an hour of review time instead of losing a whole day.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Airtable for storing companies and writing results back.
- OpenAI to select leads and draft/evaluate emails.
- Jina AI API key (get it from your Jina AI dashboard).
Skill level: Intermediate. You’ll connect credentials, map Airtable fields, and tweak a few prompts for your offer and tone.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
You trigger a run when you’re ready. The workflow uses a manual start, so you control when a batch processes (useful when you want human review before sending anything).
Airtable records are pulled and grouped. n8n fetches rows where processed is set to “no,” then loops through them in manageable batches so you don’t overload APIs.
Research and lead selection happen next. Jina AI gathers company context, then the “Lead Generation Specialist” agent chooses the best decision-maker and structures the output into clean fields (name, email, and related details).
Email drafting, scoring, and write-back finishes the loop. The “Content Creator Specialist” drafts a subject and email body, the evaluator reviews quality and tone, and Airtable gets updated with the draft plus a summary so the record is ready for approval.
You can easily modify the email style to match your brand voice based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Manual Start Trigger
This workflow starts manually so you can test and iterate on your lead outreach process before automating it.
- Add and open Manual Start Trigger.
- Leave all fields as default—no configuration is required.
- Confirm the execution flow begins with Manual Start Trigger → Company Details Setup.
Step 2: Connect Airtable
These nodes read unprocessed leads and write email results back to Airtable.
- Open Retrieve Lead Records and select the Airtable Base and Table matching your lead database.
- Set Operation to
searchand Filter By Formula to={processed} = "no". - Credential Required: Connect your Airtable credentials in Retrieve Lead Records.
- Open Update Airtable Row and select the same Base and Table.
- Confirm the update mappings, especially: id to
{{ $json.id }}, lead_name to{{ $json.output.contact_name }}, email_subject to{{ $json.output.email_subject }}, and email_text to{{ $json.output.email_wrote }}. - Credential Required: Connect your Airtable credentials in Update Airtable Row.
email_subject, email_text, processed), updates will fail. Align your table schema first.Step 3: Set Up Company and Jina Configuration
These nodes define your business context and the Jina Deep Search API token used for lead research.
- Open Company Details Setup and set the values for BUSINESS_NAME, BUSINESS_INFORMATION, BUSINESS_KEY_BENEFITS, LANDING_PAGE_URL, and LEAD_TARGET_AUDIENCE.
- Open Jina Token Settings and set jina_api to your Jina API token (currently blank).
- Open Prospect Deep Research and verify the URL is
https://deepsearch.jina.ai/v1/chat/completionsand the Method isPOST. - In Prospect Deep Research, confirm the Authorization header uses
Bearer {{ $('Jina Token Settings').item.json.jina_api }}. - Keep the JSON body expression as-is to pass
{{ $json.Company_name }}and{{ $json.Company_website }}into the deep search prompt.
Step 4: Set Up Lead Selection and Email Generation AI
This section selects the best lead, drafts the outreach email, and reviews it for quality.
- Open Lead Selection Agent and review the prompt. It uses
{{ $json.choices[0].message.content }}from deep research and company info from Company Details Setup. - Ensure OpenAI o3 Mini Model is connected to Lead Selection Agent as the language model. Credential Required: Connect your OpenAI credentials in OpenAI o3 Mini Model.
- Lead JSON Parser is attached as the output parser for Lead Selection Agent. Add credentials to the parent model node (OpenAI o3 Mini Model), not the parser.
- Open Compose Outreach Email and review the prompt fields that reference
{{ $json.output.* }}and values from Company Details Setup. - Ensure OpenAI 4o Mini Model is connected to Compose Outreach Email. Credential Required: Connect your OpenAI credentials in OpenAI 4o Mini Model.
- Email JSON Parser is attached as the output parser for Compose Outreach Email. Add credentials to the parent model node (OpenAI 4o Mini Model), not the parser.
- Open Email Quality Review and confirm it evaluates
{{ $json.output.email_wrote }}and returns a scored review. - Ensure OpenAI 4o Mini Low is connected to Email Quality Review. Credential Required: Connect your OpenAI credentials in OpenAI 4o Mini Low.
- Review JSON Parser is attached as the output parser for Email Quality Review. Add credentials to the parent model node (OpenAI 4o Mini Low), not the parser.
Step 5: Configure Looping, Merging, and Throttling
The workflow batches leads, pauses between calls, and merges results before updating Airtable.
- Open Iterate Lead Batches and keep Reset set to
falseto maintain batch processing. - Confirm Prospect Deep Research and Combine Research Streams are reached from the second output of Iterate Lead Batches.
- Open Combine Research Streams and keep Mode as
combinewith Combine By set tocombineAll. - Open Brief Pause 5s to throttle AI email generation and leave defaults.
- Open Brief Pause 8s and confirm Amount is
8seconds before looping back to Iterate Lead Batches. - Open Combine Loop Results and keep Mode as
combinewith Combine By set tocombineAll.
Step 6: Test and Activate Your Workflow
Validate the workflow end-to-end before turning it on for regular processing.
- Click Execute Workflow from Manual Start Trigger to run a test.
- Check that Retrieve Lead Records returns records where
processedisno. - Verify that Prospect Deep Research returns a response and Lead Selection Agent outputs structured lead data.
- Confirm Compose Outreach Email produces
email_subjectandemail_wrote, and Email Quality Review returns a summary and score. - Validate Update Airtable Row updates the record with
processedset toyesand writes the generated email fields. - Once confirmed, toggle the workflow to Active for production use.
Common Gotchas
- Airtable credentials can expire or need specific permissions. If things break, check the connection in n8n’s Credentials panel and confirm the base/table access first.
- 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.
Frequently Asked Questions
About an hour if your Airtable base is already set up.
No. You’ll mostly connect accounts and map fields. The only “technical” part is editing prompts, and that’s just text.
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 and Jina AI usage, which is usually a few cents per company depending on prompt length and research depth.
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, and you should. Update the “Business Information” (Business_Info) values first so the agents know your offer, audience, and landing page. Then tweak the prompts inside the “Lead Selection Agent,” “Compose Outreach Email,” and “Email Quality Review” nodes to enforce tone (short, direct, formal, etc.), add required personalization points, and set a minimum evaluation score before writing back to Airtable.
Usually it’s a permissions issue or the base/table changed. Re-check the credentials used by “Retrieve Lead Records” and “Update Airtable Row,” then confirm the table still has the required fields like processed, Company_name, Company_website, and Company_email. If you renamed fields, n8n may be writing to columns that no longer exist. Also worth checking Airtable rate limits if you run big batches back-to-back.
Plenty for small teams: hundreds of companies in a run is normal if you batch them. On n8n Cloud, your practical limit is your monthly executions plus how fast OpenAI and Jina AI respond. If you self-host, you’re mostly limited by your server and API rate limits, so it scales as your infrastructure does.
Often, yes. This workflow uses multiple AI steps (research, selection, drafting, evaluation) plus looping and structured parsing, and n8n handles that kind of logic cleanly without turning into a fragile chain of zaps. You can also self-host, which keeps long-running or high-volume enrichment from getting expensive fast. Zapier or Make can still be fine for a simple “Airtable row → draft email” flow, especially if you don’t need deep research. If you want help choosing, Talk to an automation expert and describe your volume and review process.
You keep Airtable as the source of truth, and the workflow fills in the missing pieces. Run it in batches, review the drafts, and spend your time on real conversations instead of tab juggling.
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.