Supermemory with n8n: HTTP Workflows, Identity, and Readiness
Build an explicit n8n ingestion and retrieval flow with bearer credentials, stable scopes, durable source mapping, and queue-aware tests.

Use n8n's HTTP Request node to call Supermemory from a workflow. Keep conversation history, durable source ingestion, and user-memory retrieval as separate responsibilities. A chat-memory node and an external memory API may both be useful, but they should not silently store duplicate copies of the same conversation without a defined purpose.
The Supermemory n8n guide documents HTTP-based integration. The central contract is simple: authenticated scope on every write and read, a stable source identity, and an observable processing state.
Build the first flow with synthetic data
Start with a Manual Trigger followed by a data-setting step. Use one fictional tenant, user, source ID, and short statement. For example, a demo customer prefers email summaries on Mondays. This keeps the initial test independent of mailbox permissions or a live customer workflow.
Add an HTTP Request node configured as follows:
| Setting | Value |
|---|---|
| Method | POST |
| URL | https://api.supermemory.ai/v3/documents |
| Authentication | Generic credential type → Bearer Auth |
| Body | JSON |
| Required content | The normalized source text |
| Scope | containerTag derived from authorized tenant/user identity |
| Stable source identity | customId derived from tenant/user/source ID |
Store the bearer token in n8n credentials, not in the JSON body. The HTTP Request node documentation describes its authentication and request controls.
Send valid JSON without string interpolation errors
A prepared request body can look like this. The values below are fictional and intentionally fixed for a single-user smoke test; replace them using a trusted identity mapping before using the flow for multiple users.
{
"content": "Demo preference: send the weekly summary on Monday.",
"containerTag": "demo-tenant-demo-user",
"customId": "demo-tenant-demo-user-preference-001"
}
For dynamic content, configure the node to construct a JSON object from expressions rather than manually inserting text between quotation marks. Email bodies and transcripts frequently contain quotes and newlines. A valid-looking preview is not proof that every incoming item produces valid JSON.
Persist the returned document ID alongside your own source ID. If the workflow crashes after sending the request, this mapping and the stable identifier support reconciliation. A second blind create step is not a reliable recovery strategy.
Queue mode changes the storage question
n8n's Simple Memory documentation warns about using that node in queue mode because executions may reach different workers. That is a limitation of a particular local memory path, not proof that n8n cannot support persistent history.
Use durable storage appropriate to your deployment for conversation history and retry state. An external HTTP service is reachable from different workers, but it still needs consistent scope mapping. Test two executions routed through separate workers if that is how production will operate.
Treat ingestion and retrieval as separate tests
First check that the write was accepted and record its ID. Then verify processing readiness through the documented document operation. Finally, search using the same scope and inspect the evidence returned. A successful HTTP status alone does not show that the agent used the intended fact.
For a multi-item execution, verify that each item retains its own identity through merges, loops, and error branches. Test two users with the same source-record name. Their records should remain separate after retries and after a worker restart.
A bounded rollout
The downloadable workflow contains a manual synthetic ingestion example without credentials and is inactive by default. Its structure and payload are checked locally; importing and executing it in your n8n version is still an explicit validation step. Select a credential after import, inspect the request preview, and run the synthetic case before connecting a live trigger.
Add bounded retries and a durable failure queue before unattended use. Define the correction and deletion paths as well as creation. The memory lifecycle guide and connector guide provide the remaining acceptance criteria.
To run the example in your own n8n instance, get a Supermemory API key and select it through an n8n credential after importing the workflow above. Inspect the manual test’s request and result before connecting an unattended trigger.