Query Builder - Using UpdatedBy != (isn't) parameter doesn't work as expected

We are on 4.4.4 and have a Queue with tickets that have attached documents containing information for our Contact Centre Agents e.g. Customer Information Circulars. As each circular is logged in the Queue our agents have to comment on the ticket to confirm they have read and noted the contents.
For effective servicing it is vital that we can confirm that ALL agents have read each circular after it is released. Currently one of our staff is tasked with laboriously going the body of each of these tickets to confirm who has commented and who hasn’t which is a massive waste of time. Once confirmed we then Resolve the ticket.

So, intending to create a search for each agent which we can put on one dashboard, I used the Query Builder to create a search like this:
Queue = ‘CUST-Verbatims’ AND Status = ‘Active’ AND UpdatedBy != ‘JoeS’

But, it doesn’t work and seems to return all Active tickets in the Queue even those that ‘JoeS’ has NOT updated. The != (isn’t) search parameter is specifically supported in the Query Builder so what am I missing here? Any ideas what is wrong?

1 Like

I can replicate that behaviour in my 4.2.2 system, and in our test 5.0.7 install.

Interestingly, LastUpdatedBy does work correctly. Each of the other three fields in the Query Builder dropdown, Owner, Creator, Last Updated By will only return a single value, but Updated By could be a list.

If I try a query when there is just one updater, it still fails, so it does look like you’ve found a bug!

This can be reported directly to Best Practical via their RT instance https://rt.bestpractical.com/

1 Like

Could you have script that makes child tickets for each agent?

Maybe a learning management tool like Totara - https://www.totara.com/ - might be better? Each doc could be a certification and then you track completion. (I use Totara at work for our security awareness training etc)

Maybe @Lloyd can solve this specific problem via Totara or similar, but the bug is there. The ‘!=’ operator doesn’t work with UpdatedBy to me too.

1 Like

Thanks for all the feedback I have been quietly pulling out my hair about this one!
This will be my first bug report, so will report it as requested.

@Andrew_Ruthven the beauty of using tickets in our Verbatims Queue is that we can expose all these tickets on a dashboard search and include a document link directly to the attached .pdf. Our agents can then Ctrl-F and search for a keyword (e.g. medical scheme name) to locate the applicable circular/s tickets quickly and open the document directly in the browser all without leaving RT. Speed is king when you’re chasing reduced average call times.

Having multiple tickets for each agent (x 24) would just clog the dashboard search and make it much harder to manage.

Yup, all fair enough reasons to keep things in RT.

We will look at the bug ticket but for now I think you might be able to achieve your desired search results by adding UpdatedBy != ‘RT_System’ to your search.

What is happening is there are transactions created by the RT System user, such as sending email, so most tickets will still match the criteria.

Brad

1 Like

Hi, @BradBPS, welcome!

Thanks to your comment I’ve analyzed the history to understand what != really means.
UpdatedBy != ‘user1’ finds all tickets because RT_System user also modify all tickets.

Adding UpdatedBy != ‘RT_System’ doesn’t solves @Lloyd’s question because if a ticket is updated by user1 and user2, it will be shown in the results tab too (because it’s updated by user2 that != user1).

So, this question is still open.

It will be a good idea if UpdatedBy could accept syntax like UpdatedBy not in (user1, user2,…).

Hi @Lloyd.

Just an idea: What about using a CustomRole “HasToRead”?
OnCreate all agents stored in a group put in to this role. Each time a Comment is done the agent is removed from that role.

It is possible to compare to NULL to see if there is somebody left who has to read.

Just a snappy idea.