+
REM Labs · n8n

Give n8n workflows a persistent memory

n8n is brilliant at moving events between systems — but every run starts from zero. Point one HTTP Request node at REM Labs and suddenly your workflows remember yesterday's webhooks, last week's decisions, and the things your team said in Slack three months ago.

Free tier · No credit card · Works with n8n Cloud and self-hosted

Why n8n + REM

Three things a persistent memory substrate changes about your automations.

Continuity across runs

n8n workflows are stateless by default. REM gives them long-term memory — recall what this customer asked two months ago, what your Stripe webhook said last quarter, or what the AI Agent node decided last night.

9 Dream Engine strategies

Every midnight the Dream Engine rolls up your workflow traces: summarize, link, dedupe, score, prune, cluster. Your AI Agent nodes wake up with yesterday's signal, not yesterday's noise.

Cross-tool portability

What your n8n Stripe flow stores, a LangChain agent queries. What your Claude Code session teaches, an n8n cron recalls. One REST endpoint, every consumer.

Install in 60 seconds

n8n already ships the HTTP Request node. You just point it at REM.

The dedicated n8n-nodes-remlabs community node is in private beta. The raw HTTP Request pattern below is production-ready today — works on n8n Cloud and self-hosted. Request early community-node access in Discord.

1

Get your API key

Sign up at remlabs.ai/console. Copy the sk-rem-... key.

2

Create an HTTP Header Auth credential

In n8n: Credentials → New → HTTP Header Auth. Name it REM Labs. Header name Authorization, header value Bearer sk-rem-YOUR_KEY. Save.

3

Drop an HTTP Request node into your workflow

Point it at https://remlabs.ai/v1/memory-set (store) or /v1/memory-search-semantic (recall). Attach the credential from step 2. Done.

POST https://remlabs.ai/v1/memory-set Authorization: Bearer sk-rem-YOUR_KEY Content-Type: application/json { "namespace": "support-tickets", "content": "={{ $json.customer_email }} complained about billing for the 3rd time this quarter" }

Common patterns

Three shapes: store on webhook, recall before an AI Agent node, and a scheduled Dream trigger.

1. Webhook → store memory

Webhook trigger

Every incoming Stripe, Slack, or custom webhook lands as a durable memory. Use expression mode to interpolate the payload.

Webhook Trigger | v HTTP Request node Method: POST URL: https://remlabs.ai/v1/memory-set Auth: HTTP Header Auth (REM Labs) Body (JSON): { "namespace": "stripe-events", "content": "={{ $json.body.type }}: customer {{ $json.body.data.object.customer }} amount {{ $json.body.data.object.amount }}", "metadata": { "event_id": "={{ $json.body.id }}", "source": "stripe-webhook" } }

2. Recall → enrich AI Agent prompt

AI Agent

Before calling an AI Agent node, search REM for related memories and prepend them to the prompt. Context on tap.

Input (e.g. Chat Trigger with $json.query) | v HTTP Request: semantic recall Method: POST URL: https://remlabs.ai/v1/memory-search-semantic Body: { "namespace": "support-tickets", "query": "={{ $json.query }}", "limit": 8 } | v Set node: build context string context = "={{ $('HTTP Request').item.json.results .map(r => '- ' + r.content).join('\\n') }}" | v AI Agent (OpenAI / Anthropic / Ollama) System prompt: "Relevant memory:\\n{{ $json.context }}\\n\\n Answer the user: {{ $json.query }}"

3. Cron → overnight Dream trigger

Schedule

Fire the Dream Engine on your own schedule so consolidation runs align with your business hours, not ours.

Schedule Trigger (every day at 03:00) | v HTTP Request node Method: POST URL: https://remlabs.ai/v1/dream Auth: HTTP Header Auth (REM Labs) Body (JSON): { "namespace": "support-tickets", "strategies": ["summarize", "link", "dedupe", "score", "prune"] } | v Slack node: "Dream run finished — {{ $json.delta.summary_count }} new summaries, {{ $json.delta.pruned }} stale memories gone."

What you get

Everything a stateless workflow platform leaves on the table.

Cross-run memory

One namespace per workflow. Restart n8n, re-import a flow, change clouds — your memory lives in REM, not in your execution history.

Semantic search under 180ms

Recall returns in a single HTTP Request round-trip. Your AI Agent node stays snappy even when your memory has a million entries.

Overnight consolidation

Dream Engine summarizes, links, and dedupes yesterday's events. This morning's recall returns the signal, not the raw firehose.

Portable across tools

Same namespace powers your n8n flow, your LangChain agent, your Slack bot, and your Claude Code session. REM is the seam.

Ship a workflow that actually remembers

Free tier, no credit card. One HTTP Request node, one namespace, one morning of compounding context.

Get API key Read full docs