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

-----Original Message-----
From: rt-users-bounces@lists.bestpractical.com
[mailto:rt-users-bounces@lists.bestpractical.com] On Behalf
Of Darren Nickerson
Sent: Monday, May 12, 2008 10:53 AM
To: rt-users@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

Dominic Lepiane wrote:
[snip]

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).

We have our support staff mark tickets as “stalled” when they reply to a
customer. Then when the customer replies, the ticket is automatically
brought back to life.

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
LBNLOn 5/12/2008 11:24 AM, Dominic Lepiane wrote:

-----Original Message-----
From: rt-users-bounces@lists.bestpractical.com
[mailto:rt-users-bounces@lists.bestpractical.com] On Behalf
Of Darren Nickerson
Sent: Monday, May 12, 2008 10:53 AM
To: rt-users@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


The rt-users Archives

Community help: http://wiki.bestpractical.com
Commercial support: sales@bestpractical.com

Discover RT’s hidden secrets with RT Essentials from O’Reilly Media.
Buy a copy at http://rtbook.bestpractical.com

We have two main support queues, one for support, one for RMA. We handle about 50 new tickets a week and usually have just over 100 tickets open at any given time. So we don’t have a lot of support infrastructure, we have two people doing support plus they bring in various other people either from manufacturing for RMAs or from engineering / development for expert advice.

If we could move stuff in to a couple separate queues as they are worked on, that might simplify the support management and help us ensure nothing gets missed. One of the things we look for in our custom query is how recently a ticket was active (as opposed to when it was opened). We basically set priority based on that.

Dominic Lepiane

Dominic,

Do your support personnel work on tickets in both queues? What kind of 

notification scrip do you use or would like to have? What kind of
administrative function(s) do you have right now or would like? With
that info, I can help you get your queues set up for privileges and also
help you write an RT query that can replace what you are using.
Depending on your notification needs, we can customize a few to put your
support personnel on top of the tickets. What version of RT are you using?

Kenn
LBNLOn 5/12/2008 4:05 PM, Dominic Lepiane wrote:

We have two main support queues, one for support, one for RMA. We handle about 50 new tickets a week and usually have just over 100 tickets open at any given time. So we don’t have a lot of support infrastructure, we have two people doing support plus they bring in various other people either from manufacturing for RMAs or from engineering / development for expert advice.

If we could move stuff in to a couple separate queues as they are worked on, that might simplify the support management and help us ensure nothing gets missed. One of the things we look for in our custom query is how recently a ticket was active (as opposed to when it was opened). We basically set priority based on that.

Dominic Lepiane

-----Original Message-----
From: Kenneth Crocker [mailto:KFCrocker@lbl.gov]
Sent: Monday, May 12, 2008 3:33 PM
To: Dominic Lepiane
Cc: Darren Nickerson; rt-users@lists.bestpractical.com
Subject: Re: [rt-users] How to flag neglected tickets for
support engineer response??

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@lists.bestpractical.com
[mailto:rt-users-bounces@lists.bestpractical.com] On
Behalf Of Darren
Nickerson
Sent: Monday, May 12, 2008 10:53 AM
To: rt-users@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.`LastUpda

ted),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


The rt-users Archives

Community help: http://wiki.bestpractical.com Commercial support:
sales@bestpractical.com

Discover RT’s hidden secrets with RT Essentials from O’Reilly Media.
Buy a copy at http://rtbook.bestpractical.com

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.
May be you want to look at SLA extension for RT that is available from
the CPAN. It will allow you to maintain Due dates according to last
user reply. As well you can use LinearEscalation together with it
autoset priotirties according to how much time left until Due date.

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.
SLA extension I mentioned above does this by flipping Due date. If you
define deadline of responses then Due date is set when requestor
updates and unset when owner replies. So tickets with close due dates
or overdue can be on the top if you’ll order them by this field.

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?
As we have implemented custom statuses and it’s now configurable in
the config. I think it’s ok now and we’re going to maintain them and
improve. --Ruslan Zakirov :slight_smile: You can quote this wherever you found
quote of my attacks against custom statuses I made a few years ago.

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!
As well you can use stalled ticket status as suggested below. And you
can automate this. You need scrip “On Owner Reply set Status stalled”,
I think you can find all parts you need for this scrip on the wiki.

-Darren


The rt-users Archives

Community help: http://wiki.bestpractical.com
Commercial support: sales@bestpractical.com

Discover RT’s hidden secrets with RT Essentials from O’Reilly Media.
Buy a copy at http://rtbook.bestpractical.com

Best regards, Ruslan.