Searching through RT requires some knowledge of how RT does queries. This vignette provides a basic introduction to RT’s query syntax and some examples of how to make queries with this package. Best Practical’s Query Builder documentation and Ticket SQL wiki page highlight some of the key aspects of query-building and are useful to reference while learning.

Writing a query

The rt_ticket_search function makes it easy to search through your tickets. These are the fields that it will return by default, and that you can use to search with:

There are additional queryable fields such as FileName, ContentType, and Content, Requestor.Name that you can explore in the Query Builder (Search –> Tickets –> New Search).

These fields are some of the most commonly queried:

  • id - the ticket #
  • Subject - the subject of the ticket
  • Owner - the current owner of the ticket
  • Queue - the queue(s) you want to search through
  • Content - the text content of your RT tickets (email correspondence, comments, etc.); note: unless the full-text indexing feature is enabled, you will only be able to search through the metadata of your tickets
  • FileName - the name of an attached file

To build a query, you’ll want to use the following vocabulary:

  • AND or OR to join multiple query conditions together
  • = to specify that a field is or is equal to something
  • != to specify that a field is not or is not equal to something
  • < or > to specify that a field less than (before) or greater than (after) something
  • LIKE to specify that a field matches something
  • NOT LIKE to specify that a field doesn't match something

Example queries

To search for all tickets in the “General” queue, we’d run the following:

result <- rt_ticket_search("Queue = 'General'")

Note that, by default, rt_ticket_search returns a data.frame or tibble (if installed).

You can search against multiple fields using AND or OR to combine them.

rt_ticket_search("Queue = 'General' AND Subject LIKE 'test'")

Use parentheses to group query parameters together for more advanced logic.

rt_ticket_search("(Status = 'new' OR Status = 'open') AND Queue = 'General'")

For numeric and date/time fields, you can use >, >=, <, and <= in addition to =.

rt_ticket_search("Started > '2018-04-04'")

You can also use special date syntax for more options.

rt_ticket_search("Created >= '2 days ago'")

One of the most common use-cases is searching through RT ticket content. Note that this will only work if your RT installation has full text indexing turned on.

result <- rt_ticket_search("Content LIKE 'Can you please advise'")