HeyReach
Sales OutreachRun LinkedIn outreach at agency scale with HeyReach, driving campaigns, lead lists, sender accounts, and the unified inbox. Agents route replies to the right owner and keep sender health in view.
What This Integration Enables
HeyReach is shaped for the agency case, and the connector reflects that rather than pretending outreach is one sender talking to one list. Campaigns draw from lead lists and run across an assigned set of LinkedIn sender accounts. Sender health is queryable in its own right, down to whether an account needs a re-login, a PIN or a proxy change. Leads carry tags that survive across campaigns. Most usefully, Get Campaigns For Lead answers the question that actually breaks agency outreach at scale: is this person already being worked by somebody else in this workspace? FlowRunner agents can ask that before enrolling anyone, which is the difference between a coordination layer and a faster way to make the same mistake.
The rest of the surface covers the full run. Agents create lists and load them, start, pause and resume campaigns, stop one lead mid-sequence without disturbing the rest, read the unified inbox with filters for sender, campaign, tags and read state, send messages into existing threads from the correct sender, and pull statistics either aggregated or grouped per campaign. Webhooks can be registered, updated and removed from a flow, so event routing is configuration rather than a support ticket. What FlowRunner supplies on top is the human-in-the-loop discipline: the agent gathers everything needed to make the enrolment decision, then hands the decision to the person whose client relationship is on the line.
Without FlowRunner
With FlowRunner
Use Case Scenarios
Deduplicating across every campaign in the workspace
An agency runs several campaigns for overlapping ICPs, sometimes for competing clients. Before any new list is loaded, the agent walks the batch through Get Campaigns For Lead using each lead's profile URL, member id or email. The response names every campaign the person appears in and their status inside it, whether Pending, InSequence, Finished, Paused or Excluded. Leads already InSequence elsewhere are pulled out of the batch and reported. The clean remainder goes to Add Leads To Campaign paired with the sender that should work it. The check costs one call per lead and prevents the failure mode that no amount of good copy recovers from.
Sender health as a pre-flight, not a post-mortem
Before Start Campaign is ever called, the agent walks Get LinkedIn Accounts, then Get Account Status for each sender assigned to the campaign. Any account reporting that it needs a re-login, a PIN submission or a proxy change is surfaced in Slack to the person who owns it, with the campaign it is blocking named. The campaign does not start on a broken sender and then quietly fail; it waits until the sender is healthy or until a human reassigns the leads to a different account.
Reply triage that respects account ownership
A flow polls Get Conversations filtered to unread threads, pulls the full exchange, and classifies each reply. Clear positives are written into HubSpot with the sender account and campaign attached, and the owning account manager is notified with a link to the thread. Ambiguous replies are not answered by the agent at all: they are queued for a person, because a reply on LinkedIn arrives from a named sender the prospect believes they are talking to. When the person has decided what to say, the agent delivers it with Send Message from that same sender account so the thread stays coherent.
Human-in-Loop Highlight
Add Leads To Campaign loads up to a hundred people at a time and pairs each one with the specific LinkedIn sender that will work them. It can also auto-resume a paused or finished campaign so the new leads begin executing immediately. That combination is where the agency-specific damage lives: enrol a lead who is already InSequence under a different campaign, and two people from the same agency, sometimes acting for two different clients, land in the same prospect's LinkedIn inbox within days of each other. No amount of copy quality recovers from that, and there is no unsend. So the agent runs Get Campaigns For Lead across the whole batch first and stops with the evidence in hand: "84 of 100 leads are clean. 16 are already InSequence in Campaign 'Q3 Fintech Outbound' under sender Marta. Drop the 16, move them to Marta's campaign instead, or enrol anyway?" The account lead answers, because the collision is a client-relationship judgment, not a data-quality rule an agent can be trusted to invent.
Agent Capabilities
32 actionsAccount
1- Check API Key Validates the configured API key against the authentication endpoint, returning a confirmation when the key is accepted and a descriptive error when it is missing, deactivated or deleted. Useful as a connection smoke test at the top of a long automation.
Campaigns
9- Get Campaigns Returns a page of outreach campaigns, optionally narrowed by name keyword, status and the sender accounts assigned to them. Each item carries the linked lead list, the assigned senders and progress counters for pending, in-progress, finished and failed leads.
- Get Campaign Retrieves one campaign by id with its status, source lead list, assigned senders, exclusion settings and full progress counters. Used to confirm a campaign is configured the way a flow assumes before writing anything into it.
- Start Campaign Starts a campaign so the sequence begins executing against its leads. The campaign needs at least one assigned sender and a non-empty lead list. Starting is asynchronous, so poll Get Campaign to watch the status move through STARTING to IN_PROGRESS.
- Pause Campaign Pauses a running campaign. Leads mid-sequence stop advancing and no further invitations or messages go out. Progress is preserved, so this is the right response to a client asking for a hold rather than a stop.
- Resume Campaign Resumes a paused campaign so each lead continues from its next pending step rather than restarting the sequence.
- Add Leads To Campaign Imports up to a hundred leads in one call, pairing each with the sender account that should work it, and returns counts of leads added, updated and rejected. Custom field names may contain only alphanumeric characters and underscores. Optionally auto-resumes a paused or finished campaign so the new leads start immediately.
- Stop Lead In Campaign Halts one lead's progression so no further sequence steps run against that person, identified by member id or public profile URL. This is the surgical brake: a deal closes elsewhere, a support issue opens, or a person asks to be left alone, and only that one lead stops.
- Get Campaign Leads Returns the leads currently loaded into a campaign with their profile data, mirroring the Lead Analytics screen. Only pending leads already queued for execution appear, so a flow should not treat this as the full source list.
- Get Campaigns For Lead Finds every campaign a given lead appears in, by email, member id or profile URL, with the lead's status inside each. This is the deduplication check that makes multi-client outreach survivable.
Lists
5- Get Lists Returns a page of lead lists and company lists, optionally filtered by name keyword, type and the campaigns drawing from them. Each item carries the item count and the consuming campaign ids.
- Get List Retrieves one list by id with its name, total item count, type and the campaigns currently drawing leads from it.
- Create List Creates an empty lead list or company list and returns its id. A lead list is created by default when the type is omitted.
- Add Leads To List Imports up to a hundred leads into an existing list. Worth knowing: adding leads to a list is not the same as enrolling them, and a campaign that has already finished or exhausted its list will not pick them up on its own.
- Get List Leads Returns a page of leads stored in a list with profile URL, name, headline, company, position, tags, email and custom fields, narrowable by keyword, profile URL, member id or creation date range. Up to a thousand leads per request, which makes it practical for reconciliation runs.
LinkedIn Sender Accounts
3- Get LinkedIn Accounts Returns a page of connected sender accounts including whether each is active, how many campaigns it is running, and whether its LinkedIn, Sales Navigator and Recruiter sessions are still valid.
- Get LinkedIn Account Retrieves one sender account by id with the same detail. Used to check a single account before assigning volume to it.
- Get Account Status Returns the live connection status of a sender account, reporting whether the session is healthy or whether it needs a re-login, a PIN submission or a proxy change. Poll this after connecting or reconnecting, and before starting anything that depends on the account.
Inbox
2- Get Conversations Returns a cursor-paginated page of conversations across the workspace inbox, filterable by sender account, campaign, free text, lead identity, tags, auto-tags, read state and a date range on the last message. Correspondent email addresses are not included here, so pair it with Get Lead when a flow needs them.
- Send Message Sends a message into an existing conversation from a specific sender account. The subject field is only meaningful for InMail threads and is ignored for ordinary direct messages.
Leads and Tags
6- Get Lead Retrieves the full stored profile for a lead by public profile URL, including headline, company, position, industry, connection and follower counts, experience and education, plus known and enriched email addresses. This is the only endpoint that returns enriched email data.
- Add Lead Tags Adds tags to a lead without disturbing existing ones. When automatic tag creation is off and a supplied tag does not yet exist, the call is rejected, so a flow should either create tags up front or enable the flag deliberately.
- Replace Lead Tags Overwrites the complete tag set on a lead, removing anything not in the supplied list. Use Add Lead Tags instead when existing segmentation must survive.
- Get Lead Tags Returns every tag currently on a lead. Used to branch a flow on segmentation that campaign steps or manual inbox triage already applied.
- Create Tags Creates workspace-level lead tags up front so they can be assigned later without enabling automatic creation. Tags already present are left untouched.
- Check Connection Reports whether a lead is already a first-degree connection of a specific sender account. This is what decides between an invitation and a direct message, and getting it wrong wastes invitation allowance on people you could already message.
Analytics
2- Get Overall Stats Returns aggregated outreach statistics for a date range, broken down per day and as a total, covering profile views, post likes, follows, messages sent and started, replies, InMails, invitations sent and accepted, plus derived reply and acceptance rates.
- Get Stats By Campaign Returns the same figures grouped per campaign rather than aggregated, with campaign id, name and a deleted flag alongside each set of counters. Used for per-client reporting without one call per campaign.
Webhooks
4- Create Webhook Registers a webhook that posts to your URL when a chosen outreach event fires, optionally restricted to specific campaigns. Leaving the campaign list empty subscribes across the whole workspace. HeyReach does not publish the delivered payload schema, so consume the raw request body.
- Get Webhooks Returns a page of registered webhooks with target URL, subscribed event, campaign filter and active flag. Custom headers are omitted unless explicitly requested.
- Update Webhook Updates a webhook's name, URL, event, campaign filter or active flag. Because empty fields keep their current value, this doubles as a way to pause a subscription by toggling Active off.
- Delete Webhook Permanently removes a webhook so deliveries stop. The deletion cannot be undone, so re-registration is the only way back.
Frequently Asked Questions
What can FlowRunner do with HeyReach?
FlowRunner agents can run Check API Key, Get Campaigns, and Get Campaign in HeyReach, plus 29 more actions.
Does connecting HeyReach to FlowRunner require OAuth?
No. HeyReach connects to FlowRunner with an API key, no OAuth flow required.
Can HeyReach trigger a FlowRunner workflow automatically?
HeyReach doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.
Start building with HeyReach
$100 in credits. No card required. Connect in minutes.