[rt-users] How to flag neglected tickets for support engineer response??

Kenneth Crocker KFCrocker at lbl.gov
Mon May 12 18:32:36 EDT 2008


Dominic, Darren, & Graham,


	Hoe many tickets do you get a week? How many Queues do you have? What 
kind of support infrastructure have you set up? Depending on your 
answers, you might want to consider setting up a single queue for 
receiving ALL requests and then run some RT queries to select/sort those 
requests based on whatever criteria is most important and then move thos 
tickets to the support queue where the work can be done/documented by a 
member of the appropriate support group. there's a lot of work that goes 
into setting up the groups/privileges that will support a descent 
support infrastructure. I'll be glad to help as we went thru the same 
problems. We now have over 75 support queues that handle hundreds of 
tickets a month with the ability to review & prioritize/approve tickets 
for work as well as a QA Testing WorkFlow process as well. Let me know.


Kenn
LBNL

On 5/12/2008 11:24 AM, Dominic Lepiane wrote:
>> -----Original Message-----
>> From: rt-users-bounces at lists.bestpractical.com
>> [mailto:rt-users-bounces at lists.bestpractical.com] On Behalf
>> Of Darren Nickerson
>> Sent: Monday, May 12, 2008 10:53 AM
>> To: rt-users at lists.bestpractical.com
>> Subject: [rt-users] How to flag neglected tickets for support
>> engineer response??
>>
>> Folks,
>>
>> We've been using RT for some time now, and have managed to
>> get by with pretty much a stock configuration. Our support
>> reps are starting to get lost in a sea of tickets though,
>> where only the most recently 'alive' tickets get attended to,
>> and lots of important ones drop off their radar. We're
>> looking to take advantage of some of the fancy hooks, bells
>> and whistles that are possible due to RT's open architecture.
>>
>> Our objective is to flag tickets that require a support
>> engineer response somehow. Our criteria for determining which
>> tickets require a response might be, for example, tickets
>> where the last comment or correspondence was not from someone
>> in the RT group "Support". In theory, that would mean that
>> the customer (or other interested parties in the cc: list)
>> were the last ones to update the ticket, and the ball is now
>> in our court.
>>
>> Our preliminary research suggests that we might be able to
>> invoke RT::Search::FromSQL from rt-crontool and use that to
>> locate tickets matching the above condition, and "do
>> something" to those tickets.  We're not sure what "do
>> something" means, but it might mean setting a custom field
>> (Ruslan says custom statuses are bad ;-)) or something
>> similar. Where we really hit a wall is how to prioritize
>> these items in the "RT at a glance" page as needing a
>> response from us. Is it possible to colorize the tickets red, perhaps?
>>
>> Essentially what we need is a 'Customer Pending' and 'Support
>> Pending' designation that will allow us to flag "Support
>> Pending" tickets for support engineer attention. This seems
>> like a common problem ... does anyone have any
>> recipes/solutions/tips that might help? All advice welcomed!
>>
>> -Darren
>>
> 
> Hi Darren,
> 
> We have the same problem here.  Large amounts of tickets are pending and we need to be able to identify which ones are customer-last-commented vs. staff-last-commented.  Currently, we do this outside RT and have MySQL queries run from a PHP web page that query the RT database for this info.  And it is a big ugly query (see below).
> 
> This was all done before I started here (I didn't do it!) so if there's some sane way of handling this in RT, I'm all ears.  Barring that, maybe this query can help you.
> 
> "SELECT
> `Tickets`.`id` AS '".$db_col1."',
> `Tickets`.`Subject` AS '".$db_col2."',
> DATE_SUB(`Tickets`.`Told` ,  INTERVAL 8  HOUR  ) AS '".$db_col3."',
> DATE_SUB(`Tickets`.`LastUpdated` ,  INTERVAL 8  HOUR  ) AS '".$db_col7."',
> $hours_waiting AS '".$db_col8."',
> `Users1`.`RealName` AS '".$db_col4."',
> SUBSTRING( MAX( CONCAT( LPAD(Transactions.id,8,'0'), Users2.EmailAddress   ) ) , 9 ) AS '".$db_col10."',
> $pgr_last AS '".$db_col9."',
> IF(UNIX_TIMESTAMP(`Tickets`.`Told`)<UNIX_TIMESTAMP(`Tickets`.`LastUpdated`),1,0) AS '".$db_col11."',
> IF(!$pgr_last,
>    IF($hours_waiting > 20,1.0,IF($hours_waiting > 8,2.0,IF(ISNULL(`Tickets`.`Told`),2.0,3.0))),
>    IF($hours_waiting > 200,1.5,IF($hours_waiting > 48,2.0,IF($hours_waiting > 24, 3.0, IF(ISNULL(`Tickets`.`Told`),2.0,4.0))))
>    ) AS Priority
> 
> FROM  `Tickets` , `Queues`, `Users` AS `Users1`, `Users` AS `Users2`, Transactions
> WHERE
> (
> `Tickets`.`Status`  =  'new' OR
> `Tickets`.`Status`  =  'open'
> ) AND
> `Tickets`.`Queue` =`Queues`.`id` AND
> `Queues`.`Name` = 'PGR Support' AND
> `Users1`.`id` = `Tickets`.`Owner` AND
> `Users2`.`id` = `Transactions`.`Creator` AND
> (`Users2`.`EmailAddress` NOT LIKE '%@ptgrey.com%' OR
> `Users2`.`EmailAddress` LIKE '%@ptgrey.com%') AND
> Transactions.ObjectId = Tickets.id AND
> ((Transactions.Type = 'Correspond') OR
>  (Transactions.Type = 'Create' ))
> GROUP BY Tickets.id
> ORDER BY Priority, '$db_col8' DESC";
> 
> 
> 
> Dominic Lepiane
> 
> _______________________________________________
> http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users
> 
> Community help: http://wiki.bestpractical.com
> Commercial support: sales at bestpractical.com
> 
> 
> Discover RT's hidden secrets with RT Essentials from O'Reilly Media. 
> Buy a copy at http://rtbook.bestpractical.com
> 




More information about the rt-users mailing list