Every ticket, smarter —
AI you can actually govern
Agent Assist on every ticket, a LangGraph-routed chatbot, an admin-editable workflow builder, and a governance layer that logs, caps and rates every LLM call. Bring your own LLM, run it air-gapped, and see who asked the AI to do what on every ticket timeline.
Five actions on every ticket
One panel, four ticket types (Incidents · Problems · Changes · Service Requests). Streaming for every action so text starts appearing on the first token.
Summarise
Compress long ticket threads to bullet points — reporter's context in ten seconds, without scrolling three months of comments.
Draft reply
Customer-facing reply in the right tone and language. Analyst edits before sending — the AI writes the first paragraph, not the whole message.
Suggest resolution
RAG search across your closed-ticket history. Surfaces similar tickets that were solved, with the fix inline so the analyst doesn't rediscover it.
Generate KB
Turn a resolved ticket into a draft knowledge article: title, problem, resolution, prevention. One click to publish as a new KB entry.
Translate
EN ↔ 中文 on the reply pane. Localises the whole thread so an analyst can work in their own language regardless of what the customer wrote.
AI where the manual work still hides
Change management, approvals, contact-centre replies, notification digest.
Change risk scoring
Every change gets a risk score from impact + urgency + rollback difficulty + historical similarity. The CAB sees the score before the ticket opens.
Approval assistant
For each pending approval, a one-line summary of what's being asked plus similar past approvals from the same requester — so the approver decides in seconds, not minutes.
Contact-centre reply suggestions
In the multi-channel chat surface, AI proposes replies as the customer types. Plus a daily AI summary of unread notifications so nothing important gets missed.
Deterministic where it matters, streaming where it doesn't
LangGraph chatbot
Nine intent classes, deterministic routing, RAG-grounded answers from your KB. When the graph decides a ticket needs a state change, it happens — with an AI comment on the ticket so the audit trail is clear.
AI workflow builder
Visual React Flow canvas + a JSON view for the source-driven. Nine node types (LLM call, tool call, RAG search, condition, notification, HTTP call, sub-workflow, wait, terminate), template library, version management, browsable run history.
Streaming · caching · fallback
SSE streams draft output token-by-token. Response cache keyed on the target object's updated-at — the same summary requested twice on an unchanged ticket returns instantly. Primary LLM outage? Auto-retry on the configured fallback model.
Every AI call is auditable, budgeted, and rated
The Usage Panel logs every AI call by user, kind, model, tokens, and cost — filterable, exportable. Per-role cost caps stop runaway spend. Per-response 👍/👎 rating feeds a quality dashboard that shows which tools your team actually trusts. Every AI-triggered ticket change writes a visible comment attributing the action, so the timeline reads: "Jane asked AI to draft a reply → sent." Not a mystery.
Fits the way you already run IT
Role-scoped tool permissions
Which roles can invoke which AI tools is admin-configurable. Roll AI out to Level-2 first; open it to Level-1 once you're happy with the drafts. Sensible defaults ship out of the box.
Tunable prompt library
Every prompt lives in the DB and is admin-editable — no redeploy to tune output. If the DB row is missing, the platform falls back to bundled defaults, so the AI keeps working while you experiment.
EN + 中文
Every AI entry point speaks EN + 中文. Prompts carry a langHint variable, workflows initialize with ${lang} / ${langHint} — output stays in the right language even when the caller doesn't specify.
Two AI endpoints + workflow runs
POST /api/ai-assist for structured JSON output when you need to programmatically consume it. POST /api/ai-assist/stream for SSE-streamed drafts you can render token-by-token in your own UI. Plus workflow-run APIs so admin-controlled AI graphs can be triggered from webhooks, cron, or ticket state changes. All auth-gated, all logged in the Usage Panel.
Common questions
Which LLMs do you support?
Any OpenAI-compatible endpoint. OpenAI, Anthropic (via a Messages adapter), DeepSeek, and any local llama-cpp / Ollama / vLLM installation. Two env vars (LLM_BASE_URL, LLM_API_KEY) flip you between them. Fallback model configurable separately.
Does the AI ever touch data outside my tenant?
No. Every AI call is scoped to the tenant of the ticket, user or KB article that triggered it. In X-MSP's multi-tenant mode this is enforced at the RAG query layer — cross-tenant search is physically impossible.
What happens when the primary LLM has an outage?
Auto-retry on the fallback model you set in the admin. If mid-stream, the request completes on the primary; the fallback picks up new requests. The Usage Panel logs which model handled which call.
Can I turn off AI for some roles?
Yes. Role-scoped tool permissions are first-class — you decide which roles can use which tools. Typical rollout: Level-2 first, then Level-1 after two weeks of watching the draft quality.
Can I edit the AI's prompts?
Yes. The prompt library lives in the DB and is editable in /admin/prompts (no redeploy). If a row is missing, the platform falls back to bundled defaults so the AI keeps working while you experiment.
What's the cost story?
Per-role cost caps let you set a monthly ceiling per team. The Usage Panel shows spend by user, model, kind of call, and ticket. Response caching keys on the target object's updated-at — repeated summaries on unchanged tickets return from cache at zero cost.
Ready to plug X-ITSM AI into your workflow?
Talk to us for a scoped 90-day pilot. We help you connect your LLM, instrument your first three use cases, and measure the deflection + MTTR impact.
