Auto-enrich new Airtable leads with People Data Labs
When new leads land in your Airtable table, fill in name, title, company, seniority, location, and LinkedIn URL automatically. No drafting, no Slack pings, just a clean enriched row.
Build me a deterministic code workflow that auto-enriches new leads in my Airtable Leads table using People Data Labs. No agent reasoning, no Slack messages, no drafting. The shape is fixed: poll for new rows, bulk-enrich them with PDL, write the results back.
Trigger: Airtable poll, event type new_record, on a specific base and table that I will configure. Each fired row gives me a recordId and the row's fields.
For each batch of fired rows (up to 100 at a time), do this:
1. Read the email column (required) and the LinkedIn URL column (optional) from each row. Skip rows that have neither.
2. Call People Data Labs Bulk Person Enrichment in a single request with up to 100 items. For each item, send email as the primary identifier, and profile (LinkedIn URL) when present. PDL returns an array in the same order as the input, with a status per item.
3. For each returned item: if status is 200, pull the canonical fields from data — full_name, job_title (current title), job_company_name (current company), job_company_website or job_company_domain, job_title_levels or seniority, location_locality (city), location_region (region/state), location_country, linkedin_url. Map these onto the originating Airtable row by recordId.
4. If status is 404 (no match), set the row's PDL Status field to "no_match" so analysts can see which rows could not be enriched. Do not write the data columns for those rows.
5. Write everything back to Airtable using Update Multiple Records. Airtable caps batch updates at 10 records per call, so chunk the updates into groups of 10 and loop through them. Include the PDL Status field set to "enriched" on successful rows.
Use People Data Labs Bulk Person Enrichment for the enrichment call (one request per batch, not one per row — that is the whole point). Use Airtable Update Multiple Records for the writeback. You can optionally use Airtable List Records up front if it helps dedupe within a batch, but the poll trigger should already give clean new rows.
Field names on the Airtable side are configurable, but assume reasonable defaults: Email, LinkedIn URL, Full Name, Title, Company, Company Domain, Seniority, City, Region, Country, LinkedIn (output), PDL Status. Let me rename them in the workflow config.
Keep the flow strictly deterministic. No model calls, no judgment, no enrichment on rows that already have a Full Name unless I flip a setting. The output is just a clean enriched Airtable row.
Additional information
What does this prompt do?
- Watches your Airtable Leads table for new rows and queues them for enrichment.
- Batches up to 100 pending leads at a time and sends them to People Data Labs in a single bulk call.
- Writes the matched fields back to the same row: full name, current title, company, company domain, seniority, city, region, country, and LinkedIn URL.
- Marks rows that come back without a match as no_match so your team can spot them at a glance.
What do I need to use this?
- An Airtable workspace with a Leads table that includes an email column (and optionally a LinkedIn URL column).
- A People Data Labs account with an active API key.
- Empty columns on the table for the fields you want filled in, plus a status column for the enrichment result.
How can I customize it?
- Change which Airtable base and table get watched, and rename the columns the workflow writes to.
- Pick which enriched fields you want stamped on the row. Drop the ones you do not need, or add others like job role family.
- Switch the input identifier from email to LinkedIn URL, or use both for higher match rates.
Frequently asked questions
Does this cost a People Data Labs credit for every lead, even bad ones?
How many leads can it process at once?
What if my Leads table only has emails, not LinkedIn URLs?
Will it overwrite columns I already filled in by hand?
Can I use this for company enrichment instead of people?
Stop hand-enriching leads in Airtable.
Connect Airtable and People Data Labs once, and Geni keeps every new lead row clean, named, and routable.