diff --git a/Scrip25.txt b/Scrip25.txt new file mode 100644 index 0000000..3d6953a --- /dev/null +++ b/Scrip25.txt @@ -0,0 +1,74 @@ +#Check and change queue as required + +# On create +# User Defined + +my $txn = $self->TransactionObj; +my $type = $txn->Type; +my $ticket = $self->TicketObj; + +if ($ticket->Status() ne "New") { + return 0; +} + +return 1; + + +# Custom action + +return 1; + +# Commit: + +my $ticket = $self->TicketObj; +my $queue = $ticket->FirstCustomFieldValue('Hub Queue'); + +#if ($ticket->Status() ne "new") { +# return 1; +#} + + +#This potentially means that the email is spam if it's missing, so we could potentially move it somewhere else? +if ($ticket->FirstCustomFieldValue('Inquirer Email') eq '') { + return 0; +} + +$ticket->Comment(Content => 'AUTO: Scrip #25New ticket. Current queue is: '.$ticket->QueueObj->Name.'. Required queue is: '.$queue); + +#Now change Queue +#Get current queue?: +if (($queue eq $ticket->QueueObj->Name) || ($queue eq "")) { + $ticket->Comment(Content => 'AUTO: Scrip #25 Leaving in current queue'); + my ($status, $msg) =$ticket->SetStatus('Inquirer Autoresponse Sent'); + +} else { + my ($status, $msg) = $ticket->SetQueue( $queue); + if ($status == 0) { + $ticket->Comment(Content => 'AUTO: Scrip #25 Error changing queue to: '.$queue.' - '.$msg); + } else { + $ticket->Comment(Content => 'AUTO: Scrip #25 Changing queue to: '.$queue); + my ($status, $msg) =$ticket->SetStatus('Inquirer Autoresponse Sent'); + } +} + +# Check and assign Queue Managers ======= +my $groupname; +if (( $ticket->QueueObj->Name) eq "Contact Facilitator") { + $groupname="Inquiries - Contact Facilitator"; +} elsif (( $ticket->QueueObj->Name) eq "Contact North America") { + $groupname="Inquiries - Hub North America"; +} else { + $groupname="Inquiries - Test"; +} + +my $groupObj = RT::Group->new($RT::SystemUser); +$groupObj->LoadUserDefinedGroup($groupname); +return undef unless $groupObj; + +my $role = RT::CustomRole->new( $self->CurrentUser ); +$role->Load( "Queue Managers" ); + +my ($success, $msg) = $self->TicketObj->AddWatcher( Type => $role->GroupType, PrincipalId => $groupObj->Id ); + +return 1; + diff --git a/Scrip26.txt b/Scrip26.txt new file mode 100644 index 0000000..90f2612 --- /dev/null +++ b/Scrip26.txt @@ -0,0 +1,68 @@ +#Enhanced send equirer email: + + + + + +#Custom condition: +# This script first checks if the inquirer has already been messaged +# Then assembles email +# Sends email +# Sets flag that inquirer has already been messaged. + +my $txn = $self->TransactionObj; +my $type = $txn->Type; +return 0 unless $self->TicketObj->FirstCustomFieldValue('Inquirer Auto-Response Sent') ne 'Yes'; + +return 0 unless $type eq "Status" || ( $type eq 'Set' && $txn->Field eq 'Status'); +return 0 unless $self->TicketObj->Status eq "Inquirer Autoresponse Sent"; +return 1; + + +# Custom Action Preparation Code: + +require RT::Action::SendEmail; +use strict; +use vars qw/@ISA/; +@ISA = qw(RT::Action::SendEmail); +$self->SetRecipients(); + +$self->SUPER::Prepare(); +$self->SUPER::Commit(); + +sub SetRecipients { +my $self = shift; +my $ticket = $self->TicketObj; +my ( @To, @PseudoTo, @Cc, @Bcc ); +my $arg ='Owner,Requestor,AdminCc,Cc'; +##Requestor +#push @To, $ticket->Requestors->MemberEmailAddresses; +push @To, $ticket->FirstCustomFieldValue('Inquirer Email'); + +my $creator = "Davis Admin"; +@{ $self->{'To'} } = @To; + +} + +my $value_set = $self->TicketObj->AddCustomFieldValue(Field => 'Inquirer Auto-Response Sent', Value => 'Yes'); +# $self->TicketObj->Comment(Content => 'AUTO Scrip #26 changing sent status:- '.$value_set); +unless ($value_set) { + $RT::Logger->error("Failed to set custom field value for 'Inquirer Auto-Response Sent'"); + return 0; +} + +$RT::Logger->error($self->TransactionObj->Type); +$RT::Logger->error($self->TransactionObj->NewValue); + +1; + +# Custom Commit Code: +# Now move ticket to next step as required. +my $ticket = $self->TicketObj; +$ticket->Comment(Content => 'AUTO Scrip #26 - sent email to inquirer'); + + my ($status, $msg) =$ticket->SetStatus('Redacted Facilitator Email Sent'); + + +1; + diff --git a/Scrip27.txt b/Scrip27.txt new file mode 100644 index 0000000..b42ec93 --- /dev/null +++ b/Scrip27.txt @@ -0,0 +1,72 @@ +# Enhanced send facilitator initial email +# Custom conditions +# Custom Email +# Template - Send Facilitator Email + +# Conditions: + +# This script first checks for correct status +# Then assembles email +# Sends email + +my $txn = $self->TransactionObj; +my $type = $txn->Type; + +return 0 unless $type eq "Status" || ( $type eq 'Set' && $txn->Field eq 'Status'); +return 0 unless $self->TicketObj->Status eq "Redacted Facilitator Email Sent"; +return 1; + + +# Custom preparation: + + +require RT::Action::SendEmail; +use strict; +use vars qw/@ISA/; +@ISA = qw(RT::Action::SendEmail); + +#STOP RACE CONDITION! +if ($self->TicketObj->Status() ne "Redacted Facilitator Email Sent") { + if ($self->TicketObj->Status() ne "Re-send Facilitator Email") { + return 0; + } +} + +$self->SetRecipients(); +$self->SUPER::Prepare(); +$self->SUPER::Commit(); +sub SetRecipients { +my $self = shift; +my $ticket = $self->TicketObj; +my ( @To, @PseudoTo, @Cc, @Bcc ); +my $arg ='Owner,Requestor,AdminCc,Cc'; +##Requestor +#push @To, $ticket->Requestors->MemberEmailAddresses; +push @To, $ticket->FirstCustomFieldValue('Facilitator Email'); + +my $creator = "Davis Admin"; +@{ $self->{'To'} } = @To; + +} + +1; + + +# Custom Commit + +#Move to Redacted Facilitator email sent. + +my $ticket = $self->TicketObj; +my $facilitator = $ticket->FirstCustomFieldValue('Facilitator Email'); + +if ($ticket->FirstCustomFieldValue('Facilitator Email') eq '') { + return 0; +} + +$ticket->Comment(Content => 'AUTO Scrip #27: Email sent. Facilitator is: '.$ticket->FirstCustomFieldValue('Facilitator Email')); + +#$ticket->Comment(Content => 'AUTO Scrip #27: Redacted Facilitator Email Sent'); +#my ($status, $msg) = $ticket->SetStatus('Redacted Facilitator Email Sent'); + +return 1; + diff --git a/Scrip28.txt b/Scrip28.txt new file mode 100644 index 0000000..ced9b2f --- /dev/null +++ b/Scrip28.txt @@ -0,0 +1,69 @@ +# Enhanced Send Facilitator Unredacted Email +# +# +# Template - Demo Send Facilitators Full Email + +# Custom Conditions: + +# This script first checks for correct status +# Then assembles email +# Sends email + +my $txn = $self->TransactionObj; +my $type = $txn->Type; + +return 0 unless $type eq "Status" || ( $type eq 'Set' && $txn->Field eq 'Status'); +return 0 unless $self->TicketObj->Status eq "Facilitator Accepted"; +return 1; + +# Custom Preparation + +require RT::Action::SendEmail; +use strict; +use vars qw/@ISA/; +@ISA = qw(RT::Action::SendEmail); + +#STOP RACE CONDITION! +if ($self->TicketObj->Status() ne "Facilitator Accepted") { + return 0; +} + +$self->SetRecipients(); +$self->SUPER::Prepare(); +$self->SUPER::Commit(); +sub SetRecipients { +my $self = shift; +my $ticket = $self->TicketObj; +my ( @To, @PseudoTo, @Cc, @Bcc ); +my $arg ='Owner,Requestor,AdminCc,Cc'; +##Requestor +#push @To, $ticket->Requestors->MemberEmailAddresses; +push @To, $ticket->FirstCustomFieldValue('Facilitator Email'); + +my $creator = "Davis Admin"; +@{ $self->{'To'} } = @To; + +} + +1; + +# Custom commit + +# Move to Full Facilitator Email Sent and detailed email sent. + +my $ticket = $self->TicketObj; +my $facilitator = $ticket->FirstCustomFieldValue('Facilitator Email'); + +if ($ticket->FirstCustomFieldValue('Facilitator Email') eq '') { + return 0; +} + +$ticket->Comment(Content => 'AUTO Scrip #28: Email with all details sent. Facilitator is: '.$ticket->FirstCustomFieldValue('Facilitator Email')); + +$ticket->Comment(Content => 'AUTO Scrip #28: Changing status to "Full Facilitator Email Sent"'); +my ($status, $msg) = $ticket->SetStatus('Full Facilitator Email Sent'); + +return 1; + + + diff --git a/Scrip29.txt b/Scrip29.txt new file mode 100644 index 0000000..1c70330 --- /dev/null +++ b/Scrip29.txt @@ -0,0 +1,50 @@ +# On receiving email (On correspondence): +# - Set Action Needed custom flag + +# Custom condition: + +return 0 unless $self->TransactionObj->Type eq "Correspond"; +return 0 unless $self->TicketObj->FirstCustomFieldValue('Action Needed') ne "Yes"; + +#$self->TicketObj->Comment(Content => 'AUTO Scrip #29 Setting Action Needed - Condition'); + + + +#return 0 unless $self->TicketObj->Transactions->Last eq 'Email'; +#return 0 unless $self->TicketObj->Transactions->Last->CreatorObj->Privileged; + +1; + + +# Custom action preparation code: + +1; + + +# Custom action commit code: + +#Set custom flag on receiving external email + +my $transaction = $self->TransactionObj; +my $creator_id = $transaction->Creator; + +# Get the Ticket object +my $ticket = $self->TicketObj; + +# Retrieve the most recent transaction (action) +my $last_transaction = $ticket->Transactions->Last; + +# Access the description of the last transaction +my $last_transaction_description = $last_transaction->Description; + +if ($last_transaction_description eq 'Outgoing email recorded by RT_System') { + $self->TicketObj->Comment(Content => 'AUTO Scrip #29 Setting Action Needed - Commit + '.$last_transaction_description); +} else { + $self->TicketObj->AddCustomFieldValue(Field => 'Action Needed', Value => 'Yes'); +} + + +return 1; + +