Skip to content

Search and filter tickets

Last updated on

Your ticket list contains the tickets you created and the tickets other users added you to as a participant. To help you find the ticket you are looking for, we provide search and filter functions in the STACKIT Portal.

  • Organization vs. project: The search scope for tickets is determined by the organization or project you have selected. To extend the search beyond a single project, select an organization in the Resource Manager.
  • Personal vs. all tickets: By default, the search only returns tickets that you have created or are a participant of. If you have been granted the support.help-center.ticket.list permission, you’ll be able to see and use the All tickets tab to find all tickets in the selected project/organization.

Basic search is active by default and lets you search All fields at the same time (default) or filter for the values of a single field. Depending on which field you choose, the search bar switches to a suitable input type (e.g., text, date, or drop-down list). You can filter tickets by the following fields:

  • The name of the affected Product (text input)
  • The date and time the ticket was Resolved at (date input)
  • The email address of the Requester (text input)
  • The exact Request ID (text input)
  • The ticket Status (drop-down list)
  • A string that’s part of the Subject line (text input)
  • The ticket Type (drop-down list)
  • The date and time the ticket was Updated at (date input)

When basic search is not precise enough, switch to advanced search to build your own queries. Instead of filtering by a single field, you combine multiple conditions into one expression and let logical operators decide how they interact. This lets you answer questions like “show me all business-critical incidents with status New for STACKIT Postgres that were updated this week” in a single query.

A query is made up of one or more conditions. Each condition follows the same pattern:

<field> <operator> <value>

For example, status = "New" matches every ticket whose status is New. String and enum values must be wrapped in double quotes ("New"), while numeric and boolean values are written without quotes (1739198571213, true). You can then join multiple conditions with logical operators and control their precedence with parentheses.

Every condition starts with one of the following fields. The field determines which operators and value types are valid.

* The projectId field is only available when filtering tickets on the organization level. Read search scope for more details.

Operators define how a field is compared to a value. Comparison and range operators (<, >, <=, >=) are most useful for the timestamp fields, whereas equality operators work with every field type. The range operators can also be used with the id field.

  • = — equals (exact match)
  • != — does not equal
  • <, >, <=, >= — less than, greater than, and their inclusive variants
  • : — contains (substring match)

For most string fields, the two matching operators behave the way you would expect from a literal text comparison:

  • = matches the entire value exactly. productName = "STACKIT Secrets Manager" finds tickets for that product, but productName = "STACKIT" finds nothing, because no product is named exactly STACKIT.
  • : matches any substring of the value. productName : "STACKIT Secrets Manager" and productName : "STACKIT" both find tickets for STACKIT Secrets Manager, because each search term is contained in the product name.

Not every string field supports both operators. The id field only supports = (case-insensitive) and the range operators <, >, <=, >=. The projectId field only supports = as well (case-sensitive).

The subject field is a special case: Instead of comparing the literal text, it performs a word-based search. This is intentional, as it makes it easier to search for specific keywords within a subject line.

  • Use : for substring or partial matches. The words can appear anywhere in the subject and in any order, so subject : "data error" also matches a ticket titled “Error in database”.
  • Use = for exact word matches. Every word in the query must match a discrete word in the subject exactly (case-insensitive), but word order does not matter. For example, subject = "data error" matches “Error in data”, but does not match “Error in database” because “data” is not present as a distinct whole word.

The search engine ignores case, punctuation, and special characters (such as #, @, !, or %), as well as words of one or two characters.

Join conditions with the logical operators AND, OR, and NOT, and use parentheses () to group them. Grouping is important because it controls the order in which conditions are evaluated: everything inside the parentheses is resolved first, as in a mathematical expression.

The following query returns all tickets with status New that either concern the product Other or mention Timeout in their subject:

status = "New" AND (productName = "Other" OR subject : "Timeout")

Without the parentheses, the query would be interpreted differently, so group your conditions whenever you mix AND and OR.

Returning to the example from the introduction, “show me all business-critical incidents with status New for STACKIT Postgres that were updated this week” translates into a chain of AND conditions. The “this week” part becomes an updatedAt comparison against the epoch-millisecond timestamp of the start of the week (here, 1739198571213):

status = "New" AND businessCritical = true AND ticketType = "Incident" AND productName = "STACKIT Postgres" AND updatedAt >= 1739198571213