n8n Integration Guide

The n8n integration lets you send Bearconnect LinkedIn outreach events directly to an n8n webhook trigger, which starts n8n workflows. Whenever a lead accepts a connection, a message is sent, or another tracked event occurs, Bearconnect sends a JSON payload to your configured n8n webhook URL. This is ideal for building complex automation workflows with conditional logic, self-hosted data processing, and multi-step lead routing - all without writing code.


Table of Contents

  1. What You Need
  2. Production URL vs Test URL
  3. Connecting n8n to Bearconnect
  4. After Connecting
  5. Connecting n8n to a Campaign
  6. Exporting Leads via n8n
  7. Payload Format
  8. Working with Payloads in n8n
  9. Testing Your Connection
  10. Managing Your n8n Integration
  11. Use Cases
  12. Troubleshooting

Quick Start

Already familiar with n8n? Here is the fastest path:

  1. In n8n: Create a workflow with a Webhook trigger node. Switch to the Production tab and copy the Production URL.
  2. Activate the workflow (inactive workflows return 404 on the Production URL).
  3. In Bearconnect: Go to Integrations > n8n > Connect. Paste the Production URL, configure authentication if needed, select events, click Connect.
  4. In Bearconnect: Click Test Connection to verify the webhook is reachable.
  5. In Bearconnect: Open a campaign > Integrations tab > Connect Integration > select your n8n integration and enable events.

Common mistake: Using the Test URL (/webhook-test/) instead of the Production URL (/webhook/). Test URLs only work while the workflow is open in the n8n editor. Always use the Production URL for Bearconnect.


What You Need

  • A Bearconnect account with an active subscription.
  • An n8n instance (cloud or self-hosted) accessible over HTTPS.
  • An n8n workflow with a Webhook trigger node configured.

Production URL vs Test URL

This is the most common source of issues with the n8n integration. n8n provides two webhook URL variants for every Webhook trigger node:

VariantURL PatternWhen It Works
Test URLhttps://your-n8n.com/webhook-test/{uuid}Only while the workflow is open in the n8n editor.
Production URLhttps://your-n8n.com/webhook/{uuid}Whenever the workflow is enabled (active).

Bearconnect only accepts Production URLs. If you paste a test URL, Bearconnect will show the following error:

"This appears to be an n8n TEST webhook URL (/webhook-test/). Please use the Production URL (/webhook/) instead."

How to Get the Production URL

  1. Open your workflow in the n8n editor.
  2. Click on the Webhook trigger node.
  3. In the node settings panel, switch to the Production tab.
  4. Copy the Production URL.

Connecting n8n to Bearconnect

  1. Go to Integrations in the left sidebar of your Bearconnect dashboard.
  2. Find n8n in the Available Integrations section and click Connect.
  3. A dialog opens with the following fields:

Required Fields

FieldDescription
Webhook URLYour n8n Production webhook URL (must start with https:// and must not contain /webhook-test/).
NameA label to identify this integration (e.g., "n8n - Lead Processing").

Authentication

Choose how Bearconnect authenticates with your n8n Webhook node. Credentials are stored encrypted in Bearconnect.

MethodDescription
NoneNo authentication. This is the default and is suitable for trusted networks.
Header AuthBearconnect sends an X-N8N-Auth: <token> header with every request. You must configure the same token in your n8n Webhook node's authentication settings.
Basic AuthBearconnect sends an Authorization: Basic base64(user:pass) header with every request. You must configure the same username and password in your n8n Webhook node's authentication settings.

If you choose Header Auth, enter the auth token in the field that appears.

If you choose Basic Auth, enter the username and password in the fields that appear.

Event Selection

Choose which event types this integration is allowed to handle:

CategoryEvents
Connection EventsConnection Request Sent, Connection Accepted
Message EventsMessage Sent, Message Replied

You can:

  • Click All to select every event.
  • Click None to clear the selection.
  • Expand a category to select individual events.
  • Use the category checkbox to toggle all events within that category.

Advanced Settings (Optional)

Click Advanced Settings to reveal additional options:

SettingDefaultRangeDescription
Custom HeadersNone-Add custom HTTP headers to every request sent to n8n (e.g., X-Source: bearconnect).
Timeout (ms)300005000–60000How long to wait for your n8n instance to respond before marking the delivery as failed.
  1. Click Connect.

After Connecting

Your n8n integration now appears in the Connected Integrations section. Click on it to open the detail panel, which shows:

Webhook URL

Your configured n8n Production webhook URL is displayed and can be copied with the copy button.

Status & Delivery Statistics

  • Status - Active or Error.
  • Delivered - Total number of successful deliveries.
  • Failed - Total number of failed deliveries.
  • Last Delivery - Timestamp of the most recent delivery.

If there is a recent error, the error message is displayed in red.

Allowed Events

A read-only list showing which event types this integration is configured to handle, organized by category.

Connection Details

  • When the integration was created.
  • Provider type (n8n).
  • Integration ID.
  • Last updated timestamp.

Connecting n8n to a Campaign

To receive events from a specific campaign, you must map the n8n integration to that campaign.

  1. Open a campaign from your dashboard.
  2. Go to the Integrations tab.
  3. Click Connect Integration.
  4. Select your n8n integration from the dropdown.
  5. Choose which events to enable for this campaign (only events that are in the integration's allowed events list appear here).
  6. Click Connect.

Managing the Mapping

On the campaign's Integrations tab:

  • Toggle switch - Pause or resume event forwarding.
  • Settings icon - Change which events are enabled for this campaign.
  • Trash icon - Remove the mapping (the n8n integration itself is not deleted).

Exporting Leads via n8n

You can manually export a lead to your n8n workflow.

  1. Go to the Leads page.
  2. Find the lead you want to export and click the three-dot action menu (⋮) on that row.
  3. Click Export.
  4. Select your n8n integration from the dropdown.
  5. Click Export.

The lead data is sent immediately as a JSON payload to your n8n webhook URL.


Payload Format

Every delivery to n8n is an HTTP POST request with a JSON body. This is the universal payload format used by Custom Webhooks, Zapier, Make, and n8n. All providers receive the exact same structure.

Event Payload

{
    "event": "connection_request_accepted",
    "timestamp": "2026-02-13T10:30:00.000Z",
    "data": {
        "lead": {
            "id": "65abc123def4567890ghij01",
            "firstName": "Jane",
            "lastName": "Smith",
            "email": "jane.smith@example.com",
            "phone": "+1-555-0123",
            "profileUrl": "https://www.linkedin.com/in/janesmith",
            "profileHeadline": "VP of Sales at Acme Corp",
            "profileImageUrl": "https://media.licdn.com/...",
            "position": "VP of Sales",
            "companyName": "Acme Corp",
            "location": "San Francisco, CA",
            "website": "https://acme.com",
            "education": "Stanford University",
            "publicIdentifier": "janesmith",
            "connectionCount": 500,
            "followerCount": 1200,
            "isPremium": true,
            "memberUrn": "urn:li:member:123456789",
            "stage": "connected",
            "createdAt": "2026-01-15T08:00:00.000Z"
        },
        "campaign": {
            "id": "65abc123def4567890ghij02",
            "name": "Q1 Outreach",
            "status": "running"
        },
        "linkedInAccount": {
            "id": "65abc123def4567890ghij03",
            "name": "Sales Team Account",
            "email": "john.smith@example.com"
        }
    },
    "metadata": {
        "eventId": "evt_abc123def456",
        "userId": "65abc123def4567890ghij04",
        "integrationId": "65abc123def4567890ghij05"
    }
}

Field Availability (Nullable Fields)

Not all lead fields are guaranteed to have a value. Only id and firstName are always present. All other lead fields may be null or absent depending on what data is available on the LinkedIn profile.

FieldAlways Present?Notes
data.lead.idYesBearconnect internal lead ID.
data.lead.firstNameYesAlways available from LinkedIn.
data.lead.lastNameNoMay be null if not available on LinkedIn.
data.lead.emailNoOnly present if the lead's email has been found or enriched.
data.lead.phoneNoOnly present if the lead's phone has been found or enriched.
data.lead.profileUrlNoMay be null in rare cases.
data.lead.profileHeadlineNoMay be null if the lead has no LinkedIn headline.
data.lead.profileImageUrlNoMay be null if the lead has no profile photo.
data.lead.positionNoMay be null if no current position is listed.
data.lead.companyNameNoMay be null if no company is listed.
data.lead.locationNoMay be null if no location is listed.
data.lead.websiteNoMay be null if no website is listed.
data.lead.educationNoMay be null if no education is listed.
data.lead.publicIdentifierNoThe LinkedIn vanity URL slug. May be null.
data.lead.connectionCountNoDefaults to 0 if not available.
data.lead.followerCountNoMay be null if not available.
data.lead.isPremiumNoDefaults to false if not available.
data.lead.memberUrnNoLinkedIn member URN. May be null.
data.lead.stageNoBearconnect lead stage. May be null.
data.lead.createdAtNoISO timestamp. May be null.
data.campaignNoMay be absent if the event is not campaign-specific.
data.linkedInAccountNoMay be absent if no LinkedIn account is associated.
data.linkedInAccount.emailYes (if present)Login email of the LinkedIn account used for outreach.

Tip: In n8n, use the IF node or expressions like {{ $json.body.data.lead.email ?? "no-email" }} to handle nullable fields. This prevents workflow errors when a field is missing.

Lead Export Payload

When you manually export a lead, the payload follows the same structure. The event field is set to lead_added_to_campaign.

HTTP Headers

Every request to n8n includes:

HeaderValue
Content-Typeapplication/json
User-AgentBearconnect/1.0
X-N8N-AuthYour auth token (only if Header Auth is configured).
AuthorizationBasic base64(user:pass) (only if Basic Auth is configured).
Custom headersAny headers you configured in Advanced Settings.

Working with Payloads in n8n

Accessing Fields with n8n Expressions

In any n8n node after the Webhook trigger, the incoming data is nested inside $json.body. You can reference fields using expressions:

ExpressionReturns
{{ $json.body.event }}The event type (e.g., connection_request_accepted).
{{ $json.body.timestamp }}The ISO 8601 timestamp of the event.
{{ $json.body.data.lead.firstName }}The lead's first name.
{{ $json.body.data.lead.lastName }}The lead's last name.
{{ $json.body.data.lead.email }}The lead's email address.
{{ $json.body.data.lead.profileUrl }}The lead's LinkedIn profile URL.
{{ $json.body.data.lead.companyName }}The lead's company name.
{{ $json.body.data.lead.location }}The lead's location.
{{ $json.body.data.campaign.name }}The campaign name.
{{ $json.body.data.linkedInAccount.email }}The login email of the LinkedIn account used.
{{ $json.body.metadata.eventId }}A unique event ID for deduplication.

Routing Events with Switch or If Nodes

Use {{ $json.body.event }} in a Switch node or If node to route different event types to different branches of your workflow. For example, you can send connection acceptances to your CRM and message replies to Slack.

Deduplication

Use {{ $json.body.metadata.eventId }} to detect and skip duplicate deliveries in your n8n workflow. This is useful if retries cause the same event to arrive more than once.


Testing Your Connection

You can send a test request to verify your n8n webhook is reachable and responding correctly.

  1. Go to Integrations in the left sidebar.
  2. Click on your n8n integration to open the detail panel.
  3. Click Test Connection.
  4. If successful, you will see "Test successful" with the HTTP status code (e.g., 200).
  5. If it fails, the error message will indicate the problem (timeout, connection refused, non-2xx status code, etc.).

The test sends a sample payload to your n8n webhook URL. Your n8n Webhook node should respond with a 2xx status code (200, 201, 202, etc.) to indicate success.

Important: Make sure your n8n workflow is active (enabled) before testing. If the workflow is inactive, the Production URL will return a 404 error.


Managing Your n8n Integration

Editing the Integration

To change the name, URL, authentication, events, or other settings:

  1. Go to Integrations in the left sidebar.
  2. Click on the n8n integration you want to edit.
  3. Make your changes in the detail panel.
  4. Save.

Deleting the Integration

  1. Go to Integrations in the left sidebar.
  2. Click on the n8n integration you want to delete.
  3. Click Delete and confirm.

When you delete an n8n integration:

  • All campaign mappings using it are removed.
  • Event forwarding stops immediately.
  • Delivery history is no longer tracked.

Use Cases

Complex Lead Routing with Conditional Logic

Build workflows that route leads based on company name, location, or job title. For example, send enterprise leads (companyName matches a target list) to your sales team in Slack, and SMB leads to a nurture sequence in your email tool.

Self-Hosted Data Processing (Data Privacy)

If you run n8n on your own infrastructure, lead data is sent directly from Bearconnect to your servers. This means:

  • Data residency - Lead data stays within your network once received. No third-party automation platform stores it.
  • Compliance - Ideal for teams subject to GDPR, SOC 2, or other data handling requirements.
  • Full control - You control data retention, logging, and access policies on your own servers.

To set this up, ensure your self-hosted n8n instance is accessible over HTTPS with a valid TLS certificate (see Troubleshooting for details). Bearconnect also supports Header Auth and Basic Auth to secure the webhook endpoint.

Multi-Step Enrichment and CRM Sync

Create a workflow that triggers when a connection is accepted, enriches the lead with a third-party API (e.g., Clearbit, Apollo), creates a contact in your CRM (e.g., HubSpot, Salesforce), and notifies your team in Slack - all in a single automated flow.

Filtering and Routing by Lead Attributes

Use n8n If or Switch nodes to filter events based on {{ $json.body.data.lead.companyName }} or {{ $json.body.data.lead.location }} and route them to different downstream systems or team channels.


Troubleshooting

"n8n webhook not found (404)"

  1. Check that your workflow is active - In n8n, open the workflow and make sure the toggle in the top-right corner is set to Active. An inactive workflow does not listen on the Production URL.
  2. Check that you are using the Production URL - The URL must contain /webhook/, not /webhook-test/. Test URLs only work while the workflow is open in the editor.

"n8n webhook authentication failed (401)"

  1. Check the auth token or credentials - The token (for Header Auth) or username/password (for Basic Auth) configured in Bearconnect must exactly match what is configured in the n8n Webhook node's authentication settings.
  2. Check the auth method - Make sure both Bearconnect and the n8n Webhook node are using the same authentication method (None, Header Auth, or Basic Auth).

"n8n webhook URL must use HTTPS"

Bearconnect requires all webhook URLs to use HTTPS. If you are running a self-hosted n8n instance:

  • Set up a reverse proxy (e.g., Nginx, Caddy, Traefik) in front of n8n with a valid TLS certificate.
  • Use a service like Let's Encrypt to obtain a free certificate.
  • Ensure the URL you paste into Bearconnect starts with https://.

"This appears to be an n8n TEST webhook URL"

You pasted a URL containing /webhook-test/. Bearconnect requires the Production URL. To fix this:

  1. Open your workflow in the n8n editor.
  2. Click on the Webhook trigger node.
  3. Switch to the Production tab.
  4. Copy the Production URL (it will contain /webhook/ instead of /webhook-test/).
  5. Paste the Production URL into Bearconnect.

Events not arriving in n8n

  1. Check that the workflow is active - Inactive workflows do not receive events on the Production URL.
  2. Check campaign mapping - Open the campaign's Integrations tab and verify the n8n integration is connected and the toggle is enabled.
  3. Check event selection - Verify the events you expect are enabled both on the integration (in Integrations settings) and on the campaign mapping.
  4. Check authentication - If auth credentials do not match, n8n will reject the request silently or return a 401.
  5. Check delivery status - Open the n8n integration detail panel in Bearconnect and look for error messages or failed delivery counts.

Deliveries showing as "failed" with retries

Bearconnect automatically retries failed deliveries with exponential backoff. If all retries fail, the delivery is marked as permanently failed and the error count increases on the integration's status. Common causes:

  • n8n instance temporarily unavailable.
  • Workflow was deactivated between retries.
  • n8n returning non-2xx responses due to workflow errors.

Check the error message in the integration detail panel for specific details.

"No connected integrations found" when trying to export a lead

This means you have not connected any integrations yet. Go to Integrations in the left sidebar and set up at least one integration first.