Send Airtable prospects to Smartlead the moment they're ready

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.

Agentic Task
AirtableSmartleadSlack BotSalesOperationsData SyncOnboarding AutomationLead Enrichment
PromptCreate

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.

Additional information

What does this prompt do?
  • Watches your Airtable Prospects table and reacts the moment a row flips to Ready to Outreach.
  • Reads the prospect's fields and drops them into the Smartlead campaign named on the row, mapping email, name, company, and any custom variables you use.
  • Writes the campaign ID, sync time, and a new In Campaign status back to Airtable so you can see at a glance who is already live.
  • Posts a short recap in Slack telling your rep how many leads went into which campaign, so nothing gets lost in the shuffle.
What do I need to use this?
  • An Airtable base with a Prospects table that has a status field and a column naming the target Smartlead campaign.
  • A Smartlead account with the campaigns you plan to load already created.
  • A Slack workspace and a channel where the rep should get the recap message.
How can I customize it?
  • Point it at a different Airtable table or a different status label (for example Approved for Outreach or Ready to Send).
  • Change which Airtable columns map to Smartlead fields, including any custom variables your campaign template expects.
  • Choose the Slack channel or a direct message for the recap, and adjust the wording of the summary.

Frequently asked questions

What happens if a prospect is missing an email address?
Rows without a valid email are skipped so Smartlead never rejects the batch. The Slack recap calls out how many rows were skipped and why.
Will the same prospect ever get imported twice?
No. Once a row has a Smartlead campaign ID written back to Airtable, it is treated as already synced and ignored on future runs.
What if a rep marks hundreds of prospects Ready to Outreach at once?
Smartlead accepts up to 400 leads in a single import, so the workflow batches larger runs into multiple imports and reports the total in Slack.
Can I use this with more than one Smartlead campaign?
Yes. The campaign to load into is read from a column on each Airtable row, so different prospects can go to different campaigns in the same run.
Does the Airtable status have to be exactly Ready to Outreach?
No. You can tell the workflow which status label to watch for, so it matches whatever your team already uses in Airtable.

Stop copy-pasting prospects into Smartlead by hand.

Connect Airtable, Smartlead, and Slack once, and every Ready to Outreach prospect lands in the right campaign automatically.