---
title: n8n
description: "Add long-term memory to n8n workflows and AI Agents with the Mem0 community node, no code required."
---
The [`@mem0/n8n-nodes-mem0`](https://www.npmjs.com/package/@mem0/n8n-nodes-mem0) community node brings [Mem0](https://mem0.ai) memory to [n8n](https://n8n.io). Add, search, and manage long-term memories inside any workflow, and use it as a tool for the n8n AI Agent.
## Overview
The node wraps the hosted Mem0 REST API and supports six operations on the **Memory** resource:
| Operation | Endpoint |
| --- | --- |
| **Add** | `POST /v3/memories/add/` |
| **Search** | `POST /v3/memories/search/` |
| **Get** | `GET /v1/memories/{id}/` |
| **Get Many** | `POST /v3/memories/` |
| **Update** | `PUT /v1/memories/{id}/` |
| **Delete** | `DELETE /v1/memories/{id}/` |
It is marked `usableAsTool`, so the n8n AI Agent (Tools Agent) can call it directly to remember and recall information.
## Installation
Install it like any n8n community node:
1. In n8n, go to **Settings → Community Nodes → Install**.
2. Enter `@mem0/n8n-nodes-mem0` and confirm.
The node then appears in the nodes panel under the AI category.
## Authentication
Create a **Mem0 API** credential in n8n:
- **API Key**: from the Mem0 API Key dashboard. Sent as `Authorization: Token `.
- **Base URL**: defaults to `https://api.mem0.ai`.
## Operations
### Add
Extracts and stores memories from one or more messages. Provide at least one entity id (**User ID**, **Agent ID**, **Run ID**, or **App ID** in Additional Fields); the node validates this before calling the API. Additional Fields also expose **Metadata (JSON)** and **Infer** (run LLM extraction, or store verbatim).
Extraction is asynchronous. **Wait for Completion** (on by default) polls the event until it finishes and returns the resulting memories; turn it off to return immediately with the event ID.
### Search
Semantic search over stored memories. Provide a **Query**, a **User ID** (required, the API needs an entity filter), and an optional **Limit**.
### Get Many
Lists memories for a **User ID** with **Page** and **Page Size** controls.
### Get / Update / Delete
Operate on a single memory by **Memory ID**. Update accepts new **Text** and/or **Metadata (JSON)**.
## Choosing a `userId`
The `userId` is a stable string you choose to identify whose memories these are. It is not looked up in the dashboard. Common choices are your app's internal user ID, an email, or a UUID. Use the same value across Add, Search, and Get Many so recall works.
Add memory to Zaps across thousands of apps
Add memory to Flowise chatflows