Givano,

I have a scrip that sets the owner based on the value in a Custom Field.
Look at it and modify it to meet your needs:

# Custom Action preparation code

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

#
# set new ticket owner id value
#
#    42 -  Bob
#   148 - Carol
#  5125 - Ted
#  9324 - Alice
#

my %orgs = qw(
           Budget         148
           Controller      5125
           Facilities      42
           Field-OPS    5125
           Property       9324
           SPO            148
           Travel           5125
           Other           42
          );

my $cf = new RT::CustomField($RT::SystemUser);
$cf->LoadByName(Queue => $ticket->QueueObj->id,Name => "CFO-Org");

# check for valid CF-Org value first,
# then set new Ticket Owner ID

if ($cf->id)
    {
     my $cfvalue = $ticket->FirstCustomFieldValue('CFO-Org');
     my $ownerid = $orgs{$cfvalue};
     $ticket->SetOwner($ownerid);
    }

return 1;

You could easily replace the owner Ids with your email address and instead
of setting the ownerid, set the "To" address or whatever.

Anyway, hope this helps. It sure works for us.

Kenn
LBNL

On Mon, May 3, 2010 at 8:49 AM, Givano <[email protected]> wrote:

> Hi,
>
> I'm trying to send an email from template, initiated by rt-crontool as
> described in wiki, the only trick is that dependent on custom field it
> should be sent to other persons group. Here my template, somehow it always
> send to user1 and user 2.
>
> ########################
> Subject: new ticket, 30 minutes unowned!
> RT-Send-Cc: { my $values = $Ticket->CustomFieldValues('CIT_Category');
>   my $OUTPUT;
>   my $CFValue;
>   while ( my $value = $values->Next ) {
>     $CFValue = $value->Content;
>     if ($CFValue == 'IT Facilites') { $OUTPUT = '[email protected],
> [email protected]' }
>     elsif ($CFValue == 'Linux/Network') { $OUTPUT =  '[email protected],
> [email protected]' }
>     elsif ($CFValue == 'Phone') { $OUTPUT =  '[email protected], [email protected]'
> }
>     elsif ($CFValue == 'Windows') { $OUTPUT =  '[email protected],
> [email protected]' }
>   }
>   $OUTPUT;
> }
>
> The ticket {$Ticket->id} stayed unowned for 30 minutes.
>
> Please do a categorisation, assign optionally an owner!
> ######################################
>
> Any idea what I'm doing wrong, maybe there is some, more elegant method to
> do a custom field based escalation, here is how I'am starting the
> rt-crontool:
>
> rt-crontool --search RT::Search::FromSQL --search-arg "id = 23331" --action
> RT::Action::RecordComment --template 'UnownedNotifyWatcherLevel1'
>
> Thanks in advance,
>
> Ivan Samarin
>
>
>
> Discover RT's hidden secrets with RT Essentials from O'Reilly Media.
> Buy a copy at http://rtbook.bestpractical.com
>
Discover RT's hidden secrets with RT Essentials from O'Reilly Media.
Buy a copy at http://rtbook.bestpractical.com

Reply via email to