Skip to main content
Beyond the built-in ticket types — Request, Incident, Major Incident, Change, and Problem — Serval lets each team define its own custom ticket types. A custom type bundles its own lifecycle, status transitions, entry workflows, and custom fields, so you can model a process that doesn’t fit the standard types.

What Is a Custom Ticket Type?

A custom ticket type is a ticket type you author for your team’s specific needs — for example, Legal Intake, Onboarding, Access Review, or Facilities Request. Each custom type is fully self-contained:
  • Its own lifecycle — the statuses a ticket moves through from creation to closure
  • Its own transition rules — which status can move to which, with optional conditions
  • Its own entry workflows — automations that run when a ticket enters a status
  • Its own custom fields — the information captured on tickets of that type
Custom types use the same underlying model as change models, so everything you can configure on a change model — lifecycle, transitions, automations, and fields — is available on a custom type.
Reach for a custom type when a process needs its own distinct lifecycle and fields. If you only need different statuses or SLAs on an existing type, configure those directly instead — see Statuses and SLAs.

Creating a Custom Type

Custom types are configured in Team Settings → Ticket Types, in the Custom Types group of the left sidebar.
1

Open Ticket Types settings

Go to Team Settings → Ticket Types. In the sidebar, find the Custom Types group.
2

Create the type

Click Create custom type. Give it a name (for example, “Legal Intake”) and an identifier. The identifier is derived from the name and used to reference the type.
3

Configure the lifecycle

In the editor, define the statuses the type moves through, which status is the starting point, and the order they appear in.
4

Add transitions and workflows

Set which statuses can transition to which, add any conditions that must be met to advance, and attach entry workflows that run when a ticket enters a status.
5

Add custom fields

Configure the custom fields captured on tickets of this type.
6

Publish

A new custom type starts as a draft. When it is ready, publish it to make it available for creating tickets.
Creating and editing custom types requires the permission to manage ticket models, so this is typically limited to team managers and administrators.

Draft, Published, and Deprecated

Custom types move through a lifecycle of their own, so you can build and retire them without disrupting existing tickets. Publish a type when it’s ready, and deprecate it when you no longer want new tickets created with it. Deprecating is the safe way to retire a type that already has tickets — nothing is lost.

Configuring a Custom Type

Everything about a custom type is configured in its editor under Team Settings → Ticket Types.

Lifecycle and Statuses

Each custom type has its own set of statuses and a designated starting status. When a ticket of that type is created, it begins at the starting status. You can manage the pool of statuses available to custom types from Team Settings → Statuses, under the Custom tab.

Transition Rules

Transitions control how a ticket moves between statuses. Each transition can carry a condition that must be satisfied before the ticket can advance — for example, requiring certain fields to be filled. See Statuses for more on building status flows.

Entry Workflows

Attach a workflow to a status so it runs automatically when a ticket enters that status — for example, to request an approval, send a notification, or run a validation check.

Custom Fields

Each custom type has its own custom fields, tailored to the information that type of ticket needs to capture. See Custom Fields.

Working with Custom-Typed Tickets

Creating a ticket — Published custom types appear directly in the ticket type selector of the Create Ticket dialog. Selecting one starts the ticket at that type’s initial status and shows its custom fields. Filtering — Custom types appear in the ticket filters so you can slice ticket lists and views by type. Deprecated types stay filterable so their existing tickets remain reachable. On the ticket — A custom-typed ticket displays its type name wherever tickets are listed or opened, so it’s always clear which type a ticket belongs to.

Deleting vs. Deprecating

  • Delete a custom type only when no tickets use it. Deleting removes the type along with its lifecycle, transitions, and entry workflows. A draft that was never used can be safely deleted.
  • Deprecate a type that already has tickets. Deprecating stops new tickets while keeping existing ones intact and filterable.
If you try to delete a type that still has tickets, Serval blocks the deletion and points you to deprecate it instead.