Skip to main content
The HeyReach source reads workspace outreach data through an HTTP manifest. It is alpha. The manifest has been checked against HeyReach’s published API collection, but has not been tested against a live workspace.

Configuration

Use your workspace API key from HeyReach’s API settings. Requests send it in the X-API-KEY header to https://api.heyreach.io/api/public. Keys do not expire, but can be revoked. Connection testing lists campaigns. See the official API reference. Organization management uses a separate organization key and is outside this connector’s scope. A workspace key is sufficient for the core defaults.

Resources

Campaigns, LinkedIn accounts, lead lists, list leads, campaign leads, and conversations are selected by default. Other resources are optional. Selecting a child also reads its parent to discover IDs; only selected resources are written. Lead and company lists are fetched separately by list type. list_leads emits one row per list and profile URL; campaign_leads emits one row per campaign and lead entry. lead_details fetches the richer lead profile for each list member, including existing enrichment data. It does not start an enrichment job. Company list entries have no documented stable identifier, so list_companies has no primary key. Conversations and chatrooms use the sender account and conversation ID as their key. Messages stay nested in JSON, along with sender and correspondent profiles. chatrooms fetches each conversation individually using the documented detail endpoint. The API reference does not specify a separate message paginator or promise unlimited history; the connector preserves the returned message array. The v3 conversation listing omits correspondent emails and custom fields. lead_details retrieves those fields for leads discovered in lead lists. Statistics resources each emit one snapshot for the configured date range, with daily and overall results retained as JSON. campaign_stats groups those results by campaign, including the API’s deleted-campaign indicator. Unprojected fields are retained in each resource’s raw column. Organization workspaces, users, and cross-workspace senders are not included. API-key inventories, proxy credentials, enrichment jobs, and write operations are also excluded. Reverse lead-to-list and lead-to-campaign lookup endpoints are not separate resources; membership is read from each list or campaign. Campaign sequences are excluded because the API can return a bodyless 200 for campaigns without a sequence. My Network is excluded because its documented zero-based page numbering does not fit the current page paginator.

Modes

All resources support full reads. Lead list filters use creation time. Campaign lead filters use action or failure times, and conversation filters use last-message time. These do not reliably capture edits to older records, tags, read status, or other metadata, so the connector does not advertise incremental reads. Use full-replace writes for list_companies, overall_stats, and campaign_stats, which have no stable row key. Full reads do not emit deletion events; use full-replace writes when records removed upstream should disappear downstream.

Behavior

  • Pagination: Campaigns, accounts, lists, memberships, blacklists, and webhooks use JSON-body offset pagination with 100 records per request. Conversations use the v3 cursor endpoint with 100 records per request and its hasNextPage signal. Details, reference data, and statistics use single responses.
  • Rate limits: HeyReach documents a shared limit of 300 requests per minute. The connector limits requests to four per second to leave room below that ceiling. Other clients using the same quota can still cause throttling.
  • Coverage: Campaign lead results include only pending leads already queued for execution, not all pending members of the campaign’s source list. Read list_leads to obtain that list’s membership separately.
  • Parent reads: Lead details, chatrooms, and account status make one request per parent. List and campaign memberships are scoped by their parent IDs. Live validation of these child requests remains pending, including the API’s acceptance of numeric parent IDs serialized as decimal strings.
  • Errors: Permission, invalid-ID, and not-found errors fail the read. The connector does not treat them as empty datasets.
  • Webhooks: Reads webhook configuration with custom headers disabled. It does not receive or replay webhook events.
  • Consistency: Offset reads are not snapshots. Concurrent inserts, removals, or reordering can affect page membership during a run.