Turn a Sales Navigator saved search into a daily Lemlist outbound queue

By General Input

Every weekday morning, pull fresh leads from a Sales Navigator saved search, write a personalized opener for each one, and drop them into a Lemlist campaign.

Integrations

  • PhantomBuster
  • Lemlist
  • Slack Bot

Type

Agentic Task

Categories

  • Sales
  • Marketing

Build me an agent workflow that turns a single LinkedIn Sales Navigator saved search into a hands-off daily personalized outbound queue in Lemlist.

Trigger: cron, every weekday (Monday through Friday) at 6:00am in my timezone.

Step 1. Use the PhantomBuster Launch Agent action to launch my Sales Navigator Search Export Phantom. I will configure the agent ID and pass the saved Sales Navigator search URL as an argument. Treat the launch as asynchronous and capture the container ID returned.

Step 2. Wait for the run to finish. Poll using PhantomBuster Fetch Agent Output no more often than once every 10 seconds, watching the status field until the most recent container is no longer running. Stop polling once it is finished (or after a reasonable timeout like 20 minutes, in which case post a Slack failure recap and exit).

Step 3. Once finished, call PhantomBuster Fetch Container Result Object for that container ID to get the structured array of leads. Each lead typically includes first name, last name, headline, current job title, company name, LinkedIn profile URL, and (when PhantomBuster found it) a work email.

Step 4. For each lead in the result set: (a) if there is no email, skip the lead and increment a missing_email counter; (b) call Lemlist Get Lead by Email with the lead's email and check whether any returned record is already attached to the target campaign ID. If yes, skip and increment a duplicate counter.

Step 5. For each remaining lead, use built-in AI generation to write a single-sentence personalized opener (an icebreaker) based on the lead's headline, current role, and company name. Keep it under 200 characters, conversational, specific to something in their profile, and never generic flattery. Avoid em dashes.

Step 6. Call Lemlist Create Lead in Campaign for the target campaign with email, first name, last name, company name, LinkedIn profile URL, and the AI-generated icebreaker mapped to a custom variable named 'icebreaker' (or whatever name I configure). The first email in my Lemlist sequence already references {{icebreaker}}, so Lemlist injects it automatically when sending. Increment an added counter on success.

Step 7. After all leads are processed, use the Slack Bot Send a Message action to post a recap to the channel I configure. The message should include: the campaign name and a clickable link to the campaign in Lemlist, the count of leads added, the count skipped for missing email, the count skipped as duplicates, and the total leads pulled from PhantomBuster.

Configuration inputs I should be able to edit: PhantomBuster agent ID, Sales Navigator saved search URL, Lemlist campaign ID, Lemlist custom-variable name for the icebreaker, Slack channel ID for the recap, and the cron schedule itself.

Use the Slack Bot integration (not the user Slack integration) for the recap, since this is automated workspace messaging. Respect PhantomBuster's polling guidance (no more than once every 10 seconds) and Lemlist's rate limit (20 requests per 2 seconds) when iterating through leads.

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