infolang

n8n community node for InfoLang, a hosted semantic-memory API. Adds Remember, Recall, and Forget operations backed by a single API-key credential.

Package Information

Released: 3 mo ago
Downloads: 0 weekly / 0 monthly
Latest Version: 0.1.0
Author: InfoLang

Documentation

n8n-nodes-infolang

This is an n8n community node for InfoLang, a hosted semantic-memory API. It adds an InfoLang node with three operations — Remember, Recall, and Forget — so a workflow can store text as a memory and later retrieve it by semantic similarity, all authenticated with a single API key.

Why this exists

n8n already has a community node for Mem0, but it only talks to a self-hosted Mem0 server — there's no first-class way to hit a hosted memory API from n8n with just an API key. This node is built for InfoLang's hosted runtime: point it at https://api.infolang.ai (or your own self-hosted InfoLang runtime), drop in an API key, and you're set up. No server to run, no OAuth dance — one credential field.

Installation

Not published to npm yet — build from source and link it into a self-hosted
n8n instance:

git clone https://github.com/InfoLang-Inc/n8n-nodes-infolang.git
cd n8n-nodes-infolang
npm install
npm run build
npm link

Then, from your n8n installation directory (or wherever N8N_CUSTOM_EXTENSIONS
points):

npm link n8n-nodes-infolang

Restart n8n and the InfoLang node should show up in the node panel. Once
this package is published to npm, it'll also be installable via n8n's
Settings > Community Nodes panel or a plain npm install n8n-nodes-infolang — see n8n's community nodes
documentation

for that flow.

Credential setup

This node uses one credential type: InfoLang API.

  1. Get an API key from your InfoLang dashboard. Keys look like il_live_....
  2. In n8n, create a new InfoLang API credential and paste the key into API Key.
  3. Base URL defaults to https://api.infolang.ai. Only change this if you're running a self-hosted InfoLang runtime (e.g. http://127.0.0.1:8766).
  4. Workspace ID is optional. Set it (as a UUID) only if your API key is allowlisted for more than one workspace and you need to select a specific one — it's sent as the X-InfoLang-Workspace-Id header.

Use the Test button on the credential to confirm connectivity (it calls GET /v1/health).

Operations

Remember

Stores a piece of text as a memory.

Inputs

Field Required Notes
Text Yes The content to remember
Source No Free-text label for where this memory came from
Tags No Comma-separated, e.g. billing,customer-42
Namespace No See Known limitations below

Output — the raw API response, typically:

{
  "id": "mem_abc123",
  "namespace": "default",
  "stored": true,
  "total_memories": 42
}

Recall

Searches memories by semantic similarity to a query.

Inputs

Field Required Notes
Query Yes Text to search for
Top K No Max results to return (default 5)
Namespace No Restrict the search to a namespace
Filters (JSON) No Optional JSON object of filters
Verbose No Passed through to the API

Output — normalized regardless of whether the API responds with the compact chunks wire format or the verbose hits format:

{
  "results": [
    { "id": "mem_abc123", "text": "customer prefers email", "score": 0.91, "tags": "billing" }
  ],
  "namespace": "default",
  "count": 1,
  "weak": false
}

weak is true when the top result's score is below 0.85 (or when there are no results) — a convenience flag for filtering out low-confidence matches downstream in your workflow.

Forget

Deletes a memory by ID.

Inputs

Field Required Notes
Memory ID Yes The ID of the memory to delete

Output

{ "deleted": true, "id": "mem_abc123" }

Forget has no namespace parameter — deletion is scoped by your API key server-side.

Known limitations

namespace on Remember is currently a no-op server-side. The POST /v1/remember endpoint accepts a namespace field per InfoLang's documented API contract, but the currently deployed hosted InfoLang runtime ignores it — writes land in the caller's default namespace regardless of what you pass. This is a known, tracked issue pending a server-side fix. This node still exposes the Namespace field on Remember because it's part of the documented API contract and it will start working once the fix ships server-side — there is no client-side workaround, and this node doesn't attempt one.

Namespace filtering on Recall (reads) works correctly today; this limitation is specific to writes via Remember.

License

MIT

Discussion