Skip to main content
The Console ticketing module lives under Operations → Ticketing in the project sidebar. You manage workflows and forms, then run day-to-day work on the Board kanban. Ticketing is always available in the nav for project members; the API still enforces permissions (see Permissions).

Board

Kanban by workflow state, create tickets, drag to transition.

Workflows

YAML editor, graph preview, validate, save versions, activate.

Forms

Catalog of form definitions with YAML and live schema preview.

API & automation

Same resources over HTTP when you outgrow the UI.
Opening Ticketing without a child path redirects to Board. The board URL can include ?wf={workflow_def_id} to select which active workflow to show.

Permissions

The Console does not hide ticketing pages by role. Failed actions return API errors instead. Saving workflows and forms and activating workflows require manage workflows. If Save or Activate fails with forbidden, ask a project admin to grant that permission.
Assignment in the UI uses user tags at create time (see the Assign users step under Step-by-step workflows). The separate assign/unassign HTTP routes are documented on Assignment and notifications and are not wired into the ticket detail view today.

Board

The board shows tickets for the active version of the workflow selected in the header (or the first active workflow if none is selected). Columns match workflow label keys in graph order; each column header shows the formatted label name and ticket count.

Header and workflow scope

There is no separate assignee or tag filter on the board. Scoping is by active workflow only (?wf= query parameter).

Empty board

If no workflow is active, you see No active workflow yet. with Create workflow and Open workflows.

Ticket cards

Click a card to open Ticket detail. Each card shows:
  • State icon and formatted state label
  • Title (two lines max)
  • Up to five tag badges (with +N if more)
  • Classification badge when due-date rules apply
  • Due date (urgency coloring) or created date
The avatar on the card reflects created_by (tooltip Unassigned when empty), not formal API assignment.

Move a ticket on the board

Drag a card to another column when a transition exists from the current label to the target label key.
  • Reordering within the same column updates the view only (not persisted).
  • Invalid moves show a toast: No transition {from} → {to}.
  • If the workflow requires a form before that transition, a Form required to move dialog appears with the form name/version, fields, Cancel, and Move.
Tickets whose state does not match any column appear under Unknown.

Create ticket

Click New ticket on the board (or Add sub-ticket from ticket detail). Create stays disabled until title is set, required tag kinds are satisfied, and any required form validates. Sub-tickets use the same fields in a Create sub-ticket dialog; the parent link is stored in metadata.parent_ticket_id.
The server’s rule that blocks closing a parent with open sub-tickets checks subticket tags on the parent, not metadata.parent_ticket_id. Sub-tickets linked only through the Console do not block the parent from closing. To enforce the rule, add a subticket tag (value = child ticket ID) to the parent through the API.

Ticket detail

The full-screen Ticket detail modal (header Ticket notebook / Ticket detail) opens from a board card.

Edit title and description

Click the large title or description; edit inline. Changes save on blur via patch.

Read-only properties

Metadata renders below when present (internal keys such as images and parent id are handled in dedicated sections).

Transitions

In the right column, Transitions lists outgoing states. Each row shows the target label and Go. If a before_transition form is required, Transition form opens (Target: …, Cancel, Apply transition). You can also transition by dragging on the board.

Comments and tags

Comments includes Type @ to tag. In the composer (Add a comment…), type @ to open Tagging for @ with groups Devices, Fleets, Users, Labels, Gateways, Custom text. Choosing an entry adds a tag and inserts @[title] in the text. Mention chips can be removed; persisted tags also appear under Properties.
Only the tags are saved. The comment text itself is not stored on the ticket.

Images and sub-tickets

Parent ticket: link at top when viewing a sub-ticket.

Delete

Delete ticket asks Delete this ticket permanently? then removes the ticket.

Workflows

List (Workflows page)

  • New workflow → editor for a new definition
  • Each row: name, version (v{n}), Active or Draft badge
  • Board shortcut when a definition has an active version
  • Pagination: Page of ( workflows)

Create and edit

Open New workflow or a row to edit. Breadcrumb: Workflows → . Editor toolbar: Parse errors show inline under the toolbar. Activate without saving first shows Save first, then activate this version.
The Console does not expose Delete for workflow definitions. Use the API if you need to remove a workflow.
See Workflows for YAML structure and Forms for linking require_form entries.

Forms

Forms splits the page into a catalog and editor.

Catalog (Catalog forms)

  • Lists each form name and v
  • Click a row to load it in the editor
  • New form clears selection for a blank definition

Editor

Invalid YAML shows errors such as YAML must define name + schema.

Step-by-step workflows

1

Create a workflow

  1. Go to Ticketing → Workflows and click New workflow.
  2. Edit YAML on the YAML tab (or inspect Graph).
  3. Click Validate until you see YAML OK.
  4. Click Save. You are redirected to the new workflow definition.
2

Activate a workflow

  1. Open the workflow you saved (status Not active yet or Draft on the list).
  2. Confirm the version in Version if you have more than one.
  3. Click Activate and confirm the dialog.
  4. Open Board from the list or sidebar; the board uses active workflows only.
3

Create a ticket

  1. On Board, pick the workflow via Workflows if needed.
  2. Click New ticket.
  3. Fill Title, optional Description and Due date, required tag kinds, optional Assign users and Initial tags, and any required form.
  4. Click Create.
4

Move a ticket

  1. Drag the card to a column that matches an allowed transition, or open Ticket detail and use Transitions → Go.
  2. Complete Form required to move or Transition form if prompted.
  3. Confirm the card appears in the new column.
5

Assign users

  1. When creating a ticket, expand Assign users and select one or more members (checkbox list, (Me) on your row).
  2. Click Create. Users are stored as user tags on the ticket.
  3. To add more people later, use Comments @ user tagging or entity search (adds tags via the API).
6

Add a sub-ticket

  1. Open the parent Ticket detail.
  2. Under Sub-tickets, click Add sub-ticket.
  3. Complete Create sub-ticket and click Create.
  4. Open sub-tickets from the list; use Unlink from parent to detach.
7

Create a form

  1. Go to Ticketing → Forms and click New form.
  2. Edit YAML (name, schema, optional bindings).
  3. Check Schema preview.
  4. Click Create form.
  5. Reference the form name (and version if needed) in workflow validation — see Forms.