Email AI Agent on Zendesk (prototype)

Email AI Agent on Zendesk (prototype) | Saeid Kajkolah
Conversational AI Prototype · fictional brand Zendesk AI agents Email n8n

Email AI Agent
on Zendesk

A prototype on a fictional brand. I built Loomy, an email AI agent for an invented company called Siteloom, to learn Zendesk AI agents (Advanced) for email end to end: knowledge, generative procedures, a mock account API and escalation routing. The most useful part is what broke along the way.

2
Generative procedures
5/5
Final test emails passed
1
Mock backend API for account lookup
6
Documented lessons
Stack Zendesk AI agents Help Center Generative procedures Triggers n8n
Context

Why I built it

My client agents run on web chat, WhatsApp, voice and SMS. Email behaves differently: every reply is a full message the customer keeps, and a wrong or duplicate reply is hard to take back. I wanted to learn Zendesk AI agents for email hands-on, with a scope close to a real support desk.

Siteloom and Loomy are invented. There is no real customer data behind this page, only test emails and a mock backend.

Architecture

How it works: 4 layers

1
Help centre
The knowledge the agent answers from
A Siteloom help centre with the articles Loomy draws on for general questions.
2
Generative procedures
Domain issues, and billing and chargebacks
Two procedures that describe in plain language how the agent should handle each type of request.
3
Account lookup
A mock backend in n8n
An n8n workflow acts as the account API. A “Get sender info” action gives the agent the sender’s email, so it knows whose account to look up.
4
Escalation
Routing triggers and a team view
Escalated emails are routed by triggers to the right team and show up in a dedicated team view.
Design decisions

Why each choice was made

Answer first and then escalate, or escalate with one reply?
My first version answered and then escalated as separate steps. In testing that produced inconsistent replies: sometimes one email, sometimes two, sometimes none. On email that’s worse than on chat, because every message lands in the customer’s inbox.
Not chosen: answer, then escalate
One, two or zero emails depending on the run.
Chosen: one escalation reply
The escalation reply is the only handover message. Always exactly one email.
Where should the account lookup happen?
In the prototype the lookup runs inside the conversation. I found that an email address written by the customer in a follow-up message could still steer the AI towards another account. I documented it as a known limitation. In production the lookup belongs in a deterministic step before the conversation starts, tied to the sender and not to anything written in the email.
Prototype: lookup inside the conversation
Flexible, but the email text can influence whose data is looked up.
Production fix: deterministic lookup first
The account is fixed before the AI starts, so the conversation can’t change it.
Handover and measurement

Two paths for every email

Path A Answered by Loomy
  • The agent identifies the sender
  • It follows the matching procedure or the help centre
  • It replies with one email
Path B Escalated to the team
  • The agent sends a single escalation reply
  • A trigger routes the ticket to the right team
  • The ticket appears in the team view
Result

End to end

CustomerSends an email
→
Sender infoWho is writing
→
ProcedureOr help centre
→
Account APIn8n mock backend
→
One replyAnswer or escalation
A working email agent with a help centre, two generative procedures, an n8n mock account backend, escalation routing triggers and a team view. All 5 final test emails passed.
Takeaways

What I learned

This is why I built the prototype. These are the things I want to know before building an email agent for a client.

01. Set the subdomain first
Renaming the Zendesk subdomain after the AI agents existed broke the knowledge index. I rebuilt everything on a fresh trial.
02. Drafts are invisible to the AI
Draft or restricted help centre articles don’t reach the agent. When an answer is missing, check the article’s status first.
03. Verify “automated resolution”
A resolution can be logged even when the AI didn’t help. The metric needs checking against real conversations.
04. The agent doesn’t know the sender
By default the agent has no access to the sender’s email. A “Get sender info” action fixed it.
05. One handover message
Make the escalation reply the only handover message, or the customer gets one, two or zero emails.
06. Keep lookups out of the conversation
Fix the account lookup before the conversation starts, not inside it.
Scroll to Top