--- title: "Zapier memory: the past.dev app for Zaps" description: "The past.dev app on Zapier gives a Zap memory: save messages with their date and author, then recall a person's history before an AI step runs." canonical: https://past.dev/integrations/zapier last-updated: 2026-10-29 --- # Add memory to your Zaps Source: https://past.dev/integrations/zapier past.dev is a public app on Zapier, so a Zap can save text to memory and read it back in a later run. The app has two actions, Ingest Data Point and Delete Data Point, and one search, Recall Memory. Ingest Data Point saves a message, ticket or note with its date, its author and your own source id. Recall Memory returns one person's memories, ranked, with dates and source excerpts, plus a Context field you can put straight into the prompt of an AI step. You need a past.dev project key and no code. ## What the past.dev app does in Zapier The app is listed on Zapier as [past.dev](https://zapier.com/apps/past-dev/integrations). It calls the [Memory API](/docs/memory-api/api-reference) with a project key, one API call per step: | Step | What it does | | --- | --- | | Ingest Data Point (action) | Saves one data point (a message, a ticket, a note or a transcript) with its date and the identity of its author. The same Source ID again saves a new revision of that data point. | | Recall Memory (search) | Returns the memories that answer a query for one identity, most relevant first, each with its date and the excerpts it came from. | | Delete Data Point (action) | Deletes one data point by its Source ID, with the memory made from it. | Recall Memory always returns one item, so the Zap keeps running when nothing matches. Its **Context** field holds the results as plain text, one dated block per memory with its sources, and **Result Count** gives the number of results. When nothing matches, Result Count is 0 and Context is empty. The Identity, Audience and Source ID fields offer dropdowns filled from your project. You can also map a value from an earlier step. ## Connect Zapier to your project 1. In the [past.dev console](https://app.past.dev), open **Build › API keys** and create a project key. It starts with `past_sk_`. 2. In a Zap, add a step and search for **past.dev**. 3. Pick Ingest Data Point, Recall Memory or Delete Data Point, connect an account and paste the key into **API key**. Zapier checks the key by reading the project's audiences, which uses no credits. Neither do the dropdowns. Each Ingest Data Point and each Recall Memory uses credits from your plan, at the rates on the [pricing page](/pricing). A key belongs to one project, so add a second connection to use a second project. ## Example Zap: reply to support email with the customer's history This Zap drafts a reply to each support email using what the customer said before, then saves the email for next time. 1. **Trigger:** a new email arrives in your support inbox. 2. **past.dev › Recall Memory:** set Query to the email body and Identity to the sender's email address. 3. **AI step:** draft the reply, with Recall Memory's **Context** field in the prompt. 4. **past.dev › Ingest Data Point:** set Content to the email body, Identity to the sender's email address, Occurred At to the date of the email and Source ID to the email's message id. Recall Memory runs before Ingest Data Point, so the context holds what the customer said before this email. Each email keeps its message id as its Source ID, so another Zap can later remove one email with Delete Data Point. [Memory for customer support](/use-cases/customer-support) covers the same memory for a whole support team. ## Set the identity in the Zap An identity is the id of one person in your own records: a user id, an email address or a customer id. Recall Memory needs one, and it returns only the memory that this identity can read. Ingest Data Point records it as the author and adds it to the project the first time it sees it. > **Identity** > > The application sets the identity. The model never chooses it. Recall returns what the identity in the request may read, so take the identity from the signed-in user in code, and keep it out of every value that the model fills. Map Identity to a value from the trigger or from your user record. If an AI agent runs these steps as tools, give Identity a mapped or fixed value in the Zap, so the agent can't choose it. A model that chooses the identity can read another person's memory. ## Ingest Data Point and Recall Memory fields | Ingest Data Point field | What to put in it | | --- | --- | | Content | The original text, such as the whole email or ticket. Required. | | Identity | The person who wrote the content. | | Occurred At | When it happened, such as the time the message was sent. Memory is dated with this time. | | Source ID | Your own stable id, such as a message or ticket id. The same id again replaces the content. Delete Data Point takes this id, and a deleted id can't be sent again. | | Label | A short title. Recall Memory returns it with the source. | | Audience | The audience that can recall this data point. When empty, every identity in the project can. | | Metadata | Your own key-value data, such as the channel or a URL. Recall Memory returns it with the source. | | Idempotency Key | A replay key. When a Zap retry sends the same key, the data point is accepted once. | Recall Memory takes **Query** and **Identity**. **Occurred From** and **Occurred To** limit the results to a time window, **As Of** reads memory as it was at a past time, **Sort** returns the oldest first instead of the most relevant, and **Level** or **Max Tokens** sets how much evidence comes back. ## Other Zaps you can build - Save each closed help desk ticket with the customer's email as Identity. When the same customer opens a new ticket, recall that history before an AI step suggests a reply. - Send meeting notes or call transcripts to Ingest Data Point with the meeting date as Occurred At, so each memory carries the date of the meeting. - Save CRM notes about an account, and recall them before an AI step writes a follow-up email. - When someone asks you to remove a record, run Delete Data Point with the record's Source ID. The [quickstart](/docs/memory-api/quickstart) shows the same calls over HTTP. The [benchmarks](/benchmarks) show how recall is measured. ## Frequently asked questions ### Do I need to write code to add memory to a Zap? No. Each step is a form. You pick the action, connect your project key and map fields from earlier steps. ### What does Recall Memory return when nothing matches? One item with Result Count set to 0 and an empty Context field. The Zap keeps running, so an AI step after it still runs. ### Which steps use credits? Each Ingest Data Point and each Recall Memory uses credits from your past.dev plan. The connection test and the dropdowns don't. ### Can several Zaps share one memory? Yes. Every Zap connected with a key for the same project reads and writes the same memory. Recall Memory still returns only what the identity in the step can read. ## Related - [Memory for n8n](https://past.dev/integrations/n8n) - [Memory for Dify](https://past.dev/integrations/dify) - [Memory for the Vercel AI SDK](https://past.dev/integrations/vercel-ai-sdk) - [Memory for customer support](https://past.dev/use-cases/customer-support) - [What is agent memory?](https://past.dev/what-is-agent-memory) - [Quickstart](https://past.dev/docs/memory-api/quickstart)