This is where you cross from operating support AI to building it: deploying a virtual service agent end-to-end, understanding the RAG pipeline underneath every service-desk assistant, engineering retrieval quality against a golden set, and designing escalation that respects users — because a bot that never gives up has great numbers and furious users.
Priya works L2 at a Bengaluru MSP, four years in, AZ-104 half-studied on her desk. In August her manager gives her the project she has been angling for: stand up a virtual service agent for the MSP's biggest client on their Freshservice tenant. The platform makes the start almost embarrassingly easy — connect the KB, enable the agent, pick channels. Atlassian advertises build-to-live in under 30 minutes for its JSM equivalent, and that is roughly what Priya's first version takes.
The pilot numbers after two weeks look spectacular: 71% of conversations "handled without escalation." Then the client's IT lead forwards her a transcript. An employee locked out during payroll week asked for help four different ways; the bot answered each rephrase with the same confident, slightly-wrong KB article about password expiry (the real issue was account lockout after a phone change — an article that existed but was never retrieved); the employee asked for a human twice; the bot offered the article a fifth time. The employee gave up and called the desk — which is why the conversation counted as "handled without escalation." The bot's best number was measuring its worst behavior.
Priya's fix took three weeks and is this module: escalation paths with real handoff, retrieval tuned against a golden set of actual user questions, honest "I don't know" behavior, and an eval habit that measures what users experienced rather than what the dashboard implies. The second pilot's headline number was lower — 54% — and every point of it was real. This module builds both halves: the platform skills that get a bot live, and the engineering-plus-honesty that makes it worth having live.
The platform path — JSM virtual service agent, Freddy AI Agent, Copilot Studio — is genuinely low-code, and the free tiers (JSM free plan, Freshservice trial) mean you can do everything in this section this week. The work divides into five stages, and the config is the easy two of them:
Free-tier reality check — JSM's free plan supports 3 agents and its virtual agent features vary by plan; Freshservice trials are time-boxed. The lab uses whichever tenant you can get; the skills transfer across all of them because the underlying pattern is identical.
Every service-desk AI — Freddy, Now Assist's Q&A, your future custom bot — is retrieval-augmented generation underneath: chunk the KB, embed the chunks, retrieve by similarity at question time, generate an answer grounded in the retrieved chunks, with citations, and refuse when nothing sufficient was found. The Common Core gave you RAG literacy; this module makes it a support-desk skill, and Lab 11 makes you build the whole pipeline yourself — Ollama for the local model, an open-source stack (LangChain/LlamaIndex-class), a free vector store (Chroma/pgvector-class), your sample KB in, a citation-grounded chatbot out, no budget and no data leaving your machine.
Building it yourself, once, is the point — not because you will replace Freddy, but because every configuration decision in every platform bot is a RAG decision wearing a settings page:
When a stakeholder asks why the expensive platform bot gave a wrong answer, the person who has built a RAG pipeline by hand can diagnose it — retrieval, generation, or content — in an afternoon. The person who has only clicked the settings page can only file a vendor ticket. That diagnostic ability is the build-side premium in one sentence.
"The bot can't find the article that exists" is the #1 deployment complaint, and it is an engineering problem with an engineering method. You need one artifact and one loop.
The artifact is the golden set: 30–50 real user questions — mined from actual tickets, in actual user vocabulary, including the hard cases (vocabulary mismatches, questions whose answer spans two articles, questions the KB cannot answer where refusal is the correct behavior) — each paired with the article/chunk that should ground the answer. Lab 12 provides one; for your production desk you will build your own, and it becomes the desk's most valuable AI asset: the same set that tunes your bot also evaluates every vendor claim in Module 7.
The loop is eval-driven fixing, with failures classified before they are fixed:
| Failure class | Symptom | The fix lives in |
|---|---|---|
| Retrieval | Right article exists, wasn't retrieved (or lost to a worse chunk) | Chunking, synonym metadata, KB rewrites (Module 3), hybrid search |
| Generation | Right chunks retrieved, answer still wrong or ungrounded | Prompt constraints, grounding rules, refusal thresholds |
| Content | No article answers it, or the article is wrong/stale | The KB itself — write or fix the article; no pipeline setting can help |
The classification discipline is what separates engineering from thrashing: teams that skip it re-chunk everything when the actual problem was three missing articles, or rewrite prompts when retrieval never surfaced the right text. Measure, classify, fix the class, re-measure. Lab 12's artifact — before/after scores with a failure-taxonomy sheet showing which fix moved which failures — is exactly the evidence an employer reads as "this person can run a support-AI program."
Now the payroll-week transcript, done right. The industry evidence is blunt: bots that never escalate post great deflection and terrible satisfaction — users abandon, rage-click, and arrive at the human desk angrier than if the bot had never existed. Escalation is not the bot failing; it is the bot working as designed. Design it with four mechanisms:
No human-handoff path in-channel. High confidence display regardless of retrieval quality. Rephrases treated as new questions. "Handled without escalation": 71% — including every user who gave up and called anyway.
Escalation reachable from any turn. Refusal below confidence threshold. Frustration triggers with warm handoff. Strict resolution: 54% — every point verified, and desk CSAT rose because arrivals came pre-contexted instead of pre-enraged.
Deflection versus abandonment is the central design distinction of this module and a certain topic in the AAP-IT assessment. Deflection: the user's problem was solved without a human. Abandonment: the user gave up. Dashboards that count "conversations without escalation" merge the two — and the merged number always flatters the bot.
The next step past Q&A is agents that act: create the ticket, reset the password via API, check license availability, trigger the Module 4 remediation script. Freddy's AI Agent Studio, Rovo agents and custom builds (Graph API, MCP-connected tools) all offer it, and it is where deflection gets real — a password reset actually executed is a resolution, not an answer. It is also where the desk inherits agent-safety engineering, and the Common Core's rules arrive with sharper teeth because the acting credential is an admin credential:
Module 7's governance matrix formalizes all of this into the signable document; build nothing action-enabled before that matrix exists in at least draft form.
The quiet statistic behind failed assistant projects: adoption failure kills more deployments than model failure. A technically sound bot that nobody uses — or that users try once during a bad week-one and never return to — fails exactly as completely as one that answers wrongly. Treat multi-channel rollout as a change-management project: channel-appropriate behavior (Teams/Slack answers are conversational and short; portal answers can be article-length), a launch that sets honest expectations ("it will hand you to a human when it can't help" beats "meet your new AI assistant that can do anything"), visible early wins on the top-3 contact types, usage analytics watched weekly, and a feedback path users can see acting on their complaints. Priya's second pilot spent as much effort on the client's launch comms as on retrieval tuning; the retention curve was the reward.
The platform gets a bot live in thirty minutes; this module is everything that makes it worth having live — retrieval engineered against a golden set, grounding that cites and refuses, escalation that respects the user's time, actions gated by scoped credentials, and a rollout run as change management. Priya's real lesson is the two pilots: 71% flattering and false, 54% lower and true — and the desk that knows which number is which is the desk that gets to keep its bot.