Skip to content

Automate cold email with n8n

Install the FoxReach community node for n8n, connect your API key, and build automation workflows to manage leads and campaigns programmatically.

Overview#

The FoxReach n8n community node lets you connect FoxReach to hundreds of other apps - CRMs, spreadsheets, Slack, webhooks, and more. Create leads from form submissions, add them to campaigns automatically, and react to replies in real time.

This guide walks you through installation, setup, and three practical workflows you can build today. n8n is one of several ways to plug into FoxReach; the integrations page lists the others, including the SDKs, the CLI, and the MCP server.

Prerequisites#

Before you start, make sure you have:

  • A FoxReach account with an API key (Settings > Integrations > API Keys)
  • An n8n instance (self-hosted or n8n Cloud)
  • At least one connected email account and a campaign in FoxReach

If you have never created an API key or a webhook in FoxReach before, the API keys and webhooks tutorial walks through both screens in the dashboard.

Step 1: Install the Node#

In your n8n instance, go to Settings > Community Nodes, click Install, and enter the package name:

n8n-nodes-foxreach

The package is published on npm as n8n-nodes-foxreach. The n8n docs cover the GUI installation flow in more detail, including the note that only an owner or admin can install community nodes on a self-hosted instance.

This adds two nodes to your canvas:

  • FoxReach - The action node. The published version (0.6.0) exposes eight resources: Lead, Campaign, Sequence, Template, Email Account, Inbox, Analytics, and Webhook. Warmup, Verification, Lead Finder, Managed Inboxes, and Tracking Domain are in beta and arrive with the next node release
  • FoxReach Trigger - Start workflows when events happen (replies, bounces, opens, campaign status changes, lead changes)
FoxReach node in n8n showing the available actions and triggers

If you're self-hosting n8n, you can also install via CLI: npm install n8n-nodes-foxreach in your n8n root directory and restart.

Step 2: Connect Your API Key#

  1. Open any FoxReach node on the canvas
  2. Click Create New Credential under the FoxReach API credential
  3. Paste your API key (starts with otr_...)
  4. Click Save - n8n will verify the connection

Your API key is stored securely in n8n's credential vault and sent as the X-API-Key header on every request.

You can generate API keys in FoxReach under Settings > Integrations > API Keys. Click Create API Key, give it a name, and keep both the read and write scopes selected. The trigger node needs write access to register its webhook, and the full key is only shown once in the API Key Created dialog.

The API Key Created dialog in FoxReach under Settings > Integrations > API Keys

Available Operations#

Lead Operations#

OperationDescription
CreateAdd a new lead with email, first name, last name, company, and other fields
GetRetrieve a lead by ID
Get ActivityGet the activity history for a lead
Get Many (beta)List leads, optionally filtered by exact email, search text, status, or tags
Get Tags (beta)List all lead tags in the workspace with lead counts
UpdateModify any field on an existing lead
DeleteRemove a lead from your workspace
Find by EmailSearch for a lead using their email address
Bulk ImportImport many leads in one request

Campaign Operations#

OperationDescription
CreateCreate a new campaign
GetRetrieve campaign details by ID
Get ManyList all campaigns
Get Accounts (beta)List email accounts assigned to a campaign
Get Leads (beta)List leads enrolled in a campaign
Get Provider Mix (beta)See how a campaign's mailboxes and leads split across mail providers
Find by NameSearch for a campaign by name
UpdateUpdate a campaign (must be paused or draft)
DeleteDelete a draft campaign
Add LeadAdd a lead to a specific campaign
Remove LeadRemove a lead from a campaign
Add AccountsAdd email accounts to a campaign
Remove AccountRemove an email account from a campaign
StartStart a campaign
PausePause an active campaign
ResumeResume a paused campaign

Other Resources#

The node has grown beyond leads and campaigns since the first release. The remaining resources cover the rest of the API surface:

ResourceOperations
SequenceCreate, Get Many, Update, Delete sequence steps for a campaign
TemplateCreate, Get, Get Many, Update, Delete
Email AccountGet, Get Many. Beta: Create (password auth only), Get Health, Get Warmup, Update, Reconnect, Enable Warmup, Disable Warmup, Start Google Sign-In, Delete
InboxGet Many, Get Conversation, Get Stats, Send Reply, Update (read, starred, category). Beta: Get, Get Categorize Stats, Delete
AnalyticsCampaign Stats, Workspace Overview
WebhookCreate, Get Many, Get Events, Update, Delete
Warmup (beta)Get Logs, Get Pool, Get Stats, Get Tags
Verification (beta)Verify Email, Verify Bulk, Get Credits (verifying needs a paid plan)
Lead Finder (beta)Search People, Search Companies, Count People, Count Companies, Get Filter Options, Reveal, Get Reveals, Get Reveal, Add to Leads, Get Lists, Get Saved Searches, Get Credits
Managed Inboxes (beta)Check Domain, Search Domains, Suggest Domains, Quote, Get Config, Get Orders, Get Order, Get Mailboxes
Tracking Domain (beta)Add, Get Many, Verify, Delete

Trigger Events#

The FoxReach Trigger node starts your workflow when these events occur:

EventDescription
New Reply ReceivedA prospect replies to your outreach email
Reply CategorizedA reply is categorized (interested, not interested, etc.)
Email SentAn email is successfully sent from a campaign
Email FailedAn email fails to send
Email BouncedA sent email bounces back
Email OpenedA recipient opens a tracked email
Email Clicked (beta)A recipient clicks a tracked link in an email
Campaign StartedA campaign is started
Campaign PausedA campaign is paused
Campaign CompletedAll leads in a campaign have been processed
Campaign Leads Added (beta)Leads are added to a campaign
Lead CreatedA new lead is created
Lead UpdatedA lead is updated

Two notes on the event list:

  • Email Opened only fires for campaigns that have Track opens switched on in the campaign settings, and FoxReach adds the open pixel from the second step of a sequence onwards, never on the first cold email. Email Clicked (beta) needs Track link clicks switched on the same way. Both only fire for steps sent as HTML.
  • Lead Created, Lead Updated, Campaign Started, Campaign Paused, and Campaign Leads Added (beta) fire for changes made in the FoxReach app (and, for leads, Lead Finder and unsubscribes). Changes your workflow makes through the FoxReach node go through the API and do not fire them. See Event Types for exactly what fires each event.

The trigger flattens each delivery for you. The output item contains eventId, eventType, and timestamp plus every field of the event payload at the top level.

Workflow 1: Sync New CRM Contacts to FoxReach#

Automatically create leads in FoxReach whenever a new contact is added to your CRM.

Nodes:

  1. CRM Trigger (e.g., HubSpot, Pipedrive, or Google Sheets) - fires when a new contact is created
  2. FoxReach > Create Lead - creates the lead with mapped fields
  3. FoxReach > Add Lead to Campaign - adds them to your outreach campaign

Setup:

  1. Add your CRM trigger node and connect it
  2. Add a FoxReach node, set Resource to Lead and Operation to Create
  3. Map the fields from your CRM: Email, First Name, Last Name, Company
  4. Add another FoxReach node, set Resource to Campaign and Operation to Add Lead
  5. Enter the Campaign ID and connect the Lead ID from the previous step

Workflow 2: Notify Slack on Interested Replies#

Get instant Slack notifications when a prospect shows interest.

Nodes:

  1. FoxReach Trigger - set event to Reply Categorized
  2. IF Node - filter where category equals "interested"
  3. Slack > Send Message - post to your sales channel

Setup:

  1. Add the FoxReach Trigger node, select Reply Categorized
  2. Add an IF node: check if category equals interested
  3. On the true branch, add a Slack node with a message template:
New interested reply from {{$json.fromEmail}}

Subject: {{$json.subject}}
Campaign ID: {{$json.campaignId}}
Category: {{$json.category}}

The Reply Categorized payload carries replyId, fromEmail, subject, accountId, campaignId, and category, plus categoryConfidence and an intents map (asks a question, wants a call, mentions pricing, and so on) since September 2026. If you want the campaign name in the message, add a FoxReach > Campaign > Get node between the IF node and Slack and read name from its output.

Workflow 3: Auto-Pause Campaign on High Bounce Rate#

Protect your sender reputation by pausing campaigns that are bouncing too much.

Nodes:

  1. FoxReach Trigger - set event to Email Bounced
  2. FoxReach > Get Campaign - fetch current campaign stats
  3. IF Node - check if bounce rate exceeds threshold
  4. FoxReach > Pause Campaign - pause it automatically

Setup:

  1. Add the FoxReach Trigger with Email Bounced event
  2. Add a FoxReach node to get the campaign details using the campaignId from the trigger
  3. Add an IF node: divide totalBounced by totalSent from the campaign response and check if the result is above your threshold (e.g., 0.05 for 5%)
  4. On the true branch, add a FoxReach node with Pause operation

FoxReach also has its own bounce circuit breaker that pauses a campaign after a burst of hard bounces, so treat this workflow as a lower, stricter threshold of your own rather than the only safety net.

Tips#

  • Test with a single lead first. Before connecting a large data source, run your workflow manually with one item to verify field mapping.
  • Use the Find operations. Before creating a lead, use Find by Email to check if they already exist. This prevents duplicates.
  • Set up error handling. Add an Error Trigger workflow to catch failures - e.g., if a lead's email is already taken, the API returns a 409 conflict.
  • Rate limits. The FoxReach API allows 100 requests per minute. For bulk imports, use the Lead > Bulk Import operation, or use n8n's batch processing with a wait node between batches.

Troubleshooting#

"401 Unauthorized" error Your API key is invalid or expired. Generate a new one in FoxReach under Settings > Integrations > API Keys.

"404 Not Found" on campaign operations The campaign ID doesn't exist or belongs to a different workspace. Double-check the ID in FoxReach. API keys are workspace-scoped, so a key from one workspace cannot see another workspace's campaigns.

Trigger not firing Make sure the workflow is active (toggled on). FoxReach registers a webhook when you activate the workflow and removes it when you deactivate. Re-activating with the same URL and event returns the existing webhook instead of creating a duplicate, so you will not get double deliveries from toggling a workflow on and off.

Trigger stopped firing after working for a while If your n8n endpoint stops answering with a 2xx, FoxReach retries each delivery after 60 seconds and again after 120 seconds, then marks it failed. After ten consecutive failed deliveries the webhook is disabled automatically. Open Settings > Integrations > Webhooks in FoxReach, check Recent Deliveries on the webhook, fix the endpoint, then click Enable or deactivate and reactivate the workflow.

The Recent Deliveries list on a webhook card in FoxReach, with the status and response of each delivery

Duplicate leads The API returns a 409 error if a lead with the same email already exists. Use the Find by Email operation first, or handle the error with a try/catch pattern in n8n.

What's Next#

The n8n node is currently in beta. We're actively adding more operations and improving the experience. Zapier and Make.com apps are listed as Planned on the integrations page; until they ship, both platforms can call the FoxReach API through their generic HTTP modules and receive FoxReach webhooks through their custom webhook triggers.

Frequently asked questions#

What is the name of the FoxReach n8n node?

The npm package is n8n-nodes-foxreach. Installing it adds two nodes to your n8n canvas: FoxReach, the action node with Lead, Campaign, Sequence, Template, Email Account, Inbox, Analytics, and Webhook resources (Warmup, Verification, Lead Finder, Managed Inboxes, and Tracking Domain are in beta), and FoxReach Trigger, which starts a workflow when a FoxReach event such as a reply or a bounce happens.

Which FoxReach events can start an n8n workflow?

The FoxReach Trigger node lists eleven events: New Reply Received, Reply Categorized, Email Sent, Email Failed, Email Bounced, Email Opened, Campaign Started, Campaign Paused, Campaign Completed, Lead Created, and Lead Updated. Email Clicked and Campaign Leads Added are in beta. Email Opened only fires for campaigns that have Track opens switched on, and the open pixel is added from the second step of a sequence onwards.

Where do I create the API key for n8n?

In FoxReach, open Settings, click the Integrations tab, expand API Keys, and click Create API Key. Give the key a name and keep both the read and write scopes selected, because the trigger node needs write access to register its webhook. The full key, which starts with otr_, is shown once. Paste it into the FoxReach API credential in n8n.

Why does my FoxReach Trigger workflow stop firing?

The trigger registers a webhook in FoxReach when you activate the workflow and removes it when you deactivate. If your n8n URL stops answering with a 2xx, FoxReach retries each delivery three times and disables the webhook after ten consecutive failed deliveries. Check the Recent Deliveries list under Settings > Integrations > Webhooks, fix the endpoint, and re-enable the webhook or reactivate the workflow.

Was this page helpful?
View as MarkdownLast updated November 2, 2026