rule that emails an alert each time one ticket is created (only the new ticket) - How can I put only specific fields (submitter, ticket and title for example)?
Hello, I found in the site one select as below for create the rule but I having one doublt for send by email with only 03 fields (submitter, ticket and title for example) but the SQL posted in the site is getting all fields including custom fields. Can you help me showing one simple example?
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(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
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_STATUS.NAME like '%Open%') and HD_TICKET.HD_QUEUE_ID = 7 )
thanks
Felipe Sternberg
1 Comment
[ + ] Show comment
-
Is there a reason that you don't want all of the fields selected? - chucksteel 7 years ago
Answers (1)
Please log in to answer
Posted by:
svmay
7 years ago
Hello Felipe Eduardo,
this is the custom rule for new tickets, that I use.
sql-select:
(Note: adjust the highlighted passage as you need)
[x] send an email to..
subject: column with mail adress:
mail:
this is the custom rule for new tickets, that I use.
sql-select:
SELECT -- ticket fields HD_TICKET.ID, -- $id HD_TICKET.ID AS TICKNUM, -- $ticknum HD_TICKET.TITLE, -- $title HD_TICKET.SUMMARY, -- $summary DATE_FORMAT(HD_TICKET.DUE_DATE,'%d.%m.%Y, %k:%i Uhr') AS DUE_DATE, -- $due_date DATE_FORMAT(HD_TICKET.CREATED,'%b %d %Y %I:%i:%s %p') AS CREATED, -- $created DATE_FORMAT(HD_TICKET.MODIFIED,'%b %d %Y %I:%i:%s %p') AS MODIFIED, -- $modified -- change fields C.COMMENT, -- $comment C.DESCRIPTION, -- $description GROUP_CONCAT(CONCAT('----- Change by ', UPDATER.EMAIL,' at ',H.TIMESTAMP,' -----\n', H.DESCRIPTION,'\n',H.COMMENT,'\n\nPlease see your ticket at http://yourkbox.yourdomain/userui/ticket.php?ID=',H.HD_TICKET_ID,'\n') ORDER BY H.ID DESC SEPARATOR '\n') HISTORY, -- $history -- about the updater UPDATER.USER_NAME AS UPDATER_UNAME, -- $updater_uname UPDATER.FULL_NAME AS UPDATER_FNAME, -- $updater_fname UPDATER.EMAIL AS UPDATER_EMAIL, -- $updater_email IF(UPDATER.FULL_NAME='',UPDATER.USER_NAME,UPDATER.FULL_NAME) AS UPDATER_CONDITIONAL, -- $updater_conditional -- about the owner OWNER.USER_NAME AS OWNER_UNAME, -- $owner_uname OWNER.FULL_NAME AS OWNER_FNAME, -- $owner_fname OWNER.EMAIL AS OWNER_EMAIL, -- $owner_email IFNULL(OWNER.USER_NAME,'Unassigned') OWNER_USER, -- $owner_user -- about the submitter SUBMITTER.USER_NAME AS SUBMITTER_UNAME, -- $submitter_uname SUBMITTER.FULL_NAME AS SUBMITTER_FNAME, -- $submitter_fname SUBMITTER.EMAIL AS SUBMITTER_EMAIL, -- $submitter_email -- about priority P.NAME AS PRIORITY, -- $priority -- about status S.NAME AS STATUS, -- $status -- about impact I.NAME AS IMPACT, -- $impact -- about category CAT.NAME AS CATEGORY, -- $category -- other fields -- -- example of static distribution list 'yourITmail@yourdomain' AS NEWTICKETEMAIL -- $newticketemail FROM HD_TICKET /* latest change ***/ JOIN HD_TICKET_CHANGE C ON C.HD_TICKET_ID = HD_TICKET.ID AND C.ID=<CHANGE_ID> /* complete history*/ JOIN HD_TICKET_CHANGE H ON H.HD_TICKET_ID = HD_TICKET.ID /* priority ********/ JOIN HD_PRIORITY P ON P.ID=HD_PRIORITY_ID /* status **********/ JOIN HD_STATUS S ON S.ID=HD_STATUS_ID /* impact-severity */ JOIN HD_IMPACT I ON I.ID=HD_IMPACT_ID /* category ********/ JOIN HD_CATEGORY CAT ON CAT.ID=HD_CATEGORY_ID /* owner ***********/ LEFT JOIN USER OWNER ON OWNER.ID = HD_TICKET.OWNER_ID /* submitter *******/ LEFT JOIN USER SUBMITTER ON SUBMITTER.ID = HD_TICKET.SUBMITTER_ID /* updater *********/ LEFT JOIN USER UPDATER ON UPDATER.ID = C.USER_ID WHERE C.DESCRIPTION LIKE '%CREATED%' /* this is necessary when using group by functions */ GROUP BY HD_TICKET.ID HAVING 1=1 |
[x] send an email to..
subject: column with mail adress:
New Ticket [TICKET-ID:$ticknum] - $category | NEWTICKETMAIL |
$submitter create a new ticket. Ticketinformation: Ticket-ID:[$ticknum] $title $summary Category: $category Priority: $priority Impact: $impact The ticket must be completed on $due_date Ticketlink: http://yourkbox.yourdomain/adminui/ticket.php?ID=$ticknum |
Comments:
-
Thank you for that code! It is working fine for me and sending the emails but the $submitter info is not pulling in correctly. I looked in the admin guide and see $ticket_submitter_name listed in the table names but that didn't work for me either. Any ideas? - cpfms 7 years ago
-
When using custom rules the columns selected in the select statement are available as variables. In the statement above you can see the following columns from the submitter:
SUBMITTER.USER_NAME AS SUBMITTER_UNAME, -- $submitter_uname
SUBMITTER.FULL_NAME AS SUBMITTER_FNAME, -- $submitter_fname
SUBMITTER.EMAIL AS SUBMITTER_EMAIL, -- $submitter_email
Those are the variables you can use in the email template. If there are other columns from the user table that you want to include you will have to include them. - chucksteel 7 years ago