Add, search and recall MemorySync memories from any Zap, no code required. Store what a form, ticket or chat teaches you, pull it back into any of Zapier’s 8,000+ apps — and react the moment a memory is stored anywhere, with the category’s first New Memory trigger.
Zapier maps End User ID across capture, recall, and New Memory trigger Zaps so context follows later automations.
How it works
Connect your MemorySync API key once as a Zapier connection.
Use Add Memory or Add Conversation Turn to store what a Zap learns — only the durable facts are kept.
Use Search Memories, Recall Context or Find Memories to pull that context back into a later step.
Use the New Memory trigger to start a Zap whenever a memory is stored for a user — from your app, an agent, a voice call, or another Zap.
Before you start
A Zapier account, on any plan.
A MemorySync API key. Create one in the dashboard under Settings → API Keys, inside the project whose memories the Zaps should use.
Connect MemorySync
1
Add a MemorySync step
In the Zap editor, search for MemorySync in the app picker and choose an action such as Add Memory.
2
Sign in
Select Sign in, and paste your API Key (it starts with ms_). Zapier masks the field and sends the key only as a request header.
3
Confirm the connection
Zapier validates the key against MemorySync with a real query the moment you save it. If the connection appears with a green check, the key works — every later MemorySync step reuses it.
Two Zaps that show the whole idea
Capture: remember what a user tells you
1Trigger: anything that carries a message — a form submission, a support ticket, a chat.
2Action: MemorySync → Add Memory. Map Text to the message and End User ID to a stable identifier for that person, such as their email address.
Recall: use it in the next conversation
1Trigger: the next inbound message from that person.
2Search: MemorySync → Recall Context. Same End User ID; set Topic to what the next step is doing, e.g. drafting a reply to their email.
3Action: your AI step (ChatGPT, Claude, etc.). Paste the returned context block into the system prompt — it arrives pre-formatted, ready to use.
Every operation
Type
Operation
What it does
Trigger
New Memory
Fires when a memory is stored for an end user — from any surface. A conversation turn fires it once per fact extracted from it
Search
Search Memories
Semantic search — results fan out as line items
Search
Recall Context
One prompt-ready context block for a ChatGPT/Claude step
Search
Find Memories
Newest-first listing for an end user
Create
Add Memory
Store a fact — extraction keeps only durable content
Create
Add Conversation Turn
Send one turn with its role — durable facts from what the user said become memories; assistant turns are accepted but not stored
Create
Delete Memories
Explicit deletion by ID
New Memory (trigger)
Field
Required
Purpose
End User ID
Yes
Which end user to watch for new memories
Zapier polls the newest memories on your plan’s polling interval (1–15 minutes) and deduplicates by memory ID, so each memory fires exactly once. Output fields: id (m_789), text, summary, source, created_at.
Add Memory
Field
Required
Purpose
End User ID
Yes
Which end user this memory belongs to, e.g. customer-42
Text
Yes
What to remember
Source
No
Where this memory came from (shows in the dashboard); defaults to zapier
Metadata (JSON)
No
Optional JSON object attached to the memory, e.g. {"zap": "crm-sync"}
Returns stored: true with the new id, or stored: false with a reason when extraction found nothing durable to keep — the Zap continues either way.
Add Conversation Turn
Field
Required
Purpose
End User ID
Yes
Which end user this conversation belongs to
Role
Yes
Who said it — *User* or *Assistant*
Text
Yes
What was said. User turns go to fact extraction; the text itself is never stored
Session ID
No
Conversation this turn belongs to — the facts carry session_id: zapier::<Session ID>
User turns go to fact extraction: only the durable facts in what the user said (preferences, plans, details) are stored, as separate memories with their own m_ IDs, asynchronously shortly after the step runs. They appear in Find Memories, Search Memories and Recall Context, and fire New Memory once per fact. Filler such as “ok” or “thanks” stores nothing. Every turn counts one add whatever it stores, so Assistant turns, which are accepted and stored nowhere, cost an add each; leaving them out of the Zap saves that add and the Zapier task each one uses. The same text sent again for the same end user, role and session within 30 days is recognised as a retry: it is not extracted twice and not counted again.
Output
Meaning
id (Request ID)
req_…: the extraction request ID. When no extraction was started, a stable turn_… ID derived from the turn. Never a memory ID, and Delete Memories refuses it.
status
distilling (facts are being extracted), skipped_non_user_turn (assistant turn), skipped_low_value (nothing worth remembering), skipped_replay (already sent), skipped (monthly quota reached; nothing stored). completed or failed appear when extraction ran immediately; a failed turn is extracted when the step is retried.
already_exists (Already Sent)
true when the same user turn was sent before and was not extracted again.
accepted
true whenever the step succeeds.
stored_as
Always facts: the turn text itself is never stored.
Search Memories
Field
Required
Purpose
End User ID
Yes
Which end user to search
Query
Yes
What to look for, in natural language
Limit
No
Maximum memories to return (1–50)
Recall Context
Field
Required
Purpose
End User ID
Yes
Which end user to recall
Topic
Yes
What the downstream step is about, e.g. drafting a reply to their email
Limit
No
Maximum memories to consider
Find Memories
Field
Required
Purpose
End User ID
Yes
Which end user to list
Limit
No
Maximum memories to return, newest first
Delete Memories
Field
Required
Purpose
End User ID
Yes
The end user the memories belong to
Memory IDs
Yes
Comma-separated memory IDs to delete, e.g. m_123, m_456 — get them from Search or Find first. Anything that is not a memory ID (such as a req_… Request ID) is refused before any network call
Recipe ideas
Memory-aware email drafts — Gmail: New Email → Recall Context (End User ID = sender’s email) → ChatGPT drafts the reply with the context block → Gmail: Create Draft.
Capture CRM knowledge — New HubSpot note → Add Memory.
React to what agents learn — New Memory trigger → Slack message to #customer-signals.
Support capture — New Zendesk ticket → Add Conversation Turn (Role: User) → the durable facts in the customer’s message become memories every agent can recall.
Every operation is scoped by End User ID — map it from the trigger (an email address, a CRM contact ID, a phone number). One user’s memories can never leak into another user’s Zap output.
Choosing an End User ID
The End User ID is a stable string you pick to identify whose memories these are: your app’s internal user ID, an email address, or a phone number. Use the same value on Add, Search and Recall or recall returns nothing.
When something goes wrong
Scenario
What happens
Monthly quota reached (evaluation keys)
A clear QuotaExceeded error — “upgrade the plan or use a production key” — not an endless retry loop on a task that can never succeed
A friendly validation error raised before any network call
Wrong API key
Fails at connection time — the credential test makes a real query
Retried step after a timeout
Add Conversation Turn carries a deterministic idempotency seed — the replay reports already_exists: true (status: skipped_replay) and is not extracted twice
Troubleshooting
MemorySync doesn’t appear in the app picker — type the full name, *MemorySync*, in the app search; the listing is public. It went live on 4 September 2026, and Zapier caches its directory, so a picker that still misses it should show it within a few hours — if it doesn’t, contact us.
The connection fails when you paste the key — confirm it starts with ms_, hasn’t been revoked, and was created inside a project in the dashboard (keys created without a project can’t serve memory requests).
Search returns nothing right after an Add — extraction is asynchronous; recall in a later run or add a Delay step. Also confirm both steps use the same End User ID.
“Metadata must be valid JSON” — that field takes raw JSON. Watch for smart quotes and trailing commas.
A replayed step didn’t duplicate the turn — that’s the idempotency seed working as designed.
An Add Conversation Turn step stored nothing — check status: assistant turns (skipped_non_user_turn) and filler (skipped_low_value) store nothing by design; only the durable facts in what the user said become memories.
Supported versions
Surface
Requires
Verified on
memorysync-zapier 1.1.0
A Zapier account (any plan); the app is in Zapier’s public directory (Beta label for its first 90 days)
40 CI checks driven through zapier-platform-core’s own appTester, fully offline: auth + connection label, header middleware, explicit roles and honest turn outputs (Request IDs, never memory IDs), idempotency seeds, strict memory-ID parsing on delete, tenant fallback, quota messaging, silent-quota envelopes, trigger dedupe ordering, and full zapier-platform-schema validation
How it compares
Mem0
Supermemory
Zep
MemorySync
Zapier app exists
△ invite-only via a support email
✗ a Code-by-Zapier snippet with an admitted bug in their docs
✗ none
✓ full app
Any trigger
✗ zero triggers
✗
✗
✓ New Memory — first in the category
Prompt-ready recall
✗
✗
✗
✓ Recall Context
Quota handling
✗ 60s polling loops that outlive Zapier’s step timeout
—
—
✓ clear upgrade error; silent free-tier quota never fails a Zap