> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ziplined.io/llms.txt
> Use this file to discover all available pages before exploring further.

# HeyReach

> Send new people from a Ziplined view to an active HeyReach campaign.

Connect HeyReach once, then choose which People view should send new leads to which campaign.

## Before you connect

* Access to a HeyReach workspace with API access and an active campaign.
* A Ziplined workspace with outreach sync enabled. If it is unavailable, contact Ziplined support.
* People with a valid LinkedIn profile URL. Missing or invalid profiles are skipped.

Review the sequence, senders and sending schedule in HeyReach first. Adding leads to an active campaign can start outreach automatically.

## API key

1. Open the intended workspace in HeyReach.
2. Go to **Integrations → HeyReach API** and open the API-key options.
3. Generate a key if needed and copy it.
4. [Open HeyReach in Ziplined](https://app.ziplined.io/settings/integrations?connect=heyreach).
5. Give the connection an **Account label** that your team will recognize, paste the **API key**, then select **Check access**.

Use the general HeyReach API key, rather than a key created for another integration. Keep it private. The account label is your own description; it is not proof of the provider workspace identity.

Checking access validates the key without adding a lead or starting a sync. From Settings you can select **Done** to save only the connection, or **Set up a sync** to continue. An existing connection can be reused with **Use account**.

## Choose a target

1. Select the People view you want to use.
2. Select your HeyReach campaign. Use **Load more targets** if necessary.
3. Confirm its name and active state. Paused campaigns and campaigns whose state cannot be verified cannot start a sync.
4. Select **Start sync**. Wait for **Preparing** to become **On**.

Ziplined does not activate or resume HeyReach campaigns. Only new people observed after preparation are eligible; this does not export everyone already in your view.

## Personalize your messages

Each lead comes with up to four custom fields about why it is new:

| Field | What it holds |
| - | - |
| `post_text` | The text of the post the person reacted to, up to 1,000 characters. |
| `post_topic` | What that post is about, in 2 to 4 words, for example "founder-led sales". Left out when the post has no topic yet. |
| `post_url` | A link to that post. |
| `signal` | What the person did, for example "Commented on Anna's post about founder-led sales". |

Use them as custom variables in your HeyReach messages. A field without a value is left out, so give each variable a fallback.

## First transfer

Use a dedicated test destination and a person you have permission to test with. An active campaign can send real messages.

1. Start the sync and wait until its status is **On**, after **Preparing** finishes.
2. Have one eligible test person enter the People view after preparation. People already in the view are excluded.
3. Check the transfer history in Ziplined, then find that person in the selected destination in the provider.
4. Check the provider's own campaign settings before sending to a wider audience.

**Check access** does not send a test lead. **Accepted by provider** means the request was accepted, not that outreach was sent. Ziplined does not import replies or campaign activity. See [transfer statuses and controls](https://docs.ziplined.io/integrations/outreach-sync.md).

## Troubleshooting

| What you see | What to check |
| - | - |
| Access check fails | Confirm the key belongs to the intended workspace and has not been revoked. Generate a replacement key in HeyReach if needed. |
| Campaign missing | Create the campaign in HeyReach, verify the workspace, then select **Reload targets**. Load more pages if available. |
| Campaign cannot be selected | Make it active in HeyReach if you intend it to send, then reload targets. Ziplined does not resume it for you. |
| A person is skipped | Check for a valid LinkedIn profile URL and whether that person was already submitted to this destination. |
| Transfer outcome is uncertain | Check the person in HeyReach before taking action. Uncertain transfers are held rather than automatically resent. |
| Needs action after a key change | Use **Reconnect** on the existing connection. Reconnecting does not flush waiting transfers; review the sync afterwards. |

For pause, resume, stop and disconnect behavior, see [Manage an outreach sync](https://docs.ziplined.io/integrations/outreach-sync.md#manage-a-sync).

## Official HeyReach help

* [Find the HeyReach API key](https://help.heyreach.io/en/articles/10006980-how-to-integrate-heyreach-with-smartreach)
* [Integrations and API help](https://help.heyreach.io/en/collections/10421873-integrations-api)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.