[rt-users] Ideas on best way to do this?

Mike Peachey mike.peachey at jennic.com
Thu Feb 7 10:09:15 EST 2008


Greg Evans wrote:
> Hey Mike,
> 
> Thanks for the reply.  I am attaching a screenshot of what I created for my
> tickets previously with custom fields and all of that. 
 >
> Maybe with my SS you can tell me if I am at least on the right track there?

Well, with regards the last four custom fields, you certainly are, 
that's pretty much what they're designed for, but FirstName, LastName, 
e-mail address and telephone number will start to cause you massive 
issues due to data duplication.

Although you would be manually linking the tickets together, each time 
you raise a ticket for the same user, you have to re-enter the same 
information, and if any information changes, it won't be reflected on 
previous tickets, so if you look at an old ticket and want to call the 
customer, you'd have to check the most recent ticket for the most recent 
phone number, instead of just getting the number from the user's (always 
up to date) information.

Also, you are then creating masses of data within the database that is 
unnecessary and in violation of data normalisation guidelines. You 
should only need to store each piece of information about one object 
once, not once per ticket.. so you're massively increasing the amount of 
data to store and it will eventually have an impact on the total size 
and speed of the database as a whole.

If you create a user for each customer as they advise you of an issue 
(either manually, or through a myriad of automagical ways), then you can 
add as much information as you need to about the user in the user 
information fields, add as many user custom fields as you want for extra 
information about that user and then ANY time you are looking at a 
ticket belonging to that user, you are linking straight to the user's 
account and their full information, even if you change it.

Tickets should only need to hold information that changes for each 
ticket raised.
Users should only need to hold information that changes for each user.

Then, turn off the e-mailing of replies to users and bingo - a scalable, 
usable, logical system.


> You seem to know a lot about RT and how it works

I didn't used to, I've just been tweaking it for so long I've been past 
most of the code and added a lot of my own.

> , and I am admittedly not a
> programmer by any means LOL!  

Me either, I wish I was, then it wouldn't take so long :p

 > But do you know if it is possible for RT (I
> couldn't find it when I searched Google) to automatically enter the time
> worked based on the time elapsed between when the ticket was opened and when
> it was updated? I guess(?) that if an issue remained unresolved and the
> customer called back it would have to add time to said ticket on each
> update?  I will keep searching for this on my own, but figured it couldn't
> hurt to ask.

I don't see why not. I might be wrong about the *best* way to do it, but 
it certainly seems you could add a custom scrip action to do it.

Pseudocode:

"On Ticket->Update, Ticket->Worked = Ticket->Updated() - Ticket->Created()"

Although, you might need to convert the times into Unix time, then do 
the sums and then convert back again.

> Thanks for all of your help. I am going to take those suggestions and
> implement them as well to make sure that if this needs to scale up
> eventually, which I am sure it will, that I don't get caught in a nightmare
> that I cannot get out of.

Good plan. Just make sure to keep an eye out for others who know less 
than you, because without those who know more to help out those who know 
less, RT would never be the great, widely-used system it is.


-- 
Kind Regards,

__________________________________________________

Mike Peachey, IT
Tel: +44 114 281 2655
Fax: +44 114 281 2951
Jennic Ltd, Furnival Street, Sheffield, S1 4QT, UK
Comp Reg No: 3191371 - Registered In England
http://www.jennic.com
__________________________________________________



More information about the rt-users mailing list