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.

Deterministic Code
AirtableApolloReply.ioSalesOperationsLead EnrichmentData Sync

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?
The workflow still adds the contact to Reply.io using the fields already on the Airtable row, and marks the row as not enriched so you can spot which leads went out with thinner data.
How does it pick which Reply.io sequence to use?
It reads a sequence column on the Airtable row. That means different lead types, like inbound demo requests versus event scans, can route into completely different cadences without any branching logic on your end.
Will the same lead get enrolled twice if I edit the row later?
No. After enrollment, the workflow stamps a processed timestamp and the Reply.io contact ID back on the row, and only acts on rows that have not been processed yet.
Do I need a paid Apollo plan?
You need a plan that allows API access to people enrichment, since enrichment consumes Apollo credits. Free trial plans usually include a small allowance to test with.
Can I run this on an existing Airtable table without rebuilding it?
Yes. As long as your table has an email column and a column that names the Reply.io sequence to use, you can point the workflow at it. The workflow adds the result columns it needs on first run.

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.