HeyReach list review desk before LinkedIn campaign enrollment

By General Input

Open any HeyReach list, see who is already in a campaign or already in your CRM, clean the batch, and enroll only the people you approved.

Integrations

  • HeyReach
  • HubSpot
  • Apollo

Type

App

Categories

  • Sales
  • Operations

Build me a review desk for LinkedIn outreach lists. Before I load anyone into a HeyReach campaign I want one screen where I can see exactly who is about to get messaged, clean the list, and only then enroll. I run multi account outreach, so the whole point of the app is catching the people who should never be in this batch: someone already enrolled in another campaign, someone who is already a customer, someone with an open deal.

The app opens on a list picker. Use HeyReach Get All Lists to show every lead list with its name, type and size, sorted so the biggest and most recently touched lists are easy to find. Clicking a list opens the review table for it.

The review table shows every person in the selected list via HeyReach Get Leads From List, paging through until the whole list is loaded, with name, headline, company and LinkedIn profile URL. Then add the checks I currently do by hand as columns, filled in per lead: Get Campaigns For Lead for every campaign this person is already enrolled in and its status, Get Lists For Lead for the other lists they sit in, and Get Tags For Lead for the tags they carry. Fetch these per row in the background with a visible loading state and a concurrency limit, since HeyReach allows 300 requests per minute across all endpoints, and cache the results for the session so switching lists and coming back does not refetch everything. Leads are identified primarily by their LinkedIn profile URL, so use profileUrl as the row key everywhere in the app.

Add a CRM status column pulled from HubSpot. For each lead, use Search Contacts to find a matching contact by email first and then by name plus company, and Search Deals to find open deals associated with that contact or its company. Show the lifecycle stage, the owner and any open deal with its stage and amount. Anyone who is already a customer, or who has an open deal, gets flagged for exclusion with a clear reason on the row rather than being silently removed. Let me set which lifecycle stages and which deal stages count as off limits, and remember that setting.

Give me an approved and excluded state per row, with the exclusion flags pre-selecting people for exclusion but never deciding for me. I want filters and bulk selection across the table: show only people in another active campaign, only people flagged by the CRM, only untagged people, only people in more than one list. A running counter at the top should say how many are approved, how many are excluded, and why the excluded ones were excluded.

From the table I need real actions. Drop the selected people from the list with Delete Leads From List. Tag the selected people with Add Tags To Lead, both from a free text field and from a saved set of exclusion reason tags. Spin the approved segment off as its own clean list using Create Empty List and then Add Leads To List, batching at most 100 leads per request and showing progress as the batches complete. Every one of these should ask for confirmation and show me exactly how many people it will touch before it runs.

Enrollment is the last step. Let me pick the destination campaign from HeyReach Get All Campaigns and the sender account from Get All LinkedIn Accounts, then push the approved batch with Add Leads To Campaign. Bake in the platform rules. A campaign must have been launched at least once before leads can be added, so only offer those campaigns and explain why the others are unavailable. Adding leads to a paused campaign reactivates it, so warn me clearly when the campaign I picked is paused. Custom field names have to match the HeyReach sequence variables exactly and can only contain letters, numbers and underscores, so validate the personalization field name against that rule in the UI and block enrollment with a readable error rather than letting a bad field name fail at the API.

Warn loudly about double enrollment. If anyone in the approved batch is already in another active campaign, show a blocking warning that names those people and the campaigns they are in, and make me confirm deliberately before the enrollment goes through. Same warning if the sender account I picked is already the sender on another campaign these people are in. Also show how many leads this sender is taking on in this batch so I can spread workload across accounts instead of overloading one.

Add a Research and personalize button that starts a background agent over the approved batch. For each approved lead the agent runs Apollo People Enrichment on the person and Apollo Organization Enrichment on their company, then writes a single line opener specific to that person, grounded in what it actually found: their role and tenure, a recent company signal, headcount or funding, whatever is real. It must not invent facts. The agent posts the drafts back into the app, one row per lead with the enrichment it used and the opener it wrote, so I can approve or edit each opener individually. Show the agent's progress while it runs and let me keep working on the table meanwhile.

Nothing gets enrolled until I approve it. Only leads with an approved opener carry personalization into Add Leads To Campaign as a custom field, and leads I approved without an opener enroll with no personalization. Persist per list the approval and exclusion decisions, the exclusion reasons, and the approved openers, so I can close the app mid review and pick the list back up exactly where I left it. Show a short history of what was done to each list: how many were dropped, how many were tagged, which segment lists were created, and which batches were enrolled into which campaign with which sender.

Related prompts

Explore more prompts
Turn Mailjet email clicks into ranked HubSpot follow-upsiMessage campaign console with pre-flight checks and delivery boardA searchable RFP answer library your bid team drafts fromSee which target accounts just started advertising on LinkedInAccount health board that puts product usage next to your CRMLook up a customer's full chat history mid conversationLusha prospecting workbench with credit-safe revealsWhich companies your LinkedIn ads reach, matched to your CRMLead response desk with a running clock on every new leadApprove Lusha enrichment field by field before HubSpot saves it