# AI & Governance

AI agents are first-class actors in the helpdesk — they triage tickets, draft replies, and (where you allow it) act on tickets autonomously. This article explains what the AI does and, most importantly, how you keep a human above the loop. Configuration lives in **Helpdesk Settings → AI governance**.

## The Guiding Principles

Three rules hold everywhere in the helpdesk:

1. **AI-vs-human is always explicit.** Every message and action records who (or what) produced it. AI replies are labeled as AI in the workspace, the portal, and email. The AI never impersonates a person.
2. **A human is always reachable.** Customers can press **Talk to a human** on any AI-handled ticket, and it escalates immediately.
3. **Humans stay above the loop.** AI acts only inside the envelope you define, and everything it does is logged.

## What the AI Does by Default

- **Triage** (on every new ticket) — a summary, sentiment, a suggested priority and type, missing-info questions, similar tickets, and relevant knowledge-base articles. These are **suggestions only**; they never change the ticket by themselves. Agents apply them with one click from the AI insights rail.
- **Draft with AI** — generates a suggested reply grounded in the conversation and your knowledge base. It lands in the composer for a human to review, edit, and send. Nothing is sent automatically from the composer.

Neither of these changes a ticket or contacts a customer on its own — so they're safe to leave on.

## Governed AI Actions

Beyond suggestions and drafts, an AI agent can *act* on a ticket — reply publicly, add a note, change status, solve it, set priority, assign a team, request info, send a follow-up, create a task, or update a CRM record. Every such action is classified by your policy into one of three buckets:

![AI governance flow: an AI-proposed action is checked against policy, then runs immediately, waits in the human approval queue, or escalates to a human — and every action is attributed and audited.](/help/assets/helpdesk/ai-governance.svg)

- **Allowed** — the AI performs it immediately (still logged and attributed as AI).
- **Needs approval** — the action is held in the **AI Approvals** queue for a human to approve or reject before it runs.
- **Forbidden** — the AI may not perform it; it escalates to a human instead.

An AI agent never sets **Pending customer** by itself. That status means someone asked the customer something, so a ticket moves to it only when a reply actually goes to the customer. When a customer answers and the ticket moves back to **Open**, the AI can add a note or a task, but it won't flip the ticket back to waiting.

### Configuring the policy

In **Helpdesk Settings → AI governance**, for each action choose Allowed / Needs approval / Forbidden. Then tune the guardrails:

- **Autonomous resolution master switch** — off routes would-be-allowed replies and solves to the approval queue, regardless of the per-action setting. A safe way to start.
- **Confidence threshold** — when the AI's confidence is below this, an otherwise-allowed action is downgraded to "needs approval."
- **Sensitive topics** — a list (e.g. `legal`, `billing_dispute`, `cancellation`, `security`, `medical`). If triage detects one of these on a ticket, AI actions on it always require approval, never auto-run.

A conservative, recommended starting point: allow **internal notes** and **request info**; require approval for **public replies**, **solve**, **priority**, and **assignment**; forbid everything else. Loosen as you build trust.

## When a Person Owns the Ticket

Assigning a ticket to a teammate does not switch the AI off. The AI keeps working the ticket and keeps the owner in the loop: each time it replies, asks the customer something, solves the ticket or sends a follow-up, the owner gets a **The AI acted on your ticket** alert. Internal notes and status, priority and team changes are on the ticket's thread and do not send an alert.

You decide how much room the AI has on a ticket someone owns, separately for each customer-facing action. In **Helpdesk Settings → AI governance**, under **When a person owns the ticket**, choose one of four modes for **Send public replies**, **Ask customer for info**, **Solve tickets**, **Send follow-up emails** and **Send follow-up SMS**:

| Mode | What happens | Who is told |
|---|---|---|
| **Act, and tell the owner** (default) | The action runs as your AI policy allows. | The owner, in the bell. |
| **Hold for the grace period** | The action waits for the **Grace period** (15 minutes unless you change it). The owner can send it now, edit it or dismiss it. If they do nothing, it goes out on its own when the period ends. | The owner, in the bell and by email. |
| **Wait for the owner** | The draft waits on the ticket until the owner sends, edits or dismisses it. Nothing goes out without them. | The owner, in the bell and by email. |
| **Stay quiet: the owner handles it** | The AI doesn't take the action at all while the owner handles the ticket. It still triages and can leave internal notes. | The thread says *AI stayed quiet — the owner is handling this ticket* each time. |

```mermaid
flowchart TD
    A[AI wants to reply on a ticket a person owns] --> P{AI policy}
    P -- Forbidden --> F[Escalates to a human]
    P -- Needs approval --> Q[AI Approvals queue · owner told]
    P -- Allowed --> M{Owner mode}
    M -- Act --> R[Sent · owner told]
    M -- Hold --> G[Held for the grace period · owner told]
    G -- owner sends or edits --> R
    G -- owner dismisses --> D[Not sent]
    G -- period ends --> R
    M -- Wait for the owner --> W[Waits on the ticket · owner told]
    M -- Stay quiet --> S[Not sent · thread says the AI stood back]
    W -- owner sends or edits --> R
    W -- owner dismisses --> D
```

A few rules hold whatever you choose:

- **Your AI policy still comes first.** A Forbidden action is still refused, and a Needs approval action still goes to **AI Approvals** for an approver, except under **Stay quiet**, where nothing is queued while the owner handles the ticket. The owner is told about it there too. A mode other than Act also stops earned autonomy (the panel at the end of the AI governance section, which lets an action the team keeps approving run on its own) from lifting a queued action on that ticket.
- **A held draft never goes out stale.** If the customer writes again before it is sent, the draft is cancelled and the AI answers the new message instead. This includes a draft waiting in **AI Approvals** under your policy. If a person replies first, a draft held for the owner is cancelled too, while one waiting in **AI Approvals** stays for the approver. A ticket solved, closed or merged during the grace period gets nothing.
- **Nothing is lost.** If a held action cannot be sent when the grace period ends, for example because the customer opted out of texts, it goes back to waiting for the owner with the reason shown.
- **The owner keeps the ticket.** While a ticket's own setting is anything but Act, a customer reply doesn't reroute it away from its owner under **When a customer says "I still need help"**: the thread says it was kept with them.
- **One ticket can differ.** On any ticket assigned to a person, **AI on this ticket** in the properties rail overrides the workspace setting for all five actions. The reply composer's **If they reply, the AI should** sets the same thing as you send: **Keep replying**, **Draft for me** or **I'll take it from here**. The change is written on the ticket's thread. AI agents cannot change it.
- **The AI asks "Did this solve it?" only when it answers.** A reply that answers the customer's question asks, and the ticket solves itself if they don't answer in your set days. A question for the customer, or a holding reply such as "we're looking into it", keeps the ticket open instead. Agents decide this per reply; see [Tickets](/help/helpdesk/tickets) for what a person's **Send & resolve** does.
- **The AI learns when an answer didn't land.** When an action that ran on earned autonomy is followed by the customer's **I still need help**, or by a reply the AI reads as "that didn't work" ("still broken", "I tried that"), it counts against that kind of action. Enough in a row and it goes back to needing approval. A follow-up question, new detail or a thank-you doesn't count. The thread says each time, with the customer's words.
- **The owner decides their own drafts.** The owner, or anyone who can manage AI approvals, can send, edit or dismiss a held draft from the ticket. A draft held by the AI policy stays with the approvers.
- **People working through the MCP connector are not held.** A call made through the connector is a person acting, not an agent deciding. The owner is still told.
- **Voice calls can't be held.** A voice agent answering on a live call can't wait for the owner, so what it was cleared to say is recorded on the ticket and the owner is told.

Every action starts on **Act, and tell the owner**, so the AI behaves exactly as before until you choose otherwise.

## The AI Approvals Queue

Open **Helpdesk → AI Approvals**. Each pending item shows the ticket, the action the AI wants to take, its reasoning, the confidence, and the exact content (e.g. the reply text). You can:

- **Approve & run** — the action executes immediately (attributed to the AI, with you recorded as the approver).
- **Reject** — the action is discarded.

Approvals expire automatically if left unhandled, so the queue stays current. Make reviewing it part of a lead's routine.

Drafts held for a ticket's owner also appear here, marked **Held for the ticket's owner**, with when a grace period ends. The owner normally decides those from the ticket, but an approver can decide them here too.

## Attribution & Audit

Every AI action is written to the audit trail and shown on the ticket timeline with its AI label. Because attribution is always explicit, your **Reports** can separate AI-touched from AI-resolved tickets and track how often AI actions are approved versus rejected — so you can see exactly where the AI is earning trust and where it isn't.
