Difference between revisions of "SetCustomFieldViaMail"

From Request Tracker Wiki
Jump to navigation Jump to search
Line 17: Line 17:
PREPARATION CODE:
PREPARATION CODE:


return 1;
    return 1;


CLEANUP CODE:
CLEANUP CODE:


my $to = $self->TransactionObj->Attachments->First->GetHeader('To');
    my $to = $self->TransactionObj->Attachments->First->GetHeader('To');
   
if ($to =~/^partial\@.*\.?yourdomain\.net/) {
    if ($to =~/^partial\@.*\.?yourdomain\.net/) {
$self->TicketObj->AddCustomFieldValue( Field => 'Region', Value => 'ONE' );
      $self->TicketObj->AddCustomFieldValue( Field => 'Region', Value => 'ONE' );
}
    }
   
if ($to =~/fixed\@.*\.?yourdomain\.net/) {
    if ($to =~/fixed\@.*\.?yourdomain\.net/) {
$self->TicketObj->AddCustomFieldValue( Field => 'Region', Value => 'TWO' );
      $self->TicketObj->AddCustomFieldValue( Field => 'Region', Value => 'TWO' );
}
    }
   
$self->TicketObj->SetPriority( 1 );
    $self->TicketObj->SetPriority( 1 );
   
return 1;
    return 1;


== EXAMPLE 2: CF Value based on requestor's email address (returns $1 @ $2) ==
== EXAMPLE 2: CF Value based on requestor's email address (returns $1 @ $2) ==

Revision as of 23:35, 20 February 2019

RT 3.8

The following example Scrips will help set ticket's CF values, change title or parameters, and notify specific groups based on email properties as detected by RT; Examples partially based on older WiKi entries and adapted where needed. CF names and values are purely fictional examples, please don't copy and paste without proper understanding of setup and requirements. Requestors will need appropriate permissions to create/modify CF values for this to work.

Posted & Tested on 3.8.7 by webdelic@gmail.com

EXAMPLE 1: CF Value based on destination email address

Condition:  OnCreate
Action:  User Defined
Template: Global template: Transaction
Stage: TransactionCreate

CUSTOM CONDITION:

PREPARATION CODE:

   return 1;

CLEANUP CODE:

   my $to = $self->TransactionObj->Attachments->First->GetHeader('To');
   
   if ($to =~/^partial\@.*\.?yourdomain\.net/) {
     $self->TicketObj->AddCustomFieldValue( Field => 'Region', Value => 'ONE' );
   }
   
   if ($to =~/fixed\@.*\.?yourdomain\.net/) {
     $self->TicketObj->AddCustomFieldValue( Field => 'Region', Value => 'TWO' );
   }
   
   $self->TicketObj->SetPriority( 1 );
   
   return 1;

EXAMPLE 2: CF Value based on requestor's email address (returns $1 @ $2)

   Condition:  OnCreate
   Action:  User Defined
   Template: Global template: Transaction
   Stage: TransactionCreate

CUSTOM CONDITION:

PREPARATION CODE:

   return 1;

CLEANUP CODE:

   my $ticketRequestor = lc($self->TicketObj->RequestorAddresses);
   $ticketRequestor =~ /(^.+)@([^\.].*\.[a-z]{2,}$)/;
   
   if ( $1 =~ /^username$/m ) {
     $self->TicketObj->AddCustomFieldValue( Field => 'Region', Value => 'ONE' );
   }
   
   if ( $2 =~ /^yourdomain.net$/m ) {
     $self->TicketObj->AddCustomFieldValue( Field => 'Region', Value => 'TWO' );
   }
   
   $self->TicketObj->SetPriority( 1 );
   
   return 1;

EXAMPLE 3: CF & Title change based on requestor's email address (returns $1 @ $2)

Condition:  OnCreate
Action:  User Defined
Template: Global template: Transaction
Stage: TransactionCreate

CUSTOM CONDITION:

PREPARATION CODE:

return 1;

CLEANUP CODE:

my $ticketRequestor = lc($self->TicketObj->RequestorAddresses);
$ticketRequestor =~ /(^.+)@([^\.].*\.[a-z]{2,}$)/;

if ( $2 =~ /^gmail.com$/m ) {
$self->TicketObj->AddCustomFieldValue( Field => 'Some CF', Value => 'SOME VALUE' );
$self->TicketObj->AddCustomFieldValue( Field => 'Region', Value => 'ONE' );
$self->TicketObj->SetSubject ('TAG: '.$self->TicketObj->Subject);
}



EXAMPLE 4: Notify Groups based on req/destination email or CF Values

Pre-Requirements:

* You will have to create specific sub-groups and add members to be notified
 * You will need "rt-notify-group-admin" to create scrip Actions to notify the above sub-groups
 
 
 
 Condition:  User Defined
 Action:  Notify YOURGROUP
 Template: Global template: Transaction
 Stage: TransactionCreate
 
 

CUSTOM CONDITION:

my $to = $self->TransactionObj->Attachments->First->GetHeader('To');
my $ticketRequestor = lc($self->TicketObj->RequestorAddresses);
$ticketRequestor =~ /(^.+)@([^\.].*\.[a-z]{2,}$)/;

if ($to =~/^nms\@.*\.?yourdomain\.net/) {
$self->TicketObj->AddCustomFieldValue( Field => 'Type', Value => 'NAGIOS' );
return 1; } else { return 0;}

if ( $1 =~ /^nagios$/m ) {
$self->TicketObj->AddCustomFieldValue( Field => 'Type', Value => 'NAGIOS' );
return 1; } else { return 0;}


PREPARATION CODE:

return 1;

CLEANUP CODE:

return 1;

RT 3.6 and older

See AutomaticCustomFieldValue