Everyone's demos look impressive — here's what happens when AI agents actually touch your operations.
The demo worked perfectly. The agent parsed a maintenance request, created a work order, assigned a technician, and sent a confirmation — all in under thirty seconds. Everyone in the room nodded. Then we tried to deploy it against a real school district's data. The facilities director had named one building 'GYM (OLD)' and another 'OLD GYM' for different reasons she no longer remembered. Half the technician records had phone numbers formatted differently. Two work order categories overlapped conceptually but were billed to separate budget codes. The agent, which had looked like magic twenty minutes earlier, had no idea what to do.
That gap — between demo magic and production reality — is the most important thing to understand about AI agents in operations right now. Not because agents aren't powerful. They are. But because the conditions required for them to work reliably are almost never discussed when someone is trying to sell you on them. This post is about what we've actually seen work, what consistently falls apart, and how to think about deploying agents in operational software without setting your team up for an embarrassing rollback three months later.
What 'AI Agent' Actually Means in an Operational Context
Before we get into what works, let's be precise about what we're talking about. An AI agent, in the context of operational software, is a system that can perceive some input, make a decision, and take an action — without a human approving each step. That's distinct from AI-assisted workflows, where a model suggests something and a human clicks approve. Agents act. That distinction matters enormously for how you think about risk, data quality requirements, and where in your workflow they belong.
In OpsFlow, we've been deliberate about this boundary. There are workflows where an agent acting autonomously creates leverage. There are others where autonomous action creates liability — particularly in K-12 environments where a misrouted work order for a broken HVAC unit isn't just an inconvenience, it's a facilities director fielding angry calls from principals. The first design question isn't 'where can we add an agent?' It's 'where does autonomous action create value that outweighs the cost of an error?'
Most teams skip that question entirely. They see the agent demo, they imagine the efficiency gains, and they start building. The result is agents deployed in high-stakes parts of the workflow where errors are costly, or agents deployed in low-value parts of the workflow where no one cares if they work. Neither is a good outcome.
The Things That Actually Work
Let's start with where we've seen real, durable value from agents in operational software — not theoretical value, not demo value, but the kind of value that holds up when the data is messy and the users are distracted.
Triage and classification consistently works. When a facilities worker submits a request that says 'the thing in the hallway near the gym is making a noise,' an agent that can classify that as likely HVAC or likely electrical based on building context, prior work order history, and language patterns is genuinely useful. It doesn't have to be right every time. It has to be right often enough that it reduces the cognitive load on the coordinator who would otherwise read every submission cold. In this use case, errors are cheap — a misclassification gets corrected by the coordinator in two seconds. The agent is a first pass, not a final decision.
Notification and follow-up logic also holds up well in production. Agents that monitor work order status and trigger the right communication — a reminder to a technician who hasn't updated a ticket in 48 hours, a status update to the principal who submitted the request, an escalation flag to the facilities director when something has been open past SLA — these work because the action being taken is low-risk and the logic is well-bounded. The agent isn't making a judgment call about the work itself. It's executing a communication rule based on structured state data.
- Triage and classification of inbound requests (with human review remaining available)
- Automated status communication triggered by structured state changes
- Anomaly flagging — surfacing records that don't match expected patterns for human review
- Data normalization on intake — standardizing formatting before records enter the system
- Summarization of historical records to support human decision-making
That last one — summarization — deserves its own mention. When a technician is dispatched to a piece of equipment they haven't worked on before, an agent that can pull the last 18 months of work orders for that asset, identify recurring issues, and surface a two-paragraph summary before the technician walks in the door is useful in a way that doesn't require the agent to take any risky action. It's read-only, it's advisory, and it makes a skilled human more effective. That's a pattern we return to constantly.
What Consistently Falls Apart
Here's where we have to be honest about what doesn't work — and why the demos always miss it.
Agents that depend on clean, consistent data almost always degrade in production. Demos are built on pristine seed data. Real operational databases have years of human entropy baked into them. Inconsistent naming conventions. Duplicate records. Fields used for purposes they were never designed for. Budget codes that made sense to someone who left the organization in 2019. When an agent is making routing or assignment decisions based on this data, the failure modes are unpredictable and often silent — meaning the agent does something, it looks like it completed successfully, and the error doesn't surface until a technician shows up at the wrong building.
Multi-step autonomous workflows that touch external systems are another consistent failure point. The demo shows an agent that receives a request, creates a work order, orders a part from a supplier, updates the budget ledger, and sends a confirmation — all in one chain. In production, each of those steps has its own failure modes, its own latency, and its own edge cases. The chain breaks. And when it breaks mid-execution, you often end up in a state that's worse than if nothing had happened — a work order created without a part order, a budget line debited without a corresponding action, a confirmation sent for work that never got scheduled.
- Complex multi-step workflows with real financial or compliance implications
- Decisions that require organizational context no system has captured
- Any workflow where a silent failure is worse than no action at all
- Tasks that require the agent to reconcile conflicting information without a clear tiebreaker rule
- Interactions with legacy systems or APIs that weren't designed for machine-to-machine reliability
The W.L. Petrey ordering platform taught us something related. In wholesale distribution, an agent that autonomously processes reorder logic sounds like a massive win. But the nuance is that experienced buyers carry contextual knowledge that isn't in the system — a supplier relationship issue, a quality concern from a recent shipment, a customer who's been requesting a specific substitute brand. When the agent acts on system data alone, it occasionally makes a technically correct decision that any experienced buyer would have flagged as wrong. The system looked fine. The experienced human would have known better. That gap is very hard to close with data alone.
The Data Quality Problem No One Wants to Talk About
If you are building AI agents into an operational product, you will eventually have a conversation with a client about data quality. Have it early. Most SaaS founders and operators underestimate how much of an agent's performance is determined not by the model or the architecture, but by the quality and consistency of the data it's operating on.
This isn't an abstract concern. In OpsFlow, facilities data comes from school districts that have been managing work orders manually for decades in some cases — spreadsheets, paper logs, third-party systems that exported poorly. When that data gets migrated in, it carries the inconsistencies with it. Building agents on top of it without a data normalization layer is like building a house on a foundation you haven't inspected. It might hold. It might not. You won't know until you're in production.
Our approach has been to treat data normalization as a prerequisite deployment step rather than an assumption. Before an agent-assisted workflow goes live in a new district, we run the data through validation rules and surface exceptions for manual resolution. It's not glamorous. It's not part of any vendor demo we've ever seen. But it's the difference between an agent that works reliably at month six and one that silently degrades after the first few weeks when edge cases start accumulating.
How to Think About Human-in-the-Loop Design
The phrase 'human in the loop' has become a disclaimer people attach to AI features to make them sound responsible without changing anything about how the feature actually works. We want to be more specific than that.
Human oversight in agent workflows should be designed at the decision level, not the workflow level. That means asking: for each specific decision this agent makes, what is the cost of a wrong answer, how often might it be wrong, and is there a natural review point before the consequences of that decision are irreversible? If the cost of a wrong answer is low and the review is easy, you can let the agent act and surface corrections reactively. If the cost is high or the action is hard to reverse, you need a confirmation gate before the action executes — not after.
In OpsFlow, when an agent suggests a work order classification, we show the classification with a confidence indicator and let the coordinator confirm or override with one click. The agent does the heavy lifting. The human retains the final call. That pattern has much better adoption than either extreme — fully automated (which makes operators nervous) or fully manual (which defeats the purpose). The key is that the confirmation gate adds maybe two seconds of friction, not twenty. If you design human review in a way that's cumbersome, operators will find ways to disable it or they'll stop using the feature.
- Map each agent decision to a cost-of-error and reversibility assessment before you build
- Design confirmation gates to be fast — a single click, not a form
- Show the agent's reasoning, not just its output, so reviewers can make a real judgment
- Build in correction pathways that feed back into the agent's context over time
- Never let an agent make irreversible financial or compliance decisions without a named human approving
The Organizational Change Problem Is Real
Here's something that doesn't show up in any technology discussion but has derailed more agent deployments than bad code: the people who currently do the work the agent is being asked to take over are still there, they have opinions, and they will find ways to route around a workflow they don't trust.
We've seen this directly. A facilities coordinator who has been triaging work orders manually for eight years doesn't naturally trust a system that makes those decisions for her. She'll override the agent. She'll double-check everything it does. And if she sees it make a mistake — even once — she'll lose confidence in the whole system and the overrides will become routine. At that point you have a system where the agent runs, the human re-does the work anyway, and the only thing you've accomplished is adding complexity.
The answer isn't better change management memos. It's designing the agent rollout so that early interactions are deliberately easy wins — cases where the agent's confidence is high, the decision is clear, and the human can see immediately that it got it right. Build trust the same way you'd build it with a new employee: start with the easy tasks, be transparent about the reasoning, and earn autonomy incrementally. Agents that get handed complex workflows on day one, without any track record, will not get adoption regardless of how technically impressive they are.
What We're Actually Building Toward
None of this means AI agents aren't worth building. They are. The efficiency gains in the right use cases are real, and they compound over time as the agent accumulates more context and the data quality improves. But the path to those gains runs through boring, unglamorous work: cleaning the data, designing the human review layer properly, starting with bounded low-risk tasks, and building trust with the operators who will use it every day.
In OpsFlow, our near-term roadmap is focused on agents that assist without replacing — triage support, anomaly detection, proactive scheduling suggestions, historical summarization for technicians. Not because we're being timid, but because those are the use cases where the value is real and the risk of failure is low enough to deploy confidently. The more autonomous workflows — multi-step procurement chains, fully automated scheduling, budget reconciliation — those will come, but only once the underlying data and trust infrastructure is ready to support them.
If you're building a vertical SaaS product and trying to figure out where agents fit, the question to ask isn't 'what could an agent do in our product?' It's 'what decisions does our user make repeatedly, where is the cost of error low, and where would taking that decision off their plate create meaningful time savings?' Start there. Build that. Make it reliable. Then expand. That's a less exciting pitch than the multi-step autonomous demo, but it's the one that actually ships and stays shipped.
The Test for Any Agent Feature Before You Ship It
Before we ship any agent-assisted feature in OpsFlow, we run it through three questions. We've found these cut through a lot of the noise around what's genuinely ready versus what's demo-ready.
- What does failure look like, and who gets hurt? If the answer is unclear or the blast radius is large, the feature isn't ready to act autonomously yet.
- Does this work on the worst data we've seen in production, not just the best? Run it against your most inconsistent client's dataset before you declare it production-ready.
- Would the operator trust it after watching it work for 30 days? Build for the skeptic, not the enthusiast. If the skeptic comes around, you've built something real.
Agents that pass those three questions ship. Agents that don't go back for more work. It's a simple filter, but it has saved us from more than a few features that would have looked great in a demo and caused real problems in a live school district.
The demo is not the product. The demo is a hypothesis. The only thing that matters is what happens when real people, with real messy data, rely on it every day. Build for that.

Paul Evans
Founder & Engineer, Phaseable
I've been building software for 20+ years. I founded Phaseable to build industry-defining vertical SaaS products and help founders with niche problems turn them into real businesses.
Keep Reading
How OpsFlow Went From a Conversation to a Live SaaS in 4 School Districts
It started with a relationship, a real pain point, and a problem no existing software solved well. Here's the full origin story.
Read MoreVertical SaaSHow to Find a Vertical SaaS Opportunity Worth Building
The best vertical SaaS products come from insiders who've lived the problem. Here's a framework for identifying the gaps worth solving.
Read More