Skip to main content

n8n ⇄ Pulse

Intermediate ⏱ 15 min n8n · http nodes · both directions

Two ready-to-import workflows ship in the repo (examples/n8n-pulse-bridge/), covering both directions. No n8n-specific connector, no custom code — plain HTTP.

Direction A — Pulse as a step inside n8n (the common one)

n8n orchestrates; Pulse is the stream-processing node in the middle:

[Trigger] → [HTTP: send order → Pulse] → [Wait] → [HTTP: read scored ← Pulse] → [act]

1 · Deploy the Pulse step

The example's pulse-scoring.yaml is a one-stage app that keeps only high-value orders:

name: order-scoring
stages:
- name: score
engine: streaming
operators:
- type: filter
condition: "amount >= 1000"
pulse server start --dev
mkdir app && cp pulse-scoring.yaml app/pulse.yaml && (cd app && pulse deploy .)

2 · Import the workflow, set two things

Import workflow-n8n-calls-pulse.json into n8n. Its two HTTP Request nodes are the whole integration — configure the Pulse base URL and a Header Auth credential (Authorization: Bearer <pulse jwt> — the token is in ~/.pulse/credentials.json after login):

  • SendPOST /api/pulse/x/order-scoring/in, body = the event
  • ReadGET /api/pulse/events/order-scoring.score.out

3 · What happens (validated live in the repo)

POST amount=2500 -> 202 {"topic":"order-scoring.in","published":true}
POST amount=300 -> 202
POST amount=1800 -> 202
GET order-scoring.score.out -> 2 scored events (the 300 was filtered out)

The payoff: swap the score stage's operators for windows, joins, dedup, an llm or mcp stage — the two n8n nodes don't change. The workflow gets richer intelligence with zero n8n edits.

Direction B — Pulse triggers n8n

The reverse: Pulse tails a stream, filters to incidents, and POSTs each one to an n8n Webhook trigger via the built-in webhook sink:

sink:
kind: webhook
url: ${secret:N8N_WEBHOOK}

Import workflow-pulse-triggers-n8n.json, copy its webhook URL into the secret, and every incident starts an n8n run.

Scaling later

Already have an n8n workflow drowning in events? The migration journey — isolate the hot path, pulse deploy . it, wire two HTTP nodes, then pulse dataplane remote when one node isn't enough — is written up step-by-step in the repo at docs/N8N-REALTIME-SCALING-JOURNEY.md. Your workflow doesn't get rewritten at any step.

Next