Enrich new Airtable leads with Apollo and enroll them in Reply.io
When a new lead lands in your Airtable inbox, enrich them with Apollo, push them into the right Reply.io sequence, and stamp the result back on the row.
Build a code-based workflow that runs whenever a new record is added to my Airtable "Lead Inbox" table, enriches the lead with Apollo, enrolls them in a Reply.io sequence, and writes the result back to the Airtable row.
Trigger: poll Airtable for new records on the Lead Inbox table. The table includes at least these columns: Email, First Name, Last Name, Company, Company Domain, Reply Sequence ID (the Reply.io sequenceId to use), and a few result columns I want stamped back (Reply Contact ID, Sequence Enrolled, Enrichment Status, Processed At).
Step 1: Call Apollo People Enrichment using the row's email. If email is missing, fall back to first name plus company domain. Capture title, company name, industry, employee count, and LinkedIn URL from the Apollo response.
Step 2: Build a Reply.io contact payload with firstName, lastName, email, title, and company taken from Apollo when present and from the Airtable row as a fallback. Include custom fields for industry, employee count, and LinkedIn URL. Then call Reply.io Add Contact to Sequence, passing the sequenceId from the Reply Sequence ID column on the Airtable row so different lead types route to different sequences.
Step 3: Call Airtable Update Record on the original row to write back the Reply.io contact ID, the sequence enrolled, an enrichment status of "enriched: true" or "enriched: false", and a processed_at timestamp. This stamp is what prevents the row from being reprocessed.
Error handling: if Apollo returns no match, do not fail the run. Still enroll the contact in Reply.io with the raw Airtable fields, and set the enrichment status to "enriched: false" so I can spot which rows went out thin. If Reply.io returns a 409 because the contact is already in the sequence, treat that as a successful enrollment and still stamp the row.
Additional information
What does this prompt do?
- Watches your Airtable lead inbox and runs the moment a new row appears, so leads start a sequence the same day they land.
- Looks up each lead in Apollo to fill in title, company, industry, employee count, and LinkedIn URL before any outreach is sent.
- Adds the enriched contact to the right Reply.io sequence based on a column on the lead row, so different lead types get different cadences.
- Stamps the Reply.io contact ID, the sequence enrolled, the enrichment status, and a processed timestamp back on the Airtable row so nothing gets touched twice.
What do I need to use this?
- An Airtable base with a lead inbox table that has at least an email column and a sequence selector column.
- An Apollo account with API access for people enrichment.
- A Reply.io account with the sequences you want to enroll leads into already set up.
How can I customize it?
- Change which Airtable column decides the Reply.io sequence, so you can route by lead source, persona, or region.
- Adjust which Apollo fields get mapped into Reply.io custom fields, like adding seniority, location, or department.
- Decide what to do when Apollo cannot match a lead: enroll them anyway with the raw Airtable data, or skip and flag the row for manual review.
Frequently asked questions
What happens if Apollo cannot find the lead?
How does it pick which Reply.io sequence to use?
Will the same lead get enrolled twice if I edit the row later?
Do I need a paid Apollo plan?
Can I run this on an existing Airtable table without rebuilding it?
Stop hand-loading leads into Reply.io.
Connect Airtable, Apollo, and Reply.io once, and Geni enriches and enrolls every new lead the moment it lands.