feat(integrations): n8n community node for Mem0 (#6517)

Co-authored-by: kartik-mem0 <kartik.labhshetwar@mem0.ai>
This commit is contained in:
Himanshu
2026-07-29 23:03:03 +05:30
committed by GitHub
co-authored by kartik-mem0
parent 1ac3aa7256
commit d4869d24ec
26 changed files with 6818 additions and 22 deletions
+104 -22
View File
@@ -3,51 +3,133 @@ title: Zapier
description: "Add, search, and manage Mem0 memories from any Zap using the Mem0 Zapier app, no code required."
---
The [Mem0](https://mem0.ai) Zapier app lets you add, search, list, and delete long-term memories from any [Zapier](https://zapier.com) workflow. Wire "remember" and "recall" into thousands of apps without writing code.
Zaps fire and forget. The [Mem0](https://mem0.ai) app gives them memory: store durable facts from a form submission, a support ticket, or a chat message, then recall them later from any of [Zapier's](https://zapier.com) thousands of apps. No code, no server.
## Overview
The app wraps the hosted Mem0 REST API and exposes four actions:
1. Connect your Mem0 API key once as a Zapier connection.
2. Use **Add Memory** to store what a Zap learns.
3. Use **Search Memories** or **Get Memories** to pull that context back into a later step.
4. Use **Delete Memory** to remove one by ID.
| Type | Action | Endpoint |
| --- | --- | --- |
| Create | **Add Memory** | `POST /v3/memories/add/` |
| Create | **Delete Memory** | `DELETE /v1/memories/{id}/` |
| Search | **Search Memories** | `POST /v3/memories/search/` |
| Search | **Get Memories** | `POST /v3/memories/` |
## Prerequisites
## Authentication
1. A Mem0 API key from the <a href="https://app.mem0.ai/dashboard/api-keys?utm_source=oss&utm_medium=integration-zapier" rel="nofollow">API Keys dashboard</a> (sign up at <a href="https://app.mem0.ai?utm_source=oss&utm_medium=integration-zapier" rel="nofollow">app.mem0.ai</a> if you do not have an account).
2. A Zapier account on any plan.
The app uses API key authentication. Grab a key from the <a href="https://app.mem0.ai/dashboard/api-keys?utm_source=oss&utm_medium=integration-zapier" rel="nofollow">Mem0 API Key dashboard</a> and paste it when connecting your Mem0 account in Zapier. The key is sent as `Authorization: Token <key>` on every request.
<Note>
The Mem0 app is not yet listed in Zapier's public App Directory, so you need an invite link to add it to a Zap. Email [support@mem0.ai](mailto:support@mem0.ai) to request one.
</Note>
## Setup
<Steps>
<Step title="Add a Mem0 step">
In the Zap editor, search for **Mem0** and pick an action such as **Add Memory**.
</Step>
<Step title="Connect your account">
Select **Sign in**, paste your **Mem0 API Key** (it starts with `m0-`), and leave **Base URL** at `https://api.mem0.ai` unless you run Mem0 somewhere else.
</Step>
<Step title="Confirm the connection">
Zapier validates the key against Mem0 the moment you save it. A connection labelled **Mem0** means the key works.
</Step>
</Steps>
<Info>
The key is a password field, so Zapier masks it in the editor. It is sent to Mem0 as `Authorization: Token <key>`.
</Info>
## Quickstart
Remember what a user tells you:
```text
Trigger (form, chat, ticket) → Mem0: Add Memory
```
Set **Content** to the message text and **User ID** to a stable identifier for that person, such as their email.
Then recall it in a later Zap:
```text
Trigger (new message) → Mem0: Search Memories → Send reply
```
Set **Query** to the incoming message and **User ID** to the same value. The matched memories become available to every step after it.
<Note>
Extraction is asynchronous. **Add Memory** returns immediately with an event ID by default, so a Search fired a second later may not see the new memory yet. See [Waiting for extraction](#waiting-for-extraction).
</Note>
## Actions
| Type | Action | What it does | Endpoint |
| --- | --- | --- | --- |
| Create | **Add Memory** | Extract and store memories from a message | `POST /v3/memories/add/` |
| Search | **Search Memories** | Semantic search over stored memories | `POST /v3/memories/search/` |
| Search | **Get Memories** | List stored memories, one page at a time | `POST /v3/memories/` |
| Create | **Delete Memory** | Delete a single memory by ID | `DELETE /v1/memories/{id}/` |
### Add Memory
Extracts and stores memories from a message. Fields:
| Field | Required | Purpose |
| --- | --- | --- |
| **Content** | Yes | The message text to extract memories from |
| **Role** | | `User` (default), `Assistant`, or `System` |
| **User ID** | | Scopes the memory to a person |
| **Agent ID** | | Scopes the memory to an agent |
| **Run ID** | | Scopes the memory to a single session or run |
| **Metadata (JSON)** | | Arbitrary JSON attached to each extracted memory |
| **Custom Instructions** | | Free-text guidance steering what the extractor keeps or ignores, for this call |
| **Custom Categories (JSON)** | | JSON array of `{category: description}` objects, replacing the project-level catalog for this call |
| **Includes** | | Only extract memories matching this description |
| **Excludes** | | Skip memories matching this description |
| **Infer** | | On by default. Turn off to store the message verbatim instead of running LLM extraction |
| **Wait for Completion** | | Off by default. Turn on to poll until extraction finishes and return the resulting memories |
- **Content** (required): the message text to extract memories from.
- **Role**: `user`, `assistant`, or `system`.
- **User ID / Agent ID / Run ID**: entity the memory belongs to.
- **Metadata (JSON)**: optional structured metadata.
- **Infer**: run LLM extraction (default) or store the message verbatim.
- **Wait for Completion**: off by default. Extraction is asynchronous, so the action returns immediately with an event ID. Turn this on to poll until extraction finishes and return the resulting memories. Extraction can take longer than a single Zapier step is allowed to run, so a timeout here does not mean the add failed; it usually still completes on the server.
**Includes** and **Excludes** narrow what extraction keeps. Sending *"I am vegetarian and I never eat mushrooms. I drive a blue Toyota Corolla and my parking spot is B12"* stores three memories by default; with `Includes: "only record food and diet preferences"` it stores just the dietary one.
#### Waiting for extraction
Extraction runs asynchronously, so **Add Memory** returns an event ID and moves on unless you turn on **Wait for Completion**. When you do, the step polls for up to 60 seconds and returns the extracted memories instead.
<Warning>
Extraction can take longer than Zapier allows a single step to run, which is why waiting is opt-in. If the step times out, the add was still accepted and typically completes on Mem0's side, so do not retry it blindly.
</Warning>
### Search Memories
Semantic search over stored memories. Provide a **Query**, a **User ID** (required, the API needs an entity filter), and an optional **Limit**.
| Field | Required | Purpose |
| --- | --- | --- |
| **Query** | Yes | Natural-language search text |
| **User ID** | Yes | Whose memories to search. The API needs an entity filter |
| **Limit** | | Maximum results, default `50` |
### Get Memories
Lists stored memories for a user. Provide a **User ID** (required), a **Limit** (page size), and a **Page** (1-based) to page through larger result sets.
| Field | Required | Purpose |
| --- | --- | --- |
| **User ID** | Yes | Whose memories to list |
| **Limit** | | Memories per page, default `50` |
| **Page** | | Which page to return, 1-based, default `1` |
Returns one page per run. Raise **Page** to walk through larger result sets.
### Delete Memory
Deletes a single memory by its **Memory ID**.
Takes a **Memory ID** and deletes that memory. Pair it with **Search Memories** or **Get Memories** to get the ID first.
## Choosing a `userId`
## Choosing a User ID
The `user_id` 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 so recall works.
The **User ID** is a stable string you pick to identify whose memories these are. It is not looked up in the dashboard, so any consistent value works: your app's internal user ID, an email, or a UUID. Use the same value on Add, Search, and Get Memories or recall returns nothing.
## Troubleshooting
- **Mem0 does not appear in the Zap editor**: the app is not yet in the public App Directory. Email [support@mem0.ai](mailto:support@mem0.ai) for an invite link.
- **The connection fails when you paste the key**: check that it starts with `m0-` and has not been revoked in the <a href="https://app.mem0.ai/dashboard/api-keys?utm_source=oss&utm_medium=integration-zapier" rel="nofollow">API Keys dashboard</a>.
- **Search returns nothing right after an Add**: extraction is asynchronous. Turn on **Wait for Completion**, or put a Zapier **Delay** step before the Search.
- **"Metadata must be valid JSON" or "Custom Categories must be valid JSON"**: those fields take raw JSON. Check for smart quotes and trailing commas.
- **The Add step times out**: the memory was still accepted and is likely finishing server-side. Confirm with **Get Memories** before re-running.
<CardGroup cols={2}>
<Card title="n8n Integration" icon="diagram-project" href="/integrations/n8n">