SetCorresponderAsCC

From Request Tracker Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Contributed by Fahd S.

Overview This custom action sets the corresponder as CC. A Queue is being worked on by a fixed group of support staff. The are all AdminCC and a template notifies them via email when a new ticket is created. The support staff replies/comments mostly via email. The problem was that no staff member was aware of what another staff member had replied b/c they never use the web interface. This scripts add all corresponders to CC to keep them abreast of updates to the ticket.

Description: SetCorresponderAsCC
Condition: On Correspond
Action: User Defined
Custom action preparation code:
 #uncomment Logger stuff for debuging
 #$RT::Logger->debug('Running Script TestScriptAddCC');

 my $Actor = $self->TransactionObj->Creator;
 my $Corresponder_id = $self->TransactionObj->CreatorObj->PrincipalId;
 my $OwnerEmail = $self->TicketObj->OwnerObj->EmailAddress();

 # exit if actor is RT_SystemUser
 return 1 if $Actor->id == $RT::SystemUser->id;


 # get out if corresponder is already requestor,cc or admincc.


 if ( $self->TicketObj->IsWatcher( Type => 'Requestor', PrincipalId => $Corresponder_id)  ){
     #$RT::Logger->debug("TestScriptAddCC - Corresponder is Requestor, exit");
     return 1;
 }

 if ( $self->TicketObj->IsWatcher( Type => 'Cc', PrincipalId => $Corresponder_id)  ){
     #$RT::Logger->debug("TestScriptAddCC - Corresponder is in CC, exit");
     return 1;
 }

 if ( $self->TicketObj->IsWatcher( Type => 'AdminCc', PrincipalId => $Corresponder_id)  ){
     #$RT::Logger->debug("TestScriptAddCC - Corresponder is in AdminCC, exit");
     return 1;
 }

 #RuslanZakirov's check
 my ($status, $msg) = $self->TicketObj->AddWatcher(
     Type => "Cc",
     PrincipalId => $Corresponder_id
 );

 unless ( $status ) {
     $RT::Logger->error("Couldn't add watcher: $msg");
 }

 return 1;

Template: Global template: Blank

Note: On rt-3.6.1, I had to use $Actor instead of $Actor->id.

Thanks to all those who contribute ....