> ## Documentation Index
> Fetch the complete documentation index at: https://docs.haloagents.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Ticket Types

> Give conversations a type such as Bug report or Refund, each with its own fields, set by a teammate, a routing rule or the AI agent.

## What ticket types are

A ticket type says what a conversation is about: **Bug report**, **Refund request**, **Feature idea**. Each type carries its own fields, so every conversation of that kind collects the same details: a severity, an order number, a due date.

A conversation has one type at most. Types are separate from [tags](https://docs.haloagents.ai/inbox/tags.md) (a conversation can have many) and from the conversation's **category** (customer or agent request), which stays as it is.

## Setting up types

Go to **Settings > Inboxes > Ticket types** (needs the **Edit settings** permission).

* **New type** creates a type with a name, an icon and a description. The description is shown to teammates and read by the AI agent when it picks a type, so say when the type applies.
* **Fields**: add as many as the type needs. Each field has a name, a kind and, for the select kinds, its options:

| Kind | Value |
| - | - |
| **Text** | Free text |
| **Number** | A number |
| **Date** | A calendar day |
| **Single select** | One of the field's options |
| **Multi select** | Any number of the field's options |
| **Yes / No** | A switch |

Mark a field **Required** to flag conversations that still miss it. A field's kind cannot change once the field exists; remove it and add a new one instead.

* The arrows reorder types; the order is the one teammates and the AI agent see.
* **Archive** keeps a type on the conversations that have it but stops offering it for new ones. **Restore** brings it back.
* **Delete** removes a type no conversation uses. A type still in use cannot be deleted; archive it.

Type names are unique; "bug report" and "Bug report" are the same type. Renaming a type updates the filters and rules that use it.

## Setting a conversation's type

Open a conversation. The type picker sits in the header next to the status. Pick a type, or **No type** to clear it.

Once a conversation has a type, the **Conversation** card in the details panel shows the type and its fields. Edit a field in place: click a text or number to type a value, pick a date, choose from a select, or flip the switch. Required fields without a value are marked with an asterisk.

Changing the type keeps the values of fields the new type also has (same key, still valid) and drops the rest. Setting and editing needs the **Reply** inbox permission.

## Types set automatically

* **Routing rules** can set a type with the **Set ticket type** action, and match on it with the **Ticket type is** condition or on one of its fields. See [Routing Rules](https://docs.haloagents.ai/settings/routing.md).
* **The AI agent** picks a type when it escalates a conversation or files a ticket, from the types you defined and their descriptions. With no types defined, nothing changes about escalation. The agent never overrides a type a teammate already set on an existing conversation.
* **Intercom import**: when an imported Intercom ticket has a ticket type whose name matches one of yours, the conversation gets that type, and Intercom attributes whose name matches a field's name or key become its values.

## Filtering by type

**Ticket type** is a field in every inbox filter: the filter bar, saved views, inbox entry filters and routing rule conditions. Each type's fields are offered too, named after the field and the type(s) that define it ("Severity (Bug report)").

| Condition | Matches conversations that |
| - | - |
| **Ticket type is** Bug report | have that type |
| **Ticket type is not** Bug report | have another type or none |
| **Ticket type is unknown** | have no type |
| **Severity (Bug report) is** High | have a type with a Severity field set to High |
| **Due date (Refund) is before** 2026-12-01 | have a Due date before that day |

A conversation without a value for a field never matches a positive condition on it, so "Severity is High" only finds conversations that actually carry a severity.

## Ticket types in Ask AI and MCP

* **Ask AI** can read the workspace's types and their fields (`ticket_types`, `ticket_type_fields`) in its data scripts.
* **MCP** clients can list types (`data_list_ticket_types`), see a ticket's type and field values (`data_get_ticket`, `data_search_tickets`, which also takes a `ticket_type` filter), set or clear a ticket's type and fill in its fields (`inbox_set_ticket_type`), and create a ticket with a type (`inbox_create_ticket`). See [Scopes & Permissions](https://docs.haloagents.ai/mcp/scopes-and-permissions.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.