Enroll Airtable leads into a personalized Mailshake campaign

By General Input

When a new lead lands in Airtable, research the company, write a personal opener, and enroll them into Mailshake with real merge fields.

Integrations

  • Airtable
  • Mailshake

Type

Agentic Task

Categories

  • Sales

Build an agent workflow that enrolls new leads from an Airtable table into a designated Mailshake campaign with a personalized first line, instead of a raw cold add.

Trigger: poll Airtable for new records (event type new_record) on the leads table in a base I will configure. On setup, prompt me for the Airtable base id, table name, the Mailshake campaign id, and let me override the Airtable field names that hold email, name, company, title, and linkedin/website URL.

For each new lead row the agent should:

1. Read the row's name, email, company, title, and linkedin/website fields. If there is no email, do not enroll. Use Airtable Update Record to set the row's status field to skipped_no_email and stop.

2. Do a quick web research pass on the company (recent news, product focus, funding, launches, or hiring signals) to find a specific hook worth mentioning. If nothing specific surfaces and the row is too thin to personalize honestly, do not enroll. Use Airtable Update Record to set the status field to needs_review and stop.

3. Draft two short merge values: a one-sentence personalized opener that references the specific hook (never generic), and a short reason we're reaching out line that ties our value prop to what they seem to care about. Both should read like a human wrote them for this exact person.

4. Call Mailshake Add Recipients on the target campaign, passing the email plus those two values as custom merge fields (for example first_line_opener and personalized_reason). Then call Mailshake Get Add Recipients Status and poll it until the async add job reports isFinished true, so we can capture the per-recipient outcome and the resulting Mailshake recipient id.

5. Use Airtable Update Record to write back to the same row: the Mailshake recipient id, the campaign name, the two personalized lines that were sent, and an enrollment status (enrolled, needs_review, skipped_no_email, or an error string from Mailshake such as duplicate or unsubscribed). The Airtable row is the source of truth for what actually went out.

Rules to bake in: never enroll a lead without a genuine hook, never write a templated opener, respect Mailshake's async add pattern by always polling status before writing results back, and always log the outcome to Airtable even for skipped rows so nothing is silently dropped.

Related prompts

Explore more prompts
Stop cold emails to anyone with a live deal in PipedriveWork the Mailshake Lead Catcher queue from one triage boardMailshake campaign scorecard with reply and bounce breakdownsOutbound revenue attribution board for Mailshake and PipedriveCreator roster board for rebook, test, or pause callsRun your nutrition clients' weekly meal plans from one consoleInstagram UGC rights tracker and repost approval boardA verification desk for every document your team scansBrowse and shortlist creators without burning audit creditsGlobal operations exposure map for your sites and suppliers