Custom ticket rule to change queue
Now that I have my service desk working one of our other group is asking me to create a Tier level. Here is what I am thinking:
Create another Queue "Tier2" and have custom rule in lets say Tier1 that if user chooses one of the categories I have in Tier1 queue it automatically moves the ticket to Tier2 queue. Am I on the right track or is there better way to accomplish this?
I also need some assisntace with the rule - I tired the wizard and had no way to move tickets between queues.
Thank you,
Answers (3)
Select Query: SELECT HD_TICKET.ID, HD_TICKET.TITLE, HD_TICKET.HD_CATEGORY_ID, HD_TICKET.HD_QUEUE_ID, HD_CATEGORY.ID, HD_CATEGORY.NAME FROM HD_TICKET JOIN HD_CATEGORY ON (HD_CATEGORY.ID = HD_TICKET.HD_CATEGORY_ID) WHERE HD_CATEGORY.NAME rlike 'File::Access|File::Missing' AND HD_TICKET.HD_QUEUE_ID = 1 ORDER BY HD_TICKET.ID Update Query: UPDATE HD_TICKET, HD_CATEGORY SET HD_TICKET.HD_QUEUE_ID = 2 WHERE HD_CATEGORY.ID = HD_TICKET.HD_CATEGORY_ID AND HD_TICKET.ID =
You could give this a shot. I put in a couple of category names just to test the Select query, so you'll want to tweak this to whatever you need. Be aware that if you include *lots* of categories, that at some point you'll hit a character limit and may need to use a second rlike (REGEX) statement. I would just test with one ticket (and category) to begin with and make sure that it works before expanding it too much.
A couple other things to bear in mind:
1) You'll also probably want to make sure the categories exist in the second queue before testing.
2) Further tweaking of the update query may be necessary if the moved ticket doesn't inherit the HD_CATEGORY.ID and HD_CATEGORY.ORDINAL values (which differ between the queues). I would check these values before and after the initial test and if the values aren't inhertied, I'd scale the Select query to a single category and then tweak the Update query as necessary. But hopefully this will at least be something to start with.
Hope that helps!
John
_________________________
Select Query:
SELECT HD_TICKET.ID, HD_TICKET.TITLE,
HD_TICKET.HD_CATEGORY_ID, HD_TICKET.HD_QUEUE_ID,
HD_CATEGORY.ID, HD_CATEGORY.NAME
FROM HD_TICKET
JOIN HD_CATEGORY ON (HD_CATEGORY.ID = HD_TICKET.HD_CATEGORY_ID)
WHERE HD_CATEGORY.NAME rlike 'File::Access|File::Missing'
AND HD_TICKET.HD_QUEUE_ID = 1
ORDER BY HD_TICKET.ID
Update Query:
UPDATE HD_TICKET, HD_CATEGORY
SET HD_TICKET.HD_QUEUE_ID = 2
WHERE HD_CATEGORY.ID = HD_TICKET.HD_CATEGORY_ID
AND HD_TICKET.ID = <TICKET_IDS>
Comments:
-
John Thank you - this is what I was looking for at least somewhere to start since I don't know much about SQL. I will start with this and see where I get. - bozadmin 11 years ago
-
No problem. ^_^
If you're just starting with SQL, this might help:
http://www.itninja.com/blog/view/primer-for-writing-select-statement-queries-on-the-k1000-w-custom-sql-report-example
John - jverbosk 11 years ago-
pls check my statement if its correct.
what im doing is if CUSTOM_FIELD_VALUE8 like '%America%' then move the tickets to queue_ID =20.
SELECT HD_TICKET.ID, HD_TICKET.TITLE,
HD_TICKET.HD_CATEGORY_ID, HD_TICKET.HD_QUEUE_ID,
HD_CATEGORY.ID, HD_CATEGORY.NAME
FROM HD_TICKET
JOIN HD_CATEGORY ON (HD_CATEGORY.ID = HD_TICKET.HD_CATEGORY_ID)
WHERE HD_TICKET.CUSTOM_FIELD_VALUE8 like '%America%'
AND HD_TICKET.HD_QUEUE_ID = 16
ORDER BY HD_TICKET.ID
UPDATE HD_TICKET
SET HD_TICKET.HD_QUEUE_ID = 20
WHERE HD_CATEGORY.ID = HD_TICKET.HD_CATEGORY_ID
AND HD_TICKET.ID = <TICKET_IDS>;
05/11/2016 03:01:34> Starting: 05/11/2016 03:01:34 05/11/2016 03:01:34> Executing Select Query... 05/11/2016 03:01:34> selected 2 rows 05/11/2016 03:01:34> Executing Update Query... 05/11/2016 03:01:34> mysqli error: [1064: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '122' at line 4] in EXECUTE("UPDATE HD_TICKET SET HD_TICKET.HD_QUEUE_ID = 20 WHERE HD_CATEGORY.ID = HD_TICKET.HD_CATEGORY_ID AND HD_TICKET.ID = 122,122;") 05/11/2016 03:01:34> Ending: 05/11/2016 03:01:34 - rahimpal 8 years ago
usually that falls under escalation or sending to Level 2 support. Either way their has to be a trigger that tells the kbox it needs to move it from one queue to another. You can also create two queue and information your end users that if the issue is 1, 2, 3 open it in Tier 1. If the issue is a, b, c open ticket in tier 2.
You might want to check this article out.
http://www.kace.com/support/resources/kb/article/Using-Helpdesk-Ticket-Rules-to-transfer-tickets
Also this has a lot of Helpdesk rules and information.
http://www.kace.com/support/resources/kb/category/help-desk
Comments:
-
Nshah - I am not sure if escalation would work in this case. But I was thinking if did the multiple queues and lets ay all users can only submitt to Level one but based on maybe some of the categories they choose the custom rule would automatically move the ticket to level 2 queue. Also I was thinking making ticket owners be able to submitt tickets to level 2 queue and not everyone. - bozadmin 11 years ago
-
It can be done but that would be a custom SQL. Since you are looking to base is on certain categories or custom fields, only you know them you mayb able to modify the first link to target categories and transfer tickets off that or make one and just copy the rule for each different category. - nshah 11 years ago
We are trying to have the users come in one interface, but now another division besides IT wants a ticketing queue. If the Category CAPPS is chosen in our IT queue the rule sends it to the finance queue. Another rule in their queue can send it back to IT for Account Management if that Category is chosen. Have to train them not to loop tickets.
Been trying to follow this and came up with:
SELECT HD_TICKET.ID,
HD_TICKET.HD_QUEUE_ID,
HD_CATEGORY.NAME,
HD_CATEGORY.ORDINAL
FROM HD_TICKET
JOIN HD_CATEGORY ON (HD_TICKET.HD_CATEGORY_ID = HD_CATEGORY.ID)
WHERE HD_CATEGORY.ORDINAL = 4
AND HD_TICKET.HD_QUEUE_ID = 9
ORDER BY HD_TICKET.ID
UPDATE HD_TICKET.ID, HD_CATEGORY
SET HD_TICKET.HD_QUEUE_ID = 14 AND
SET HD_CATEGORY.ORDINAL = 3 AND
SET HD_CATEGORY.NAME = CAPPS
WHERE HD_TICKET.ID = <TICKET_IDS>
The ordinal being different between queues makes it a little tricky an you need to know your queue numbers!
Haven't posted in a long time and at another agency now. Still waiting on my make user inactive enhancement which got a lot of votes. Wouldn't have to delete them and could historically report, but not assign or request anymore. Tried that duplicate user rule without success, but might get back to it. Hope this helps someone.
1) User creates a request for a licensed software
2) The ticket gets assigned to a member of the Approvers list (user settable)
3) The Approver approves the request
4) The ticket then gets assigned to a member of the Purchasing list
Could this be resolved using the custom ticket rule in this thread?
Cheers,
Christian - cholton 11 years ago