RT has several built-in status codes, including "new", "open", "resolved", and "stalled".
Not everyone's work-flow fits nicely into using these particular status codes. One answer is to use custom fields. This has been discussed at length e.g; discussion from 2004
However, if you "Use custom fields" is unsatisfactory, you can in fact add new statuses to RT. [=etc/RT_Config.pm] states:
You can define new statuses and even reorder existing statuses here. WARNING. DO NOT DELETE ANY OF THE DEFAULT STATUSES. If you do, RT will break horribly.
The statuses you add must be no longer than 10 characters: if they are, it will seem to work until you try to actually set one of the long values, at which point you will get an "Invalid status for #nn" error.
Some statuses that have been suggested are:
- wcr or pending - Waiting for Customer Response to a question in the ticket
- finished - a task is Finished, but still waiting for confirmation from the customer
Adding statuses to SiteConfig Edit
Set(@ActiveStatus, qw(new open XXX stalled)); Set(@InactiveStatus, qw(resolved XXX rejected deleted SPAM));
@ActiveStatus = qw(new open XXX stalled); @InactiveStatus = qw(resolved XXX rejected deleted);
After 4.0 Edit
After 4.0 a new lifecycle management function is introduced, which includes the statuses.
The old configurations are deprecated, at the webserver restart (For example Apache2), you'll get an error, warning you to change this.
More info: CustomStatusesInRt4
Scrip actions for custom statuses Edit
For the case where you're adding something like 'finished' to inform the requestor that you believe you have finished the required work and you would like confirmation from them that they're happy with it, a possible solution is:
@ActiveStatus = qw(new open stalled finished) unless @ActiveStatus; % mysql rt3 mysql> INSERT INTO ScripConditions (Name, Description, ExecModule, Argument, ApplicableTransTypes, Creator, Created, LastUpdatedBy, LastUpdated) VALUES ('On Finish', 'Whenever a ticket is finished', 'StatusChange', 'finished', 'Status,Set', 1, NOW(), 1, NOW());
This will give you the additional condition "On Finish" which can be used to send an email to requestors saying "Hi, we believe we've finished the task. Could you please check that it's resolved to your satisfaction and let us know by responding to this email. Thanks." without writing a UserDefined Scrip.
A little nasty maybe - but using the 'StatusChange' module's encapsulation of the required behaviour.