Auto-enrich new Airtable prospects with Datagma

When a new prospect lands in Airtable, find their verified work email, mobile, title, and company details, then write everything back to the row.

Deterministic Code
AirtableDatagmaSalesOperationsLead EnrichmentData Sync

Build a code workflow that auto-enriches new prospect rows in Airtable using Datagma so SDRs work from populated records instead of bare LinkedIn URLs.

Trigger: Airtable poll, event type new_record, on my Prospects table. I will configure the base and table at setup.

Step 1. Airtable Get Record. Read the newly created record so we have its current values for linkedin_url, full_name, and company. Use the record id from the trigger payload.

Step 2. Datagma Enrich Person or Company. Call this with the LinkedIn URL when present, otherwise fall back to full_name plus company. Set personFull=true, companyFull=true, and phoneFull=true so we get the verified work email, mobile, current title, seniority, company size, industry, country, and technologies. Treat the response carefully: a 200 OK with code 5 means not found, not a successful match. Code 3 means a bad argument or bad API key and should surface as a workflow error.

Step 3. Airtable Update Record on the same record id. Map Datagma fields into the row: work_email, mobile_phone, current_title, seniority, company_size, industry, country, technologies. Only write a column when Datagma returned a value for it, so existing rep-entered data is not blanked out. Also set enrichment_status to enriched.

Not-found branch. If Datagma returned code 5, skip the field map and call Airtable Update Record with enrichment_status set to not_found. The outbound view filters on enrichment_status = enriched, so not_found rows drop out cleanly instead of looking like a successful enrichment with blank fields.

Error handling. On any non-code-5 failure from Datagma, set enrichment_status to error and include a short reason in an enrichment_notes column so I can retry later. Do not silently swallow the error.

Field mapping is fixed and deterministic, the inputs are structured, and there is no agent reasoning required, so this should be built as a code workflow with discrete nodes.

Additional information

What does this prompt do?
  • Watches your Airtable Prospects table and runs the moment a new row appears.
  • Takes the LinkedIn URL (or name plus company) on that row and pulls a verified work email, mobile phone, current title, seniority, company size, industry, country, and tech stack.
  • Writes each detail back into its matching column so reps open a fully populated row instead of a bare LinkedIn link.
  • Marks rows as not_found when the contact cannot be matched, so they drop out of outbound lists instead of looking like silent failures.
What do I need to use this?
  • An Airtable workspace with a Prospects table that has columns for LinkedIn URL, work email, mobile, title, seniority, company size, industry, country, technologies, and an enrichment status field.
  • A Datagma account with API credits available.
  • Roughly five minutes to map your column names to the data points returned by the enrichment.
How can I customize it?
  • Change the source field. If your reps drop in full names or company domains instead of LinkedIn URLs, swap the input the workflow reads from the row.
  • Pick the data you want. Turn off mobile phone lookups if you only care about email, or skip company-level fields if you already have firmographics.
  • Tune the not_found behavior. Send a Slack alert, copy the row to a manual review table, or just let it sit with the status flag so it never enters outbound.

Frequently asked questions

Does this work if my reps only paste a LinkedIn URL?
Yes. A LinkedIn profile URL alone is enough for Datagma to identify the person and return work email, phone, title, and the matched company. Full name plus company is a fine fallback when no LinkedIn URL is available.
What happens when Datagma cannot find the contact?
The row is stamped with an enrichment status of not_found instead of being left half-empty. That way your outbound view can filter on successful matches only, and you do not waste a sequence slot on a blank record.
Will this overwrite data my reps have already typed in?
By default the workflow only fills empty cells and writes the enrichment status. You can flip it to overwrite if you want Datagma to be the source of truth, or limit overwrites to specific columns like phone.
How fast does a new prospect get enriched?
New rows are picked up on a short polling interval, so most prospects are populated within a couple of minutes of being added. There is no need for reps to click a button or run a script.
Can I run this against my existing backlog of un-enriched rows?
Yes. Trigger a one-time pass over the table by toggling a column on rows that already exist, or extend the workflow to fan out across everything missing a work email.

Stop opening LinkedIn for every new prospect.

Connect Airtable and Datagma once, and Geni fills every new row with verified email, phone, and firmographics.