SetCustomFieldViaMail
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;