Recycle stuck HeyReach leads into Instantly cold email every Monday
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.
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.
Additional information
What does this prompt do?
- Looks at every active LinkedIn outreach campaign and finds the leads who finished the sequence without replying or accepting.
- Pulls their work email where you already have one and quietly skips leads with no email or leads already being emailed.
- Loads the rest into the matching cold email campaign so they get a second touch on a different channel.
- Tags the recycled leads in LinkedIn so the same person never gets pulled twice, then posts a Slack summary with per-campaign counts.
What do I need to use this?
- A HeyReach account where your LinkedIn campaigns live.
- An Instantly account with cold email campaigns named to match your LinkedIn ones, so the agent knows where to load each lead.
- A Slack workspace and a channel for the Monday recap.
How can I customize it?
- Change the day and time. A 7am Monday window is the default, but you can pick any cadence (every other Monday, weekday mornings, end of the week).
- Decide which campaigns are in scope. You can target only certain LinkedIn campaigns by name, or skip ones you'd rather keep LinkedIn-only.
- Choose where the recap lands. Swap the Slack channel for a DM, or change the format to a longer summary that calls out top campaigns.
Frequently asked questions
Will the same lead get pulled twice if I run this every week?
What happens if a lead doesn't have an email on file?
Does this avoid double-emailing someone already in a cold email campaign?
How does it know which cold email campaign each lead belongs in?
Can I review what's about to move before it actually loads?
Related templates
Stop letting LinkedIn non-responders die in your pipeline.
Connect HeyReach, Instantly, and Slack once, and Geni recycles ghosted LinkedIn leads into cold email every Monday morning.