n8n-nodes-infolang
v0.1.0
Published
n8n community node for InfoLang, a hosted semantic-memory API. Adds Remember, Recall, and Forget operations backed by a single API-key credential.
Downloads
64
Maintainers
Readme
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 linkThen, from your n8n installation directory (or wherever N8N_CUSTOM_EXTENSIONS
points):
npm link n8n-nodes-infolangRestart 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.
- Get an API key from your InfoLang dashboard. Keys look like
il_live_.... - In n8n, create a new InfoLang API credential and paste the key into API Key.
- 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). - 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-Idheader.
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.
