When I started the ticket intake project, I assumed the hard problems would be model quality: would it categorize tickets well, would it write good summaries. That turned out to be the easy part.
The hard part was deciding what the AI was allowed to know. I ended up with one rule: the model has no data of its own. Every suggestion it makes traces back to something the MSP already has, their own tickets, their own knowledge base, their own client records.
That one rule answered most of the design questions before they came up. Can the AI resolve an issue on its own? Only if the resolution is already documented. Can it deduplicate tickets? Only against the client's own history. What happens when it isn't sure? It asks, because inventing an answer would mean using data it doesn't have.
I now start every AI feature conversation with the same question: what data is this allowed to touch, and who owns it? It sounds like a compliance question. It's actually a product question, because the answer decides what the feature can honestly promise.