Personalized recall brief for every new Zendesk ticket

When a new Zendesk ticket lands, pull what you already know about that customer from Mem0 and drop a private brief on the ticket and in Slack.

Agentic Task
ZendeskMem0SlackCustomer SupportOperationsFeedback TriageNotifications & Alerts

Build me an agent workflow that gives my Zendesk support reps a personalized recall brief for every new ticket so they never start a conversation cold.

Trigger: an outgoing webhook from Zendesk. I will configure a Zendesk trigger or automation that fires on ticket creation and POSTs the ticket payload to the workflow's webhook URL. Expect the payload to contain at minimum the ticket id, requester id, subject, the first comment body, the assignee id (or group), and the ticket URL.

Steps for the agent:

1. Parse the incoming Zendesk webhook payload and pull out ticket id, requester id, subject, first comment body, assignee, and ticket URL.

2. Call Zendesk Show User on the requester id to get the requester's email address. If the user has no email, stop and add a private internal note on the ticket explaining why no brief was generated.

3. Call Mem0 Search Memories with user_id set to that email address and a semantic query built from the ticket subject plus the first ~500 characters of the first comment. Ask for the top ~10 results.

4. From the returned memories, synthesize a short recall brief (aim for 6-10 bullets total) organized into these sections, only including sections that have content: Prior unresolved issues, Stated preferences (channel, tone, technical depth), Commitments we've made, Recurring pain pattern. Cite which memory each bullet came from where useful. Keep it tight, this is for a rep about to reply.

5. Call Zendesk Update Ticket on the original ticket id to add the brief as a comment with public: false (a private internal note). The brief must never appear in the public-facing conversation. Prefix it with a clear header like "Customer recall brief (auto-generated from Mem0)".

6. Call Slack Send a Message to post the same brief into the team's support channel (channel name should be a configurable input, default #support-triage). Tag the assignee by Slack handle if available, and include a clickable link back to the Zendesk ticket. Use Slack mrkdwn formatting.

7. If Mem0 Search Memories returns zero results or nothing semantically relevant, do NOT generate a brief. Instead, add a single private internal note on the ticket that says "No prior context found in Mem0 for this customer" and skip the Slack message entirely. The support channel should stay quiet for first-time customers.

Safety constraints: every Zendesk comment this workflow writes MUST have public: false. Past memories may contain sensitive context (account details, prior complaints, internal notes about the relationship) and must never leak to the customer. Do not edit existing public comments or change ticket status, priority, or assignee.

Inputs I want to be able to configure without editing the workflow: the Slack channel to post into, and an optional list of Zendesk tags or brand ids that scope which tickets get a brief (so we can pilot on paid accounts first).

Additional information

What does this prompt do?
  • Watches Zendesk for new tickets and reads the subject, body, and who sent it.
  • Searches your Mem0 memory store for everything you already know about that customer, scoped to their email.
  • Writes a short recall brief covering prior unresolved issues, stated preferences, commitments you have made, and recurring pain points.
  • Posts the brief as a private internal note on the ticket so it never reaches the customer, and pings the assignee in your support Slack channel with the same brief and a ticket link.
  • If there is no relevant prior context, leaves a one-line note on the ticket and skips Slack so the channel stays quiet.
What do I need to use this?
  • A Zendesk account with permission to create a trigger or automation that fires an outgoing webhook on new tickets.
  • A Mem0 workspace where you already store customer memories scoped by email address.
  • A Slack workspace and the name of the channel your support team watches.
How can I customize it?
  • Change which Zendesk events fire the brief (only new tickets, only certain brands, only certain ticket forms).
  • Tune what goes in the brief, for example add billing history or last NPS score, or drop sections you do not use.
  • Pick a different Slack channel, switch to a DM to the assignee, or skip Slack entirely and keep the brief on the ticket only.

Frequently asked questions

Will the customer ever see this brief?
No. The brief is added as a private internal note on the Zendesk ticket, which is only visible to your support team. The customer-facing conversation is never touched.
What if Mem0 has nothing on this customer yet?
The agent posts a one-line note that says there is no prior context and skips the Slack ping, so your channel does not fill up with empty pings for first-time customers.
How does the agent know which Mem0 memories belong to this customer?
It looks up the requester in Zendesk to get their email address, then searches Mem0 scoped to that email. Memories you have already saved against the same email will surface.
Does this replace my support agent's job?
No. It hands them a head start so they do not have to dig through past tickets and notes before replying. The reply itself is still yours to write.
Can I run this only for certain customers, like paying accounts?
Yes. You can configure the Zendesk trigger to fire only on tickets that match a tag, organization, brand, or custom field, so the brief only runs where it is worth the effort.

Stop opening every new ticket cold.

Connect Zendesk, Mem0, and Slack once, and Geni hands your team a personalized customer brief the moment a ticket lands.