> ## 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.

# Instantly

> Send new people with verified email addresses to an active Instantly campaign.

Connect your Instantly workspace, then send new people from a Ziplined People view to a campaign.

## Before you connect

* An Instantly Outbound plan with API access. Instantly currently documents API access on all Outbound plans.
* An active Instantly campaign with its sending accounts, sequence and schedule configured.
* A Ziplined workspace with outreach sync enabled.
* A verified email address already available in Ziplined for each person you want to transfer.

The sync does not purchase email enrichment or run a new email search. People without an available verified email are skipped. An active campaign can send email automatically after leads are added.

## API key

1. In the intended Instantly workspace, open **Settings → Integrations → API Keys**.
2. Create a **Version 2** API key named for Ziplined. A v1 key will not work.
3. Select these permissions: `workspaces:read`, `campaigns:read`, and `leads:create`.
4. Generate the key and copy it while it is displayed.
5. [Open Instantly in Ziplined](https://app.ziplined.io/settings/integrations?connect=instantly).
6. Enter an **Account label**, paste the **API key**, and select **Check access**.

These permissions let Ziplined verify the workspace, list campaigns and add leads. You do not need to grant all permissions. Keep the key private.

Checking access adds no lead and starts no sync. Select **Done** to keep just the connection, or **Set up a sync** to continue. Use **Use account** to reuse an existing connection.

## Choose a target

1. Select the People view that should supply leads.
2. Choose the intended campaign. Use **Load more targets** if needed.
3. Confirm the campaign is active. Paused campaigns and campaigns with an unverified state are unavailable.
4. Select **Start sync**, then wait for **Preparing** to become **On**.

Ziplined does not activate or resume your campaign. Current people are excluded; only new people observed after preparation are eligible.

## 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 Instantly sequence. 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 | Use a new v2 key for the correct workspace with `workspaces:read`. Check that your Outbound subscription has API access. |
| Campaigns cannot load | Check the key's `campaigns:read` permission and select **Reload targets**. |
| Adding leads is rejected | Check `leads:create`, campaign state, provider limits and blocklists in Instantly. |
| A person is skipped | Confirm Ziplined already has a verified email. Also check whether the email already exists or is blocked in Instantly. |
| No transfer after starting | Wait for **On** and test with a person newly entering the view. Existing members do not backfill. |
| Outcome is uncertain | Search for the email in Instantly before taking action. Ziplined holds uncertain writes to avoid duplicate submissions. |

If you rotate the key, select **Reconnect** on the existing account rather than creating another connection. Reconnect does not automatically resend waiting people. See [Manage an outreach sync](https://docs.ziplined.io/integrations/outreach-sync.md#manage-a-sync).

## Official Instantly help

* [API v2 and plan access](https://help.instantly.ai/en/articles/10432807-api-v2)
* [API key setup](https://developer.instantly.ai/quickstart)
* [Workspace check](https://developer.instantly.ai/api-reference/workspace/get-workspace)
* [Campaign permissions](https://developer.instantly.ai/api-reference/campaign/list-campaign)
* [Lead import permissions](https://developer.instantly.ai/api-reference/lead/add-leads-in-bulk-to-a-campaign-or-list)


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