/build/static/layout/Breadcrumb_cap_w.png

How do I create a ticket rule that makes it so that a copy of the email that a ticket creator receives is sent to another email address?

How do I create a ticket rule that makes it so that a copy of the email that a ticket creator receives is sent to another email address?

0 Comments   [ + ] Show comments

Answers (3)

Posted by: barchetta 4 weeks ago
Blue Belt
0

Sorry for the delay.. Not sure what you mean by "If I could capture the process that occurs after a new ticket is created," but if you mean on every update after it is created you could do it a few ways.. one with a description of the ticket modify verbiage or like below which is what I use if a ticket has aged to send an email.  You could just do a if greater than 10 seconds after created do it (on every save).  Get rid of the other stuff in my where statement as well of course.    You probably have solved this by now but thought Id contribute to the cause.

FYI- in my case I run this every 15 minutes to text message the team when a critical ticket comes in and no one has taken ownership so we dont blow up our SLA.


select

  distinct HD_TICKET.ID,

  ,HD_TICKET.ID as ticket_id

  ,concat("TICK:", if(length(HD_TICKET.ID) < 4, lpad(HD_TICKET.ID, 4, 0), HD_TICKET.ID)) as ticket_number

  ,HD_TICKET.TITLE as ticket_title

  ,HD_TICKET.SUMMARY as ticket_summary

  ,HD_TICKET.CREATED as ticket_created

  ,CAT.NAME as ticket_category

  ,ifnull(SUBMITTER.FULL_NAME, "Unassigned") as ticket_submitter_name

  ,ifnull(SUBMITTER.EMAIL, "Unassigned") as ticket_submitter_email

  ,ifnull(OWNER.FULL_NAME, "Unassigned") as ticket_owner_name

  ,ifnull(OWNER.EMAIL, "Unassigned") as ticket_owner_email

  ,S.NAME as ticket_status

  ,P.NAME as ticket_priority

  ,I.NAME as ticket_impact

from

  HD_TICKET

  join HD_CATEGORY CAT on HD_TICKET.HD_CATEGORY_ID = CAT.ID

  join HD_STATUS S on HD_TICKET.HD_STATUS_ID = S.ID

  join HD_PRIORITY P on HD_TICKET.HD_PRIORITY_ID = P.ID

  join HD_IMPACT I on HD_TICKET.HD_IMPACT_ID = I.ID

  join HD_QUEUE On HD_QUEUE.ID = HD_TICKET.HD_QUEUE_ID

  left join USER SUBMITTER on HD_TICKET.SUBMITTER_ID = SUBMITTER.ID

  left join USER OWNER on HD_TICKET.OWNER_ID = OWNER.ID

  ,(select S.`VALUE` ticket_label from SETTINGS S where S.`NAME` = "HD_TICKET_LABEL") settings

where

  /* SET CORRECT QUEUE ID(S) HERE! */ HD_TICKET.HD_QUEUE_ID in (1)

  and P.NAME = 'Critical'

  and HD_TICKET.OWNER_ID = '0' 

  and HD_TICKET.CREATED < SUBDATE(NOW(), INTERVAL 15 MINUTE)

  and HD_TICKET.CREATED  > SUBDATE(NOW(), INTERVAL 20 MINUTE)

group by

 

  HD_TICKET.ID

Posted by: barchetta 2 months ago
Blue Belt
0

For me anyway, Id need to know more detail to answer. Taking your question quite literally, once could easily add a user to the CC of every ticket.  If this is the case, Im currently blocking all CCs with this rule. All you would need to do is change null to the email address (or perhaps username, not sure).

Much more in this script than is needed. I lazily did a report and stole the sql that was created.  But everything in bold would likely need to change.


select HD_TICKET.*,

                        HD_STATUS.NAME AS STATUS_NAME,

                        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(M1.ID is null, 'z', concat('a', M1.NAME)) as sort_MACHINE_NAME,

                        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() - unix_timestamp(HD_TICKET.TIME_OPENED)

                        else unix_timestamp() - 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(HD_TICKET.APPROVER_ID>0, 'Pending', '')))) as APPROVAL_STATUS,

                        Q.NAME as QUEUE_NAME

                        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 ((  HD_TICKET.CC_LIST is not null) and HD_TICKET.HD_QUEUE_ID = 1 )


UPDATE

update HD_TICKET

    set HD_TICKET.CC_LIST = HD_TICKET.CC_LIST is null

  where 

        (HD_TICKET.ID in (<TICKET_IDS>))


EDIT: Bold didnt work.. nice.  Both Null's and also the queue # would need to change above. I run this on every save to clear out the CC value because we havent quite figured out how to avoid multiple new tickets and so on.

Posted by: smaccallum 2 months ago
Senior White Belt
0

barchetta,

Thank you for your response. "Taking your question quite literally, once could easily add a user to the CC of every ticket." You're correct, that's exactly what I want to do. Every time a new ticket is created, a specific email address gets an email copy of what the creator of the ticket gets for an email. I'm replacing our current ticket system and the process that I've described is how the tech. team is made aware that a new ticket has been created and by whom.

I like your idea about capturing what KACE is doing and then modifying it for a certain purpose. If I could capture the process that occurs after a new ticket is created, I suspect that it could be used for a custom ticket rule, where the email address of the tech. team is used instead of the ticket creators. The trouble is, I'm not sure how to do this.

Thank you,

Scott

 
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