Custom Field to populate the topic before we used custmo field extractor Condition: OnCreate Action: User Defined Template: Global blank Stage: TransactionCreate Custom prep code: return 1; custom cleanup code: my $attachment = $self->TransactionObj->Attachments->First(); my $toHeader = $attachment->GetHeader('To'); my $topic = 'other'; if ($toHeader =~ /olc-(\w+)\@mit\.edu/i) { $topic = $1; } my $cf = RT::CustomField->new( $RT::SystemUser ); $cf->LoadByName( Queue => $self->TicketObj->QueueObj->Id, Name => 'Topic' ); $self->TicketObj->AddCustomFieldValue( Field => $cf, Value => $topic ); return 1; -------------------------------------------------- Zephyr on ticket creation Condition: OnCreate Action: User Defined Template: Global blank Stage: TransactionCreate Custom prep code: return 1; custom cleanup code: my $tkt = $self->TicketObj; my $topic = 'unspecified'; if ($tkt->CustomFieldValues('Topic')->First) { $topic = $tkt->CustomFieldValues('Topic')->First->Content; } my $addr = ($tkt->RequestorAddresses)[0]; if (! $addr) { # Flag this for later $self->TicketObj->SetPriority(1); return 1; } my $subj = $tkt->Subject(); my $id = $tkt->Id(); my $msg = "New Question from $addr\n"; $msg .= "Topic: $topic\n"; $msg .= "Subject: $subj\n"; $msg .= "RT Ticket: $id"; system('/usr/athena/bin/zwrite', '-d', '-c', 'consult-auto', '-s', 'RT on help.mit.edu', '-m', $msg); return 1;