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.
Is it possible to do that in KACE? We are currently running version 6.2.109329.
1 Comment
[ + ] Show comment
Answers (3)
Please log in to answer
Posted by:
Paloma
9 years ago
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
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
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 )
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