n8n Integration Setup
Connect Parsley to n8n via webhooks to route leads, intent signals, and conversations through self-hosted or cloud workflows with full code control.
Connect Parsley to n8n via webhooks to route leads, intent signals, and conversations into 400+ nodes - on n8n Cloud or self-hosted, with full code control. This guide walks you through setup, available events, and practical workflow recipes.
Quick Setup
- In n8n, create a new workflow with the Webhook node as the trigger
- Set the HTTP method to
POSTand copy the Production URL n8n generates - In Parsley, go to Hub > API Keys and create a new webhook subscription
- Paste the n8n URL, pick the events you want to receive, and save
- Send a test event from Parsley so n8n can capture sample data
- Connect downstream nodes and reference Parsley fields with expressions like
{{ $json.data.leadEmail }}
Events now flow from Parsley into your n8n workflow automatically.
Prerequisites
- An n8n instance - Use n8n Cloud for managed hosting, or self-host via Docker, npm, or n8n's hosted partners. The community edition is free and open source.
- A Parsley account - The Profile Viewed event is available on all plans. Business events (conversations, leads, scores, signals) require a Business plan.
- Access to Hub > API Keys in your Parsley dashboard, where you'll create the webhook subscription.
Step 1: Create an n8n Workflow with the Webhook Node
From your n8n editor:
- Click + New Workflow
- Click the + in the canvas and search for Webhook
- Add the Webhook node and configure:
- HTTP Method:
POST - Path: anything memorable, e.g.
parsley - Authentication:
None(Parsley signs requests separately - see Step 6) - Respond:
Immediately(Parsley does not need a response body)
- HTTP Method:
- Click Listen for Test Event for the test URL, or copy the Production URL for live use
- Activate the workflow (toggle in the top-right) so the production URL accepts traffic
You will paste this URL into Parsley in the next step.
Step 2: Create a Webhook Subscription in Parsley
From your Parsley dashboard:
- Go to Hub in the left sidebar
- Click API Keys
- Scroll to the Webhooks section
- Click Create Webhook
- Paste the n8n webhook URL into the URL field
- Select which events you want to subscribe to (see Step 3 below)
- Click Create
Parsley will generate a signing secret you can use to verify incoming webhooks in n8n with a Crypto or Function node, if you need request authenticity.
Step 3: Choose Your Events
Parsley fires 5 webhook events. The Profile Viewed event is available on all plans. The remaining four require a Business plan.
| Event | Description | Plan |
|---|---|---|
| Profile Viewed | Someone views your Parsley profile | Free |
| Conversation Completed | A chatbot conversation ends on your profile | Business |
| Lead Captured | A visitor shares their contact details via chatbot or form | Business |
| Lead Scored | A lead receives a Hot, Warm, or Cold quality score | Business |
| Signal Detected | A MEDDIC buying signal is identified during conversation | Business |
You can subscribe to multiple events with a single webhook, or create separate webhooks for different workflows.
Step 4: Capture Sample Data in n8n
n8n's Webhook node needs to receive at least one real event before downstream nodes can reference fields:
- In the Webhook node, click Listen for Test Event
- Trigger an event in Parsley - for example, view your own profile (for
profile.viewed) or use the webhook test feature in Hub > API Keys to send a test payload - n8n will capture the event and display the JSON payload in the Output panel
- Downstream nodes can now reference fields with expressions like
{{ $json.data.leadEmail }}or{{ $('Webhook').item.json.data.leadQuality }}
Step 5: Data Fields
Each event sends a specific set of fields to n8n. Use these to map data into your downstream nodes.
Profile Viewed
| Field | Description | Example |
|---|---|---|
id | Event ID | evt_abc123 |
type | Event type | profile.viewed |
createdAt | Timestamp (ISO 8601) | 2026-03-20T14:30:00Z |
data.profileUserId | Your Parsley user ID | user_abc123 |
data.profileUsername | Your Parsley username | janesmith |
data.visitorId | Unique visitor identifier | vis_def456 |
data.source | Traffic source | linkedin |
data.referer | Full referrer URL | https://www.linkedin.com/in/janesmith |
Conversation Completed
| Field | Description | Example |
|---|---|---|
id | Event ID | evt_abc123 |
type | Event type | chatbot.conversation.completed |
createdAt | Timestamp (ISO 8601) | 2026-03-20T14:30:00Z |
data.conversationId | Conversation ID | conv_abc123 |
data.profileUserId | Your Parsley user ID | user_abc123 |
data.profileUsername | Your Parsley username | janesmith |
data.visitorId | Unique visitor identifier | vis_def456 |
data.messageCount | Total messages exchanged | 8 |
data.topics | Topics discussed (array) | ["pricing", "enterprise features"] |
data.duration | Duration in seconds | 245 |
Lead Captured
| Field | Description | Example |
|---|---|---|
id | Event ID | evt_abc123 |
type | Event type | lead.captured |
createdAt | Timestamp (ISO 8601) | 2026-03-20T14:30:00Z |
data.conversationId | Conversation ID | conv_abc123 |
data.profileUserId | Your Parsley user ID | user_abc123 |
data.profileUsername | Your Parsley username | janesmith |
data.visitorId | Unique visitor identifier | vis_def456 |
data.leadEmail | Lead's email address | buyer@acmecorp.com |
data.leadName | Lead's name | Alex Johnson |
data.source | Capture source | chatbot |
Lead Scored
| Field | Description | Example |
|---|---|---|
id | Event ID | evt_abc123 |
type | Event type | lead.scored |
createdAt | Timestamp (ISO 8601) | 2026-03-20T14:30:00Z |
data.conversationId | Conversation ID | conv_abc123 |
data.profileUserId | Your Parsley user ID | user_abc123 |
data.profileUsername | Your Parsley username | janesmith |
data.visitorId | Unique visitor identifier | vis_def456 |
data.leadQuality | Lead temperature | hot |
data.intentScore | Intent score (1-5) | 5 |
data.intentSignal | Intent classification | high_intent |
data.meddic.metrics | Metrics signal detected | true |
data.meddic.economicBuyer | Economic Buyer detected | true |
data.meddic.decisionCriteria | Decision Criteria detected | true |
data.meddic.decisionProcess | Decision Process detected | false |
data.meddic.identifyPain | Identify Pain detected | true |
data.meddic.champion | Champion detected | false |
Signal Detected
| Field | Description | Example |
|---|---|---|
id | Event ID | evt_abc123 |
type | Event type | signal.detected |
createdAt | Timestamp (ISO 8601) | 2026-03-20T14:30:00Z |
data.conversationId | Conversation ID | conv_abc123 |
data.profileUserId | Your Parsley user ID | user_abc123 |
data.profileUsername | Your Parsley username | janesmith |
data.visitorId | Unique visitor identifier | vis_def456 |
data.signalType | MEDDIC signal type | identifyPain |
data.quote | Verbatim quote from conversation | "We are losing deals because..." |
data.confidence | Confidence level | high |
Step 6: Verify the Webhook Signature (Optional)
If your workflow needs to validate that requests genuinely came from Parsley, use a Crypto node followed by an IF node:
- After the Webhook trigger, add a Crypto node
- Set Action:
Hmac, Type:SHA256, Secret: your Parsley signing secret - In Value, reference the raw request body:
{{ $('Webhook').item.json }}(you may need to JSON-stringify depending on your n8n version) - Add an IF node comparing the computed HMAC against the
X-Parsley-Signatureheader from{{ $('Webhook').item.headers['x-parsley-signature'] }} - Only continue the workflow on match
For most internal use cases this step is optional - the webhook URL itself is unguessable.
Step 7: Workflow Recipes
Here are practical examples to get you started with n8n. These lean into n8n's strengths: branching, code nodes, and self-hosted privacy.
Postgres lead pipeline (Business)
Trigger: Webhook (subscribed to Lead Captured in Parsley) Action: Postgres - Insert
Insert data.leadEmail, data.leadName, data.source, and createdAt directly into your own database. Perfect for self-hosted teams who want lead data inside their own infra rather than a SaaS CRM.
LLM-generated outreach drafts (Business)
Trigger: Webhook (subscribed to Lead Scored in Parsley) Actions: IF (filter on Hot) → OpenAI / Anthropic → Gmail (draft, not send)
- Filter on
data.leadQuality === 'hot' - Pass
data.topicsand the MEDDIC signals to an LLM node with a prompt like "Draft a 3-sentence follow-up email referencing these conversation topics and buying signals" - Save the result as a Gmail draft (not auto-sent) so you can review and personalise before sending
Branching MEDDIC router (Business)
Trigger: Webhook (subscribed to Signal Detected in Parsley) Action: Switch node - one branch per signal type
Use n8n's Switch node on data.signalType. Send identifyPain signals to your CRM as new deals, send economicBuyer mentions to Slack with a "decision-maker confirmed" tag, and store everything else in a Postgres audit table for later analysis.
Self-hosted webhook fan-out (Free + Business)
Trigger: Webhook (subscribed to multiple Parsley events) Action: Multiple HTTP Request nodes in parallel
Use n8n as a webhook relay - receive every Parsley event once, then fan out to your CRM, your data warehouse, and your Slack channel in parallel. Cheaper than running three separate Zapier zaps, and the entire flow runs inside your own infra.
Daily Hot leads digest (Business)
Trigger: Webhook (subscribed to Lead Scored in Parsley) + Schedule trigger Actions: Append rows to a n8n Variable or Redis list during the day; Schedule node fires at 5pm and sends a digest email of the day's Hot leads
Aggregate Hot leads through the day and deliver a single end-of-day summary instead of getting pinged on every score event. Useful if you want signal without noise.
GDPR-friendly lead capture (Business)
Trigger: Webhook (subscribed to Lead Captured in Parsley) Action: Function node → Postgres
Use n8n's Function (Code) node to hash or pseudonymise PII before persisting. Self-hosted n8n means raw lead data never touches a third-party SaaS at all - useful for EU-based teams with strict data residency rules.
Why n8n?
n8n is open source and self-hostable, which makes it the right choice when data residency, cost predictability, or branching/code complexity matter. The Switch and Code nodes give you logic that no-code routers can't match, and n8n Cloud offers a managed option if you do not want to host it yourself.
Parsley supports n8n alongside Zapier, Pabbly Connect, and Make - all four deliver the same 5 events with identical data fields. Pick whichever automation tool your team already uses.
Troubleshooting
n8n is not receiving events
- Verify your webhook subscription in Parsley (Hub > API Keys) is marked as active
- Check that the n8n webhook URL was copied correctly (no trailing spaces) - and that you used the Production URL, not the Test URL, for live traffic
- Make sure your n8n workflow is Active (toggle in the top-right of the editor)
- If self-hosting, confirm your n8n instance is reachable from the public internet (port forwarding, firewall, reverse proxy)
- Check the Parsley webhook delivery log for failed attempts
Webhook delivery failing
Parsley retries webhook deliveries up to 3 times with exponential backoff (1 second, 5 seconds, 30 seconds). If all attempts fail, check:
- Is your n8n workflow active?
- Is n8n returning a 2xx response? Set the Webhook node's Respond to
Immediatelyto avoid timeouts - Check n8n's Executions view for error details
Business events unavailable
The Conversation Completed, Lead Captured, Lead Scored, and Signal Detected events require a Business plan. The Profile Viewed event works on all plans.
Missing fields in n8n
- Ensure you triggered at least one real event so n8n could capture the payload structure
- Use the webhook test feature in Parsley to send full sample data
- Reference fields with the full path:
{{ $json.data.leadEmail }}(not{{ $json.leadEmail }})
What's Next
- See all Parsley integrations - CRM and automation options
- Compare with Make - visual scenario builder
- Compare with Pabbly Connect - flat-rate cost-effective router
- Compare with Zapier - native app in the Zapier directory
- Manage your API keys and webhooks - create, revoke, and monitor usage
Questions? Contact us or email peter@parsley.id.
