Welcome to Request Tracker (RT), your new favorite ticketing system. This introduction explains what ticketing is and what RT is. If you're already familiar with RT, you can skip ahead.
In some contexts, when people think about a "ticket," they're talking about a code on their phone or a physical piece of paper that gets them into an event or on an airplane for a flight. The RT type of ticketing is a way for organizations to keep track of their to-do lists, who is working on which tasks, what's already been done, and when tasks were completed. You will also hear the phrase "trouble ticketing" bandied about, though there does not have to be a problem for ticketing to be useful. "Issue tracking" is another common phrase used for general ticketing.
Ticketing can make life easier for many people and departments in an organization -- basically anyone who needs to keep track of a list of tasks. And it can be used with a variety of tasks, like fixing software bugs, answering customer service requests, or tracking security issues.
Tickets can be a simple record of work done, like "Applied software patches on server," or detailed records with many custom fields and a long history. How you use tickets in RT will depend on your use case and can differ from queue to queue. Whatever your approach, it's good to communicate with users so everyone understand why and how they should interact with the system.
RT is a ticketing system for all sizes of organizations. It is available under the terms of the GNU General Public License (GPL), so it doesn't cost anything to set up and use. We'll get into the technical features later, but for now, let's look at how RT might work:
- Billy has a problem with his Bananamaster 3000, so he sends email to firstname.lastname@example.org
- RT records the new issue in its database and sends Billy an electronic "ticket stub" containing the new ticket's ID number and, ideally, some helpful information. He can refer to the ticket stub if he needs to send another email later.
- RT forwards Billy's email to a set of staff members.
- One of the staff members, Jane, is the company's Bananamaster expert. So Jane takes over Billy's issue and drafts a reply to Billy, which RT automatically records and forwards to him.
- Billy is a happy customer; Jane resolves the issue and heads down to the pub for a pint.
This workflow is flexible, can be customized for your organization, and need not involve bananas.
There are some words and phrases you should understand in the context of RT before you begin. See RTGlossary for more definitions.
A Ticket is the central object in RT, the thing that needs to get done. Tickets have metadata attached to them such as an owner, status, and queue - we'll get to all that in a minute.
A Queue is the central administrative domain of RT; it keeps things organized. As the name implies, it's a line of tickets waiting to be worked on, but it's also, to some extent, the ticket's category. For instance, you might have the right to create, delete, and comment on tickets in the Foo queue, but only the right to comment on tickets in the Bar queue.
A ticket's history is what it sounds like: everything that's happened to a ticket. Facets of ticket history could include when the ticket was created, how it has changed, and any comments about it or replies to it. Like real history, ticket history typically is not changed. However, new laws related to user privacy like GDPR in the EU require some organizations to evaluate their auditing policies and decide how to handle requests to remove personal user data. This can require ticket data to be modified or removed completely.
Ticket updates can take one of two forms. A reply is a public remark that a requestor can see. A comment is a private note for staff not visible to the requestor. This is useful when you want to be tactful but still convey important information, like, "This requestor is an investor, so be nice" or "This user's request mentioned his 'PC' but he really has a Mac."
Priority, how important a ticket is, is represented as numerical scale from 0-99, with 99 being the highest priority. By setting a final priority, you can make a ticket's priority increase or decrease as its due date draws closer. The difference between 20, 50, and 75 may vary from organization to organization, but there should be an organizational policy or every ticket will get rated 99 by anxious users. ManualAdministration contains a useful model for setting organizational policy for priority. You can also install the PriorityAsString extension to manage priority with terms like "high" and "low".
The status drop-down menu offers several choices for classifying each ticket. Here's what they mean:
- new: the ticket has just been created and hasn't been touched yet.
- open: the ticket is getting worked on
- stalled: due to circumstances beyond your control (waiting for the requestor to respond, waiting for the owner to return from Sri Lanka), the ticket isn't getting worked on right now. It will open again when someone adds a comment or reply.
- resolved: hooray! Work on the ticket has been completed and is out of everyone's hair.
- rejected: the ticket is not the staff's problem and is not going to be resolved, but is, for some reason, worth recording in the system. For instance, if an employee asks approval for something ridiculous, you can reject the ticket, but it will stay in the database as evidence that the employee makes silly requests.
- deleted: the ticket never should have been in the system (maybe it was spam, a list of passwords, etc) -- and is now being zapped for good.
A watcher is someone who is interested in a ticket. You'll find these filed under "People" when you're looking at a ticket. A watcher of a ticket normally gets email-copies of all the replies to the ticket. The watchers who are staff-members get copies of the comments too. There are several types, or roles, of watchers:
- Owner: the person responsible for the ticket and its resolution. Each ticket can have only one owner. As a ticket is worked on, it may be passed from one owner to another.
- Requestor: the person or people who asked for something to get done; the ticket's reason for being. The Requestor normally gets copies of all replies to the ticket, but no comments.
- Cc: someone (or someones) who should get copies of any replies that go to the requestor. This might be the requestor's boss, sales rep, etc. This person will see the emails but doesn't necessarily have the right to work on the ticket.
- AdminCc: a Cc or Ccs that also gets copies of comments and generally are allowed to work on the ticket.
We're hedging with words like "generally" and "necessarily" because any role can be assigned any right.
You can also, as you work on a ticket, define its relationship to something. Relationships in RT can be ticket-to-ticket, but can also link tickets to external items like URLs or FedEx shipping numbers. For the sake of simplicity, we'll refer only to tickets in the following explanation of relationship types:
- DEPENDS ON: the ticket can't be resolved unless another ticket is also resolved. The converse is depended on by.
- REFERS TO: the ticket doesn't need the other ticket, but it would sure be useful for you to look at it. The converse is referred to by.
- PARENT: a big, general ticket ("Move house.")
- CHILD: a subproject of a parent ("Hire movers." "Pack." "Eat pizza.")
CustomFields are, yes, database fields that your organization can make up according to its needs. For details, see the Custom Fields section in ManualAdministration. An example custom field might be Resolution: FIXED, WORKSFORME, WONTFIX, UPSTREAM, etc.
Scrips are custom events that will automatically take Action X in response to Condition Y. You could have RT notify the Requestor when a ticket is resolved, for instance, or have RT page you when your boss submits a request. RT comes with many standard scrips, and you can define your own. For details, see the Scrips section in ManualAdministration. And no, we didn't misspell "scripts." We made up a new word. Try it, it's fun.
Now that you are (we hope) clear on the concepts, you're ready to start using RT.