EchoStack Docs
Integration guides API reference Open dashboard

n8n integration

Send forms, webhooks, or conversation transcripts to EchoStack with your org API key and branch automation on status and next_action.

Outcome

An n8n workflow evaluates inbound signals and routes qualified leads to CRM, Slack, or nurture sequences.

Prerequisites

  • Completed Eval API quickstart
  • Org key esk_… from Dashboard → API Keys and an evaluation_id from POST /v1/evaluations
  • n8n Cloud or self-hosted instance

Architecture

Trigger (Webhook / HubSpot / Typeform)
    → EchoStack Evaluate
    → Switch on status
        → QUALIFIED → CRM / book meeting
        → PARTIAL → nurture / ask for fields
        → FAILED → archive
        → ESCALATE → alert channel

1. Install the community node

n8n Cloud

  1. Settings → Community Nodes → Install
  2. Enter n8n-nodes-echostack
  3. Restart n8n if prompted

Install the n8n-nodes-echostack community package in n8n Settings

n8n Cloud — Settings → Community Nodes → enter n8n-nodes-echostack.

Self-hosted

npm install n8n-nodes-echostack

Restart your n8n instance after install.

2. Credentials (org API key)

Authentication uses your organization API key (esk_…) and an evaluation_id — not deployment webhook secrets.

Create an EchoStack API credential in n8n:

Field Value
Base URL https://api.getechostack.com
Organization API Key esk_… from Dashboard → API Keys
Evaluation ID UUID from POST /v1/evaluations
  1. Create an org API key under Dashboard → API Keys (esk_…) — see eval quickstart.
  2. Call POST /v1/evaluations once to get evaluation_id (see quickstart).
  3. Paste both into the EchoStack API credential.

EchoStack API credential in n8n — Base URL, org API key, and evaluation ID

n8n credential — paste esk_… and your evaluation_id; use Test to validate without consuming quota.

The credential test calls GET /v1/evaluations/:id with the configured Evaluation ID — it validates the key and the evaluation binding without consuming evaluation quota.

The Evaluate node sends evaluation_id automatically from the credential. You can override it per request via the node's Evaluation ID field when one key drives multiple evaluations.

Branch on {{ $json.extracted_signals.pricing_interest.confidence }} or .found per detector.

3. Evaluate node

EchoStack → Evaluation → Evaluate

Input mode Use when
Form Fields Prior node outputs flat JSON (webhooks, forms, CRM). Default: ={{ $json }}
Transcript JSON array of { "role": "user", "content": "..." } turns
Raw JSON Full POST /v1/evaluate request body

4. Branching

n8n workflow — Webhook trigger, EchoStack Evaluate node, Switch on status

Typical flow: trigger → EchoStack → Evaluation → EvaluateSwitch on {{ $json.status }}.

After Evaluate, add a Switch (or IF) on:

  • {{ $json.status }}QUALIFIED, PARTIAL, FAILED, ESCALATE
  • {{ $json.next_action }}BOOK_MEETING, GATHER_INFO, NURTURE, DISQUALIFY, ESCALATE_NOW, CLOSE
  • {{ $json.missing_fields }} — required fields still missing
status Common next steps
QUALIFIED Notify sales, update CRM, book a meeting
PARTIAL Ask for missing info, nurture sequence
FAILED Archive or tag disqualified
ESCALATE Alert a channel or human review

5. Starter workflow

Import the sample workflow shipped with the package:

In n8n: ⋯ → Import from file, attach your EchoStack API credential on the Evaluate node, then run once with the pinned test data.

The template uses a Webhook trigger for easy testing. Replace it with your production trigger (HubSpot, Typeform, etc.).

6. Verify

  1. Run the workflow once in n8n.
  2. Open Dashboard → Activity or Test evaluation on the evaluation you created.
  3. Confirm a log row with the expected status.

EchoStack Activity feed showing evaluation log rows with status and next_action

Dashboard → Activity — confirm the log row and status match your Switch branches.

Branching on PARTIAL (do not skip)

PARTIAL is not a soft failure — it means required manifest fields are missing. In production, route it explicitly:

Branch n8n hint Automation
QUALIFIED Switch rule status === QUALIFIED CRM owner, meeting link
PARTIAL status === PARTIAL Nurture; email using missing_fields; no senior AE assign
FAILED status === FAILED Archive / disqualified tag

Optional IF node: $json.missing_fields.length > 0 to pick which nurture template to send.

Webhook retries can double-evaluate — see webhook inbound qualification.

Errors

HTTP Meaning
401 Invalid esk_… — regenerate under Dashboard → API Keys and update the n8n credential
400 Malformed body or missing evaluation_id — set Evaluation ID on the credential or Evaluate node
402 Quota exceeded — check message, resetAt, upgradeUrl
429 Rate limited — retry after a short delay

Related