I kept hitting the same wall with inbound lead workflows: a pile of IF nodes and Code nodes trying to guess whether a form submission was actually qualified. Criteria changed, and the workflow broke.
So I wired a pattern that separates decision from orchestration:
-
n8n handles triggers, CRM updates, Slack, email
-
EchoStack evaluates the payload against your criteria and returns structured JSON you can branch on
The pattern
Webhook / HubSpot / Typeform
→ EchoStack Evaluate
→ Switch on status
QUALIFIED → assign AE, update CRM, book meeting
PARTIAL → nurture / ask for missing fields
FAILED → archive or tag disqualified
ESCALATE → Slack alert / human review
The Evaluate node returns status, next_action, missing_fields, and extracted fields — so your Switch node stays simple.
Try it
1. Install the community node
- Self-hosted:
npm install n8n-nodes-echostack(restart n8n after install)
2. Set up credentials
You need an EchoStack org API key (esk_…) and an evaluation_id. The eval quickstart walks through both in a few minutes.
In n8n, create an EchoStack API credential:
| Field | Value |
|---|---|
| Base URL | api.getechostack.com |
| Organization API Key | esk_… from Dashboard → API Keys |
| Evaluation ID | UUID from POST /v1/evaluations |
Use Test on the credential — it validates without consuming evaluation quota.
3. Import the starter workflow
Download and import: example-workflow.json
In n8n: ⋯ → Import from file, attach your credential on the EchoStack Evaluate node, then run once with the pinned test data.
Full walkthrough: n8n integration guide
npm: n8n-nodes-echostack
Sample output (what you branch on)
After Evaluate, your Switch can use:
-
{{ $json.status }}—QUALIFIED,PARTIAL,FAILED,ESCALATE -
{{ $json.next_action }}—BOOK_MEETING,GATHER_INFO,NURTURE,DISQUALIFY,ESCALATE_NOW,CLOSE -
{{ $json.missing_fields }}— fields still missing onPARTIAL
PARTIAL is worth routing explicitly — it means required fields are missing, not a soft pass. We send those to nurture, not straight to a senior AE.
Production tips
-
Replace the Webhook with HubSpot → On Form Submission (or Typeform, etc.) — keep Evaluate + Switch as-is
-
Dedupe webhook retries before calling Evaluate
-
Transcript mode works too if you’re scoring post-call conversations
Question for the community: How are you handling lead qualification today — Code nodes, LLM agents, CRM-native scoring, something else? Curious what triggers and branch patterns people are using.
Happy to help if you hit install or credential issues — reply here
