# Working Tickets

This is the day-to-day guide for support staff. It covers the ticket queue, the ticket workspace, replying, moving tickets through their lifecycle, and using the AI assist tools.

Open **Helpdesk → Tickets** to start.

## The Ticket Queue

The queue is your list of tickets. It uses the same saved-view tools as the rest of the CRM:

- **Views** — a rail on the left (a row of chips on a phone), each with a live count: **All open** (the default), **Needs reply** (the customer is waiting: no reply yet, or they wrote after the last one), **Mine** (assigned to you), **Unassigned** (the triage pile), **Awaiting approval** (an AI action is waiting for a person), **AI is handling** (shown once an AI agent holds a ticket), **Overdue promises**, and **Done** (solved and closed). Solved and closed tickets stay out of every view but Done, so the queue answers "what needs me now". The counts describe the whole queue; filters and search narrow the table only.
- **Filters, sort, and columns** — build a view by any field (status, priority, channel, SLA due date, tag, and more), then **save it** for reuse. A saved view's own status conditions replace the default **All open**.
- **Search** — free-text across subject and description.
- **Keyboard** — **J** and **K** move a highlight down and up the rows, **Enter** opens the highlighted ticket, **Escape** clears it.

Each row shows the ticket number, the subject with the requester and a **channel icon** (hover it for the name), status, priority as **signal bars** (one for Low up to four for Urgent; amber for High, red for Urgent), an **SLA chip** with a thin progress bar under it, the assignee as an avatar (a spark for an AI agent, a dashed ring for nobody), and timestamps. Click a row to open the ticket.

### Reading the SLA Chip

- **Green "Xh left"** — on track, plenty of time
- **Amber** — approaching the due time (at risk)
- **"SLA breached"** — a target was missed
- **"SLA paused"** — the clock is stopped because the ticket is waiting on the customer

The bar under the chip shows how much of the current window has gone: green while there is time, amber past 80%, red and full once breached, grey while paused. The window runs from the ticket's creation to the current target (first reply until the first reply goes out, then resolution).

## The Ticket Workspace

Opening a ticket shows the conversation in the center and a context rail on the right.

### The Conversation Thread

Every entry is clearly attributed:

- **Customer** messages — what the requester sent
- **Agent** messages — replies from your team
- **AI** messages — replies written by an AI agent, always labeled
- **Internal notes** — staff-only, shown with a lock and never visible to the customer
- **System events** — status changes, assignments, merges (shown as thin timeline dividers)
- **AI actions** — one violet line each, with a spark icon: what the AI did, why it was allowed to (*allowed by your AI policy*, *earned autonomy*, *after the grace period*, *approved by Maya*) and a **Why** link to its reasoning. When the AI acts on its own after earning it, its "acted on its own" note and the change it made show as one line.

### The Composer

At the bottom, choose a tab before you write:

- **Reply** — goes to the customer. Above the text box, **Goes to** shows where it will land. Click **Email** or **Text** to tick or untick it for this reply:
  - **Portal** — always, because every reply is saved on the ticket. If the customer has no portal account yet, the chip is amber; they see the reply once you invite them.
  - **Email** — ticked unless the customer chose portal-only updates for this ticket, turned reply emails off in their portal profile, or has no email address on file. Then it is struck through, and hovering it says why. Amber means the last email to that address bounced: the reply is still sent, but may not arrive.
  - **Text** — sends the reply as a text from your helpdesk SMS agent's number. It is struck through, with the reason, when the customer opted out of texts (STOP), is marked do not contact, or has no mobile number. It appears only when your helpdesk has an SMS agent, or on a ticket that came in by text.
- **Internal note** — staff-only; use it for context, hand-offs, and decisions. Type **@** to notify a teammate.

Which channels start ticked is set in **Helpdesk Settings → Replying by text**. Under the chips, a line explains anything that changes where a reply goes, and what to do about it — for example "No email on file — replies only appear in the portal. Add an email on the contact, or invite them to the portal." **Cc** is turned off while the reply isn't emailed; the ticket keeps its saved Cc list for when it is.

Then type and send:

| Keys | What it does |
|---|---|
| **⌘↵** (Mac) or **Ctrl+Enter** | Sends — the same as **Send & keep open**, **Send reply** or **Add note** |
| **⌘⇧↵** (Mac) or **Ctrl+Shift+Enter** | Sends and resolves — the same as **Send & resolve** |

On a note, or on a ticket that is already solved, both shortcuts just send. **Draft with AI** (see below) can write a first draft for you.

### After you send

Above the send buttons, the **After you send** line says what happens next. It starts from your workspace settings, so most replies need no click.

- **If they don't reply.** **Send & keep open** waits for the customer: nothing is asked and nothing closes on its own. **Send & resolve** either *asks "Did this solve it?"* (the default) or *solves it now*:
  - **Asks "Did this solve it?"** — the customer gets **Yes, resolved** / **I still need help** in the portal, and in the email unless they chose portal-only updates. The ticket waits for them and solves itself after the number of days set in **Helpdesk Settings → CSAT & auto-close**. Change the days on this reply if this one needs longer. If the ticket still owes the customer a promise, the line warns you: an ask that runs out solves the ticket with the promise still open.
  - **Solves it now** — marks the ticket solved as you send, with the solved notice and the satisfaction link. If the ticket still owes the customer a promise, you're asked what to do about it first.
- **If they reply, the AI should:** **Keep replying**, **Draft for me** (its reply waits for you to send, edit or dismiss), or **I'll take it from here** (the AI takes no customer-facing action; it still triages, and the thread says each time it stood back). This is the same setting as **AI on this ticket** in the properties rail, and starts from it. On a ticket nobody owns, choosing **Draft for me** or **I'll take it from here** assigns the ticket to you. On a ticket a teammate owns, the choices read **Draft for** and **Leave it to** them.

The thread records what each reply did: *Asked the customer "Did this solve it?" — solves itself after 3 days without an answer*, or *The earlier "Did this solve it?" was withdrawn* when a later reply keeps the ticket open.

### Replying by text

With **Text** ticked, the line under **Goes to** counts how many texts the reply makes. A reply longer than 1,600 characters can't be texted: shorten it, or untick **Text**. Attachments aren't texted; they stay on the ticket and go with the email.

- **Quiet hours.** Inside your quiet hours (set in **Helpdesk Settings → Replying by text**, 9:00 pm to 8:00 am by default), the composer either warns you before the text goes, holds the text until quiet hours end (email and the portal go straight away), or does nothing, depending on the setting.
- **Under the reply,** the thread says what became of the text: *Texted to …*, *Text held for quiet hours — goes …*, *Not texted: …* with the reason, or *Text failed: …*.
- **The SMS agent steps back.** Your first text pauses the helpdesk SMS agent for that customer while the ticket is open: the thread says *SMS agent paused for this customer — Sam Lee (sam@example.com) is handling it by text*, the name first and the sign-in email beside it in small type (two teammates can share a name), and the customer's texts land on the ticket as their replies instead of being answered by the agent. The AI helpdesk agent doesn't reply over you either. The pause ends when the ticket is solved, or when someone clicks **Hand back to the SMS agent** in the ticket's **Customer** section.
- **Google Local Services leads.** While a customer's Google lead is live, a text goes through Google's conversation, where they first wrote. Once the lead ends, texts go to the mobile number on the customer's contact record — which is why the SMS agent asks a Google lead, once, for a number or email to reach them on later. A Google tracking number is never texted.

### The Context Rail

- **AI activity** — at the top of the right column (in the **AI** tab on a phone), whenever the AI has proposed, held or done anything on this ticket. Each item has a heading that says where it stands, and one thing to do:
  - **Needs approval** — your AI policy holds it for an approver. A field change (status, priority, team, person) can be approved right here with **Approve**, or turned down with **Decline**. Anyone without the approvals permission sees who decides.
  - **Held for the owner** — the ticket's owner chose to see it first. **Review** scrolls to the held draft in the conversation, where it can be sent, edited or dismissed.
  - **Did on its own** — the AI did it without anyone approving it at the time. The item says on what basis, and **Owner:** says who was alerted. **Show in thread** jumps to what it wrote.
  - **Approved by …** — a person approved it. **Done through MCP** — a person did it through the MCP connector. **Didn't go through** — it was allowed but failed, with the reason.
  - Dismissed, expired and cancelled items collapse under **Earlier**.
- **Properties** — change status, priority, type, portal visibility, and assignee inline
- **Requester** — the customer's contact record and company (click through to the CRM)
- **Reach**, in the **Customer** section — how the customer can be reached by email, text, phone and the portal, each with a word for its state (**Reachable**, **Check**, **Blocked**, **Not on file**) and the reason. A dot next to email means they opted out of marketing email; ticket replies still go.
- **AI insights** — the triage summary and suggestions (see below)
- **Origin** — links back to the chat, call, or email the ticket came from
- **Tags** and **linked tickets**

## The Status Lifecycle

![Ticket status lifecycle: New, Open, Pending (customer or internal), Escalated, Solved, and Closed — with a customer reply reopening a solved ticket.](/help/assets/helpdesk/ticket-lifecycle.svg)

Move a ticket through its states from the **Status** control:

| Status | Meaning |
|---|---|
| **New** | Created, not yet picked up |
| **Open** | Someone is actively working it |
| **Pending customer** | Waiting on the customer (SLA clock pauses) |
| **Pending internal** | Waiting on another team, vendor, or approval |
| **Escalated** | Handed to a senior/specialist, or the customer asked for a human |
| **Solved** | Resolution provided; the customer is invited to rate it |
| **Closed** | Finalized (happens automatically a set number of days after Solved) |

Some transitions happen for you: a staff public reply moves a ticket to **Pending customer**; a customer reply on a **Solved** ticket **reopens** it. A **Closed** ticket can only be reopened, not edited.

## Assigning

Use the **Assignee** picker in the Properties rail, or the **Assign** action, to give a ticket to yourself or a teammate. Assigning a new ticket moves it to **Open** and sends the assignee an in-app notification. Tickets can also be routed to a **team** and auto-assigned — see **Teams & Routing**.

### When you own a ticket

The AI keeps working tickets you own and tells you what it does. You get an alert when it replies, asks the customer something, solves the ticket or sends a follow-up.

If your workspace holds those actions for the owner, the draft appears on the ticket below the conversation. It says what happens next: *Goes out in 12 min unless the owner sends, edits or dismisses it*, or *Waiting for the owner*. Use **Send now** (or **Solve now**), **Edit** then **Send edited**, or **Dismiss**. If the customer writes again or you reply first, the held draft is cancelled for you.

To change how the AI behaves on one ticket, use **AI on this ticket** in the properties rail, under **Assignee**, or **If they reply, the AI should** as you send a reply. **Workspace setting** follows **Helpdesk Settings → AI governance**. See [AI & Governance](/help/helpdesk/ai-and-governance) for what each mode does.

## Priority and Type

- **Priority** — Low, Normal, High, Urgent. Changing priority recomputes the SLA targets from now.
- **Type** — Question, Incident, Problem, Task, Feature request, Billing, Bug. Type can drive routing and reporting.

## Merging and Linking

- **Merge** a duplicate into the ticket you want to keep — the source is closed and pointed at the target, and both threads record it.
- **Link** related tickets so they reference each other without merging.

## AI Assist

- **AI insights** (context rail) — on every new ticket, AI triage adds a summary, detected sentiment, a suggested priority and type (with one-click **Apply**), missing-info questions, similar tickets, and relevant knowledge-base articles. Click **Re-run triage** any time.
- **Draft with AI** (composer) — generates a suggested public reply grounded in the thread and the suggested articles. It always lands in the composer for you to review and edit before sending — the AI never sends on its own from here.

See **AI & Governance** for how autonomous AI actions are controlled.

## Creating Related Work

Use **Create task** on a ticket to spin off follow-up work (e.g. "call the customer back Thursday"). The task is linked to the ticket so the connection is never lost.
