/build/static/layout/Breadcrumb_cap_w.png

Is it possible to define alerts for tickets that go unassigned for x amount of time?

In other previous ticket systems, we could define (via checkbox, dropdown, and/or rule), the ability to notify (via email alert) a queue owner (e.g. Agent or Manager), if a ticket has remained in the unassigned state for a defined interval, as per an SLA (e.g. 20 minutes, 1 hour, 2 hours, 1 day, etc.).

Is it possible to do that in KACE?  We are currently running version 6.2.109329.

1 Comment   [ + ] Show comment
  • You could but it would be a ticket rule that you would have to create where it would look to see if there is an owner, the ticket created date and status.

    using the ticket created date you could set an interval and if it has reached that interval you could then send an email to someone or a group to say, hey this ticket has been unassigned for x amount of time.

    You could then create other rules similar at different time intervals to email up the chain.

    Escalation 1 (20 minutes)- Goes to HD Manager
    Escalation 2 (1 hour)- Goes to HD Manager & Dept Manager
    Escalation 3 (1 day)- You get the idea - nshah 9 years ago

Answers (3)

Posted by: Paloma 9 years ago
Purple Belt
3
heyy man!!
i have that version also and here it is the full rule that makes what you want. 
it send and email to SUPPORT if the ticket has been untouched during one hour and a half.
It has these two problems solved ;-)

Posted by: Paloma 9 years ago
Purple Belt
2
It is more or less the same as jfrank, but i have two little problems.

Here is my ticket rule.
 it sends and email to SUPPORT every 1:30h if nobody has done nothing on the ticket. there are two things that i would like to improve but i dont know how (if sb would help....it would be awesome)
-it sends an email EVERY 1:30h if it still doesnt suffer any change. i would like that it sends just one email after the first 1:30h without changes
-i would like that it works just in working hours from 8:00 to 18:00

->SELECT SQL

select  'somebody@yourcompany.br' as SUPPORT, HD_TICKET.TITLE AS TITLE,HD_TICKET.ID AS ID, 
HD_STATUS.NAME AS STATUS,Q.NAME as QUEUE,
                                                
if(unix_timestamp(HD_TICKET.CREATED) > 0, HD_TICKET.CREATED, 1<<62) as SORT_TIME_CREATED,
if(unix_timestamp(HD_TICKET.MODIFIED) > 0, HD_TICKET.MODIFIED, 1<<62) as SORT_MODIFIED,

case upper(STATE)

when 'CLOSED' then unix_timestamp(HD_TICKET.TIME_CLOSED) - unix_timestamp(HD_TICKET.TIME_OPENED)
when 'OPENED' then unix_timestamp(NOW()) - unix_timestamp(HD_TICKET.TIME_OPENED)
else unix_timestamp(NOW()) - unix_timestamp(HD_TICKET.MODIFIED) end as AGE,
    
U2.FULL_NAME as SUBMITTER_FULLNAME,
U2.EMAIL as SUBMITTER_EMAIL,
        U1.FULL_NAME as OWNER_FULLNAME,
U1.EMAIL as OWNER_EMAIL
      
from (HD_TICKET, HD_PRIORITY, HD_STATUS, HD_IMPACT, HD_CATEGORY)

LEFT JOIN USER U1 on U1.ID = HD_TICKET.OWNER_ID
LEFT JOIN USER U2 on U2.ID = HD_TICKET.SUBMITTER_ID
LEFT JOIN USER U3 on U3.ID = HD_TICKET.APPROVER_ID
LEFT JOIN HD_QUEUE Q on Q.ID = HD_TICKET.HD_QUEUE_ID

where HD_PRIORITY.ID = HD_PRIORITY_ID
and HD_STATUS.ID = HD_STATUS_ID
and HD_IMPACT.ID = HD_IMPACT_ID
and HD_CATEGORY.ID = HD_CATEGORY_ID
and HD_TICKET.CREATED = HD_TICKET.MODIFIED
and ((unix_timestamp(NOW()) - unix_timestamp(HD_TICKET.MODIFIED) > '5400') and HD_TICKET.HD_QUEUE_ID = 7 )

GROUP BY HD_TICKET.TITLE, HD_TICKET.ID
 

->active the tickbox for sending and email for every destinary of the consult

-Tittle:Escalating
-Email:SUPPORT (here is where you choose the person or people who is gonna receive the alert. you have to write it in the select query)
-Message:
Tickets não atribuidos em 1:30h.

Creado:                   $sort_time_created
Titulo:                      $title
Ticket ID:                 $id
Solicitante:               $submitter_fullname
Corpo do chamado:     http://youraddressforservicedesk/adminui/ticket.php?ID=$id

Comments:
  • for the timetable GillySpy has solved it here:
    http://www.itninja.com/question/use-escalation-timer-with-a-different-field-sla-counter - Paloma 9 years ago
Posted by: jfrank 9 years ago
Blue Belt
1
You have to set up a new ticket rule from Service Desk > Configuration > Rules > Choose Action > New (SQL).

The SQL query below is what I used for this same scenario...

You'll want to selec the Email each recipient in query results - pick a subject line, entere QUEUEADMIN as the Column containing email addresses field, and enter the message - I included the adminui url for the ticket id (http://kbox/adminui/ticket?ID=$id) for easy access to get to the ticket. Then you can set a schedule for the ticket rule to run.

Note the highlighted section; you have to use the contact email in that location.

-----

select HD_TICKET.*,
 HD_STATUS.NAME AS STATUS_NAME,
 date_format(HD_TICKET.CREATED,'%b %d %Y %I:%i:%s %p') as CREATED,
 HD_STATUS.ORDINAL as STATUS_ORDINAL,
 HD_IMPACT.ORDINAL as IMPACT_ORDINAL,
 HD_CATEGORY.ORDINAL as CATEGORY_ORDINAL,
 HD_PRIORITY.ORDINAL as PRIORITY_NUMBER,
 STATE, 
 if((datediff(DUE_DATE, now()) = 0), 2, if((datediff(DUE_DATE, now())<0), 1, 3)) as SORT_OVERDUE_STATUS,
 if(unix_timestamp(TIME_OPENED) > 0, TIME_OPENED, 1<<62) as SORT_TIME_OPENED, 
 if(unix_timestamp(TIME_STALLED) > 0, TIME_STALLED, 1<<62) as SORT_TIME_STALLED, 
 if(unix_timestamp(TIME_CLOSED) > 0, TIME_CLOSED, 1<<62) as SORT_TIME_CLOSED, 
 if(unix_timestamp(ESCALATED) > 0, ESCALATED, 1<<62) as SORT_ESCALATED,
 if(unix_timestamp(HD_TICKET.CREATED) > 0, HD_TICKET.CREATED, 1<<62) as SORT_TIME_CREATED, 
 if(unix_timestamp(HD_TICKET.MODIFIED) > 0, HD_TICKET.MODIFIED, 1<<62) as SORT_MODIFIED,
 if(unix_timestamp(HD_TICKET.DUE_DATE) > 0, HD_TICKET.DUE_DATE, 1<<62) as SORT_DUE_DATE,
 case upper(STATE) 
 when 'CLOSED' then unix_timestamp(HD_TICKET.TIME_CLOSED) - unix_timestamp(HD_TICKET.TIME_OPENED) 
 when 'OPENED' then unix_timestamp(NOW()) - unix_timestamp(HD_TICKET.TIME_OPENED)
 else unix_timestamp(NOW()) - unix_timestamp(HD_TICKET.CREATED) end as AGE,
 if ((LENGTH(U1.FULL_NAME) = 0), U1.USER_NAME, U1.FULL_NAME) as OWNER_NAME,
 U1.FULL_NAME as OWNER_FULLNAME,
 U1.EMAIL as OWNER_EMAIL,
 if (U1.ID is null, 'z', concat('a', if ((LENGTH(U1.FULL_NAME) = 0), U1.USER_NAME, U1.FULL_NAME))) as SORT_OWNER_NAME,
 if ((LENGTH(U2.FULL_NAME) = 0), U2.USER_NAME, U2.FULL_NAME) as SUBMITTER_NAME,
 U2.FULL_NAME as SUBMITTER_FULLNAME,
 U2.EMAIL as SUBMITTER_EMAIL,
 if (U2.ID is null, 'z', concat('a', if ((LENGTH(U2.FULL_NAME) = 0), U2.USER_NAME, U2.FULL_NAME))) as SORT_SUBMITTER_NAME,
 if (U3.ID is null, 'z', concat('a', if ((LENGTH(U3.FULL_NAME) = 0), U3.USER_NAME, U3.FULL_NAME))) as SORT_APPROVER_NAME,
 
 if(APPROVAL='rejected', 'Rejected', if(APPROVAL='info', 'More Info 
Needed', if(APPROVAL='approved', 'Approved', if(APPROVER_ID>0, 
'Pending', '')))) as APPROVAL_STATUS,
 Q.NAME as QUEUE_NAME,
 'useremail@company.com' as QUEUEADMIN 
 from (HD_TICKET, HD_PRIORITY, HD_STATUS, HD_IMPACT, HD_CATEGORY)
 LEFT JOIN USER U1 on U1.ID = HD_TICKET.OWNER_ID
 LEFT JOIN USER U2 on U2.ID = HD_TICKET.SUBMITTER_ID
 LEFT JOIN USER U3 on U3.ID = HD_TICKET.APPROVER_ID
 LEFT JOIN HD_QUEUE Q on Q.ID = HD_TICKET.HD_QUEUE_ID
 LEFT JOIN MACHINE M1 on M1.ID = HD_TICKET.MACHINE_ID
 where HD_PRIORITY.ID = HD_PRIORITY_ID
 and HD_STATUS.ID = HD_STATUS_ID
 and HD_IMPACT.ID = HD_IMPACT_ID
 and HD_CATEGORY.ID = HD_CATEGORY_ID
 and TIME_TO_SEC(TIMEDIFF(NOW(),HD_TICKET.CREATED)) > 900
 and HD_TICKET.OWNER_ID = 0
 and HD_STATUS.STATE != 'closed'
 and HD_TICKET.HD_QUEUE_ID = 1 

(props to @jdornan with this blog post that gave me the info I needed when I did this: http://www.itninja.com/blog/view/k1000-unassigned-aging-ticket-alert )

Don't be a Stranger!

Sign up today to participate, stay informed, earn points and establish a reputation for yourself!

Sign up! or login

Share

 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ