Skip to main content
Use this guide if you already send cold email with Instantly. Instantly is built for volume, so this setup slows it down for one-to-one backlink pitches. Instantly sends from your mailbox. AgentLinkOps keeps the prospect and confirms the link. Each Instantly lead carries its AgentLinkOps watch id, so outcomes come back to the right prospect. Starting from nothing? Hunter costs less and finds addresses too.

What it costs

From Instantly’s pricing page and help center, checked October 20, 2026: Instantly’s help center says API access is on all Outbound plans and webhooks need Hypergrowth or above. Its pricing table appears to list the API under Hypergrowth only. Confirm with Instantly before you pay for Growth to run this guide. AgentLinkOps checks come from your workspace allowance as in the default guide.

Before you start

  • AgentLinkOps connected to your agent, with prospects saved as in step 1 of the default guide.
  • Instantly sending from your real mailbox. Don’t send backlink pitches from lookalike domains.
  • An Instantly API key for your agent, with only these scopes: leads:create, leads:read, leads:update and campaigns:read. Leave out emails:* and all:*. Those let the key read and send mail.
Instantly’s MCP server is at https://mcp.instantly.ai/mcp and takes the key in the Authorization header. It exposes the whole API, so rely on the key’s scopes to limit your agent, and confirm that they do (see the end of this guide). Don’t put the key in the URL, and never paste it into a chat.

1. Set the campaign up for one-to-one pitches

Create the campaign in the Instantly app with these settings. The key above can’t create campaigns; if your agent creates it through the API instead, the key also needs campaigns:create and the request needs a name and campaign_schedule.
Plain text without tracking reads like a personal email, and stopping on reply keeps follow-ups from reaching an editor who already answered. Twenty a day is plenty for pitches written one at a time.

2. Add each prospect as a lead

Your agent creates each lead with the AgentLinkOps watch id as a custom variable:
skip_if_in_campaign makes a retry safe. One lead carries one watch id: if the same editor covers two of your prospect pages, pitch both in one email and record the second page’s outcome by hand. Your agent can write each lead’s opening line into another custom variable. Review the messages, then activate the campaign yourself.

3. Bring outcomes back once a day

Your agent lists the campaign’s leads (POST /api/v2/leads/list). Each lead returns its status, its lt_interest_status, its reply count, last_step_timestamp_executed (when Instantly last sent it a step) and, inside payload, your alo_watch_id. The agent updates that watch with update_link_watch: Opens, clicks and Out of Office (0) change nothing. When more than one row matches, apply the lowest row above the catch-all: a lead that was sent a step and then bounced is abandoned. Instantly’s lead and webhook data can include reply text. Bring back the status and date only: no subjects, bodies, reply text or addresses. Follow the rule in the default guide: never move a status backwards. Updating an outcome never starts a check.
Subscribe to email_sent, reply_received, lead_interested, lead_not_interested, lead_wrong_person, email_bounced and lead_unsubscribed. Instantly documents no signature on deliveries, so add a custom header with a long random secret and have your receiver reject requests without it. The key then also needs webhooks:create and webhooks:read. Every reply_received delivery contains the full reply. Drop it before you write anything. Keep the daily read to catch missed or repeated deliveries.
When an editor says the link is live, run the check from step 4 of the default guide. A Won interest status in Instantly is your record of the deal. Only a check that finds your link makes the prospect won in AgentLinkOps.

What we haven’t tested

We wrote this guide from Instantly’s public developer documentation on October 20, 2026. We haven’t run it end to end in a live Instantly account. Three points to confirm in your own account:
  • That your plan accepts API calls, given the conflict on the pricing page.
  • That the MCP server refuses calls outside the key’s scopes.
  • That listed leads return alo_watch_id inside payload.
If any of these fails, record outcomes from the Instantly app by hand with update_link_watch.