Mizo Named Runner-Up in ConnectWise IT Nation PitchIT Competition 2025 Read the full press release

Building Your Own AI Agent for Your MSP: Why the Demo Works and Ticket 2,000 Doesn't

Mathieu Tougas profile photo - MSP technology expert and author at Mizo AI agent platform
Mathieu Tougas
•
Featured image for "Building Your Own AI Agent for Your MSP: Why the Demo Works and Ticket 2,000 Doesn't" - MSP technology and AI agent automation insights from Mizo platform experts

More MSPs are building their own AI agents, and we think that’s great. A technically minded owner or service desk lead connects an LLM to the PSA API on a Saturday, feeds it ten tickets, and watches it triage them correctly. It writes a sensible summary, picks the right board, suggests the right technician. It feels like the problem is solved.

We hear this story often, and we’ve lived it ourselves. Mizo started the same way. The prototype is real. It works. The trouble starts somewhere between ticket 10 and ticket 2,000.

This post is for anyone deciding whether to build an AI agent for their MSP or buy one. It’s an honest list of what we had to solve after the demo worked.

1. Your PSA’s data is messier than your test tickets

The ten tickets you tested with were clean. Real queues contain replies that opened as new tickets, emails with five forwarded threads, tickets in Chinese from a spam campaign, alerts with no contact, and clients emailing from personal addresses.

The bigger issue is the data model. Every PSA represents companies, contacts, boards, statuses, and custom fields differently, and every MSP has customized theirs. Most of the bugs in an AI agent for MSPs aren’t in the AI. They’re in the code that maps PSA data into something the model can use, and back again. Every mapping is a place where meaning drifts.

What it takes: a normalization layer per PSA, handling for every custom field and status your MSP uses, and tests against real, ugly tickets.

2. Every new use case touches everything

Your first agent does triage. Then you want dispatch. Then client updates, then quality review, then password resets. If each use case is written as code, each new one touches the intake pipeline, the prompts, the PSA write-back, the error handling, and the logs.

We hit a point where adding a single new use case meant changing dozens of files. That doesn’t scale to the 30 or 50 use cases an MSP actually wants.

What it takes: agents defined as configuration, not code. Each agent becomes a definition of its trigger, the tools it may use, the context it needs, and the permissions it has. Tools are shared and reusable. Adding a use case means writing a definition, not a release.

3. One queue, many priorities

In a prototype, every job runs immediately. In production, you have new client tickets, nightly syncs of thousands of records per tenant, reprocessing after config changes, and scheduled checks, all competing for the same workers.

When a big sync is running, an urgent ticket can wait minutes for its turn. For a client calling about an outage, minutes matter.

What it takes: separate queues or real priority across job types, so client-facing work never waits behind background work.

4. Things fail halfway

A deploy restarts your service while an agent is midway through updating a ticket. Microsoft’s API returns a 429. The PSA times out after the note was written but before the status changed. Now the ticket is in a state nobody intended.

What it takes: durable jobs with retries, idempotent actions (so a retried “add note” doesn’t add the note twice), and a clear record of which steps completed.

5. Errors have to be explained to the right person

When an agent can’t do something, the cause is often on the client’s side: a missing API permission, a disabled integration, an expired app secret, a GDAP relationship that doesn’t include the right role. If your agent just fails silently or logs “error 403,” someone on your team spends an hour finding out why.

What it takes: every agent run produces a readable summary: what it decided, why, what it did, and what it couldn’t do because of a permission or configuration problem, attributed to the system that caused it.

6. Structured output, every time

Prototypes parse free-text answers and mostly get away with it. At volume, “mostly” means dozens of malformed outputs a week, each one a ticket that didn’t get routed.

What it takes: strict output schemas enforced at the model level, validation before anything is written to the PSA, and a reasoning field on every decision so a human can audit it later.

7. Multi-tenant context and per-client rules

Your MSP has 40, 100, or 300 clients, each with their own exceptions. One client’s VIP list. Another’s rule that license purchases need the CFO’s approval. A third that must never be dispatched to a particular technician.

A single prompt can’t carry all of that, and a separate agent per client is unmaintainable.

What it takes: one base agent with client-specific overrides, and context selection that loads only what’s relevant for this ticket and this client. We wrote about where these rules really live in client-specific rules and the context layer.

8. Permissions and security

The demo agent had your admin API key. A production agent acting on client tenants needs scoped permissions per tool, approval gates for anything that changes access, identity verification before it acts on an end user’s request, and an audit trail. Your clients’ security questionnaires will ask about all of it.

See how to scope permissions for an AI agent for a practical breakdown.

9. Cost at volume

At 10 tickets, model cost is a rounding error. At 2,000 tickets a month across several agents, with reprocessing on every update, it isn’t. Sending the whole ticket history and every SOP to the largest model on every event gets expensive fast.

What it takes: cheap gating checks before expensive runs, explicit context selection, smaller models where they’re good enough, and metering per tenant so you can see where the cost goes.

So, build or buy?

Building is the right call if:

  • you have engineers with time to own it long term, not just build it,
  • your use case is narrow and unusual, and
  • you’re comfortable maintaining PSA, Microsoft 365, and RMM integrations as they change.

Buying makes sense if you want the outcome (tickets triaged, dispatched, and resolved) more than the project, and you’d rather your best technical people spend their time on clients.

There’s also a middle path that we see working well: buy the platform for the high-volume core (intake, triage, dispatch, routine resolution) and build on top of it for the processes that are truly unique to your MSP. Our build vs buy framework walks through the decision.

How Mizo approaches it

We built Mizo to solve the list above so MSPs don’t have to:

  • Native integrations with ConnectWise, Autotask, and HaloPSA, plus IT Glue, Hudu, Microsoft 365, and more, maintained by us.
  • Agents for intake, triage, dispatch, communication, phone intake, end-user verification, and quality review, configured in plain language with per-client rules.
  • Human-in-the-loop by default, with reasoning written to every ticket.
  • Agents moving to a composable model of trigger, tools, context, and permissions, so new resolution use cases ship as definitions rather than code.

If you’ve already built a prototype, that’s a great starting point for a conversation. You’ll know exactly what to ask. See our AI agent for MSPs page for more.

👉 Built your own agent and hit the wall? Book a demo and compare notes with the team that hit it first.

FAQ

Can an MSP build its own AI agent with an LLM API?

Yes, and a prototype for triage can work in a weekend. Running it reliably at thousands of tickets a month requires PSA data handling, durable jobs, permissions, error reporting, and multi-tenant context.

What breaks first when a DIY AI agent goes to production?

Usually data handling: replies, duplicates, spam, and custom PSA fields the prototype never saw. Queue latency and partial failures follow soon after.

How much does it cost to run an AI agent on MSP tickets?

Model costs depend on volume and design. Gating checks, selective context, and smaller models for simple decisions keep costs low. Reprocessing every update with full context is what makes them expensive.

Should an MSP build or buy an AI agent?

Buy for high-volume, common work like triage and dispatch. Build only for processes unique to your MSP, ideally on top of a platform that already handles integrations and security.