Recycle stuck HeyReach leads into Instantly cold email every Monday

By General Input

Every Monday at 7am, sweep the leads that ghosted your LinkedIn outreach and reload them into cold email as a second channel, with a Slack recap of what moved.

Integrations

  • HeyReach
  • Instantly
  • Slack Bot

Type

Agentic Task

Categories

  • Sales

Every Monday at 7am, run an agent that recycles non-responding HeyReach LinkedIn leads into Instantly cold email as a second channel, then posts a Slack recap of what moved.

Trigger: cron, weekly on Monday at 7am in my local timezone.

Step 1 — Enumerate active LinkedIn campaigns. Call HeyReach Get All Campaigns to list my campaigns. Keep ones that are currently active or were recently active (skip drafts and archived). Paginate until exhausted.

Step 2 — For each campaign, pull the non-responders. Call HeyReach Get Leads From Campaign and filter to leads who finished the sequence without a reply and without an accepted connection. These are the candidates to rescue.

Step 3 — For each candidate, call HeyReach Get Lead to fetch the lead detail, including their email and current tags. If the lead has no email on file, count it as "skipped for missing email" and move on. If their tags already include a prior moved-to-email-* marker, count it as "already recycled" and skip — this is how we avoid pulling the same person twice on future runs.

Step 4 — Dedupe against Instantly. For each remaining candidate, call Instantly Search Campaigns by Lead Email with their email. If they're already enrolled in any Instantly campaign, count them as "already in Instantly" and drop them.

Step 5 — Map HeyReach campaigns to Instantly campaigns by name. For each HeyReach campaign, find the Instantly campaign whose name matches (exact match first, then close match on the campaign name stem). If no Instantly campaign matches a given HeyReach campaign, skip that whole group and surface it in the recap so I can fix the naming.

Step 6 — Bulk-load the qualified leads. For each HeyReach → Instantly mapping, call Instantly Add Leads in Bulk with the matched Instantly campaign id and the qualified leads (email plus first name, last name, company, and LinkedIn URL where available). Use Instantly's built-in duplicate and blocklist checks as a second safety net.

Step 7 — Tag the moved leads in HeyReach. For every lead that was successfully loaded into Instantly, call HeyReach Add Tags To Lead with the tag moved-to-email-<YYYY-MM-DD> using today's date. This is the marker future runs use to skip them in step 3.

Step 8 — Post the recap. Call Slack Bot Send a Message to my #outbound channel (configurable) with a per-campaign breakdown: candidates found, moved to email, skipped for missing email, skipped as already in Instantly, and skipped because no matching Instantly campaign was found. Include totals at the top so I can read it in five seconds.

Notes: don't add LinkedIn leads who already accepted the connection (those are warm and should stay on LinkedIn). Respect HeyReach's rate limits and Instantly's per-call lead caps. If a campaign has no candidates, omit it from the recap rather than printing zeros. If Slack posting fails, retry once, then continue.

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