[rt-users] auto assignment of queue and owner via autoreply template

Ken Crocker kfcrocker at lbl.gov
Fri Jul 17 13:27:36 EDT 2009


Testwreq,

I do the same thing, only I use a Custom Field called "CFO-Org". When a 
ticket is created, that CF MUST be selected and based on that value, I 
pre-assign the ticket owner. It looks like this:

Condition: On Create
Action: User-defined

Custom Prep Code:

my $trans = $self->TransactionObj;
my $ticket = $self->TicketObj;

#
# set new ticket owner id value
#
#    42 - Bob
#   148 - Carole
#  5125 -  Ted
#  9324 - Alice
# 73886 -  Frank
#

my %orgs = qw(
           Budget-Direct   148
           Budget-Indirect 148
           Controller-AP   5125
           Controller-AR   73886
           Controller-GA   148
           Controller-PR   42
           Facilities      42
           Field OPS       42
           OCFO-Other      42
           Procurement     9324
           Property        9324
           SPO             73886
           Travel          5125
           Other           42
          );

my $cf = new RT::CustomField($RT::SystemUser);
$cf->LoadByName(Queue => $ticket->QueueObj->id,Name => "CFO-Org");
return 0 unless $cf->id;
my $cfvalue = $ticket->FirstCustomFieldValue('CFO-Org'); 
my $ownerid = $orgs{$cfvalue};

# set Ticket Owner ID

$ticket->SetOwner($ownerid);

return 1;

Custom Clean-up Code:

return 1;

I hope this helps.

Kenn
LBNL

On 7/17/2009 8:19 AM, testwreq wreq wrote:
> All RT tickets are generated in the 'general' queue i.e. users want to 
> send all requests to rt at sunysb.edu <mailto:rt at sunysb.edu>. Before the 
> auto response is sent to the requestor, I want to assign the ticket to 
> an appropriate queue and owner.
>  
> For this, I have copied 'Autoreply' global template to the 'general' 
> queue.
>  
> I am new to perl & RT and was wondering if RT perl gurus help. I want 
> to accomplish writing if ..else... conditions to assign an owner 
> and queue based on subject within this autoreply template before an 
> autoreply is generated. One of the RT gurus had helped me to assign an 
> owner to the web queue, when tickets were generated for the web queue 
> (rt-web at sunysb.edu <mailto:rt-web at sunysb.edu>); Generally, a second 
> notification is sent out for auto assignment of owner but the 
> suggested way by RT guru did not send the second notification. 
> Therefore, I would like accomplish this by using a local autoreply 
> template.
>  
> For example.. to assign the ticket to the database queue, my search 
> will be on keywords like 
> 'database,mysql,sql,oracle,accounts,sqlserver,graddb' ; For network 
> queue, my search will be based on keywords like  'network, power, NTP, 
> www, slow, port, timeout, dns, wireless, remote, nfs, vpn, net, 
> subnet, telecon, router, switch, ftp '
> Currently, I have 6 scrips in the general queue that assigns queue and 
> owner. I would like to combine these together within the 'Autoreply' 
> template.
>  
> Any help & responses to this mailing will be appreciated!
>  
> Example scrip for database in the "general" queue:
> ======================================
> ###<<Custom Action Prep Code>>
> my $data = 'database,mysql,sql,oracle,accounts,sqlserver,graddb';
> my @match = split(',', $data);
> my $t_subject = $self->TicketObj->Subject;
> foreach my $val (@match) {
>   if ($t_subject =~ /^${val}\W/i ||
>       $t_subject =~ /\W${val}\W/i ||
>       $t_subject =~ /\W${val}$/i)
>   {
>      return 1;
>   }
> }
>  return 0;
>  
> ###<<Custom Action Cleanup code>>
>  
> my $newqueue = "4";
> my $newowner = "brian";
> my $T_Obj = $self->TicketObj;
> $RT::Logger->info("Auto assign ticket #". $T_Obj->id ." to queue #". 
> $newqueue );
> my ($status, $msg) = $T_Obj->SetQueue($newqueue);
> unless ($status) {
>     $RT::Logger->warning("unable to set new queue: $msg");
>     return undef;
> }
> $RT::Logger->info("Auto assign ticket #". $T_Obj->id ." to user #". 
> $newowner );
> my ($status, $msg) = $self->TicketObj->SetOwner( $newowner );
> unless( $status ) {
>     $RT::Logger->error( "Impossible to assign the ticket to $newowner: 
> $msg" );
>     return undef;
> }
> return 1;
> ------------------------------------------------------------------------
>
> _______________________________________________
> http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users
>
> Community help: http://wiki.bestpractical.com
> Commercial support: sales at bestpractical.com
>
>
> Discover RT's hidden secrets with RT Essentials from O'Reilly Media. 
> Buy a copy at http://rtbook.bestpractical.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bestpractical.com/pipermail/rt-users/attachments/20090717/9138d4df/attachment.htm>


More information about the rt-users mailing list