Send Airtable prospects to Smartlead the moment they're ready

By General Input

The instant a prospect in Airtable is marked Ready to Outreach, they get pushed into the right Smartlead campaign and your rep gets a Slack heads-up.

Integrations

  • Airtable
  • Smartlead
  • Slack Bot

Type

Agentic Task

Categories

  • Sales
  • Operations

Build me an agent workflow that turns Airtable into the source of truth for outbound intake by auto-onboarding qualified prospects into the right Smartlead campaign.

Trigger: poll Airtable using the new_or_updated_record event on my Prospects table. The workflow should only fire when the row's Status field flips to Ready to Outreach. Ignore any update where Status is a different value, and ignore rows that already have a Smartlead campaign ID logged back on the row (that column signals the row has already been synced).

For each fired record: read the row fields from Airtable (email, first name, last name, company, plus any additional columns the target campaign uses as custom variables), and read the target campaign name from the Airtable row (there is a column that names which Smartlead campaign this prospect belongs in).

Skip and log any row that is missing a valid email address. Do not send those rows to Smartlead.

Resolve the campaign name to a campaign ID by calling Smartlead's List Campaigns, then call Smartlead's Add Leads to Campaign to import the prospect into that campaign. Map Airtable fields to Smartlead's lead schema: email, first_name, last_name, company_name, and pass any extra columns through as custom_fields so the campaign's sequence variables render correctly. Respect Smartlead's 400-lead-per-call cap: if the trigger delivers a burst that exceeds 400 leads for the same campaign, chunk the import into multiple Add Leads to Campaign calls of at most 400 leads each.

After the import succeeds for a given row, call Airtable's Update Record on that row to write back three things: the assigned Smartlead campaign ID, a Synced At timestamp (current UTC time), and a Status of In Campaign. This write-back is what prevents duplicate imports on future runs.

When the run finishes, post a short summary via Slack Bot's Send a Message to a channel the user picks (default #outbound). The message should tell the rep how many leads were imported, into which campaigns (grouped by campaign name), how many rows were skipped for missing email, and how many rows were skipped because they already had a campaign ID on file.

Integrations to use: Airtable (List Records for reading, Update Record for the write-back), Smartlead (List Campaigns to resolve names to IDs, Add Leads to Campaign for the import), and Slack Bot (Send a Message for the rep recap). Ask me for the Airtable base ID, table name, target Slack channel, and the exact column names in my Prospects table when you set the workflow up.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them