Tickets from other Ticketsystem

Hello,

we have one customer using its own ticket system. This customer sends us mails with an information about his own ticket in the subject.
i.e. [PLUS.DE Ticket#PD077994]

sometimes when this customer answers, he doesn’t send our ticket number in subject, so he opens a new ticket.
Is it possible to identify a mail by this PLUS ticket number and add to our already opened ticket instead of open a new one?

Best regards
bernhard

we have one customer using its own ticket system. This customer sends us mails
with an information about his own ticket in the subject.

i.e. [PLUS.DE Ticket#PD077994]

sometimes when this customer answers, he doesn’t send our ticket number in
subject, so he opens a new ticket.

Is it possible to identify a mail by this PLUS ticket number and add to our
already opened ticket instead of open a new one?

Look at the code in

The function it hooks can be used to lie to RT and return a ticket
id of the existing ticket (as opposed to what this extension does,
which is suppress the ticket id so that a new ticket will be created).

-kevin

Hello Kevin,

I already thought about creating a scrip like
Condition:
Transaction obj = "create"
Subject contains “[plus ticket#”

Action:
Search tickets with same plus-ticket no.
If one exists, combine

What do you think about this solution? Or would you prefer the strongly modified plugin?

Best regards
Bernhard-----Ursprüngliche Nachricht-----
Von: rt-users [mailto:rt-users-bounces@lists.bestpractical.com] Im Auftrag von Kevin Falcone
Gesendet: Freitag, 22. August 2014 16:01
An: rt-users@lists.bestpractical.com
Betreff: Re: [rt-users] Tickets from other Ticketsystem

On Tue, Aug 19, 2014 at 05:36:04AM +0000, Eierschmalz, Bernhard wrote:

we have one customer using its own ticket system. This customer sends
us mails with an information about his own ticket in the subject.

i.e. [PLUS.DE Ticket#PD077994]

sometimes when this customer answers, he doesn’t send our ticket
number in subject, so he opens a new ticket.

Is it possible to identify a mail by this PLUS ticket number and add
to our already opened ticket instead of open a new one?

Look at the code in

The function it hooks can be used to lie to RT and return a ticket id of the existing ticket (as opposed to what this extension does, which is suppress the ticket id so that a new ticket will be created).

-kevin

Hello Kevin,

I already thought about creating a scrip like
Condition:
Transaction obj = "create"
Subject contains “[plus ticket#”

Action:
Search tickets with same plus-ticket no.
If one exists, combine

What do you think about this solution? Or would you prefer the strongly modified plugin?

Scrip runs after the second ticket is created and sends email. You
then Merge it.
The plugin never allows the second ticket to be created.

-kevin

Hello Kevin,

I know this is a very old mail below. I didn’t install the plugin in this times, because it was not so urgent.
But now I have the same problem again.

I read about the extension you mentioned. But I think there is one problem.
What I understood about the extension is:

  • when there is a new mail to an existing resolved ticket with defined ticket number
  • open a new ticket

What I need is the following

  • when there is a new mail to a new ticket AND the subject is starting with defined syntax
  • check if there is any ticket with almost the same subject
  • attach the new mail to the existing ticket instead of opening a new one.

So the difference is that the extension searches for a ticket with defined number - what I need is to search for any existing ticket with a defined syntax.

Are you sure the extension would work in my case?
Can you tell me how to use it?

Best regards
BernhardVon: rt-users [mailto:rt-users-bounces@lists.bestpractical.com] Im Auftrag von Kevin Falcone
Gesendet: Mittwoch, 3. September 2014 22:34
An: rt-users@lists.bestpractical.com
Betreff: Re: [rt-users] Tickets from other Ticketsystem

Hello Kevin,

I already thought about creating a scrip like
Condition:
Transaction obj = "create"
Subject contains “[plus ticket#”

Action:
Search tickets with same plus-ticket no.
If one exists, combine

What do you think about this solution? Or would you prefer the strongly modified plugin?

Scrip runs after the second ticket is created and sends email. You then Merge it.
The plugin never allows the second ticket to be created.

-kevin

-----Ursprüngliche Nachricht-----
Von: rt-users [mailto:rt-users-bounces@lists.bestpractical.com] Im
Auftrag von Kevin Falcone
Gesendet: Freitag, 22. August 2014 16:01
An: rt-users@lists.bestpractical.com
Betreff: Re: [rt-users] Tickets from other Ticketsystem

we have one customer using its own ticket system. This customer
sends us mails with an information about his own ticket in the subject.

i.e. [PLUS.DE Ticket#PD077994]

sometimes when this customer answers, he doesn’t send our ticket
number in subject, so he opens a new ticket.

Is it possible to identify a mail by this PLUS ticket number and add
to our already opened ticket instead of open a new one?

Look at the code in
https://github.com/bestpractical/rt-extension-repliestoresolved

The function it hooks can be used to lie to RT and return a ticket id of the existing ticket (as opposed to what this extension does, which is suppress the ticket id so that a new ticket will be created).

-kevin

RT Training - Boston, September 9-10
http://bestpractical.com/training

Hello Kevin,

I found a solution on my own now - maybe interesting for somebody.
Quick discription:

  1. I recognize the external ticket number with regex from subject and write this number to a Custom Field
  2. search for existing tickets with same value in same Custom Field and merge the tickets

Now how I did:

Step 1: create a custom field for all queues used for the external ticket number.

Step 2: Create the following Scrip:

CustomIsApplicableCode: (at this part we check with if a ticket is created from a valid address with a valid regex-syntax for external ticket system)
# only on creating tickets
return 0 unless $self->TransactionObj->Type eq “Create”;

my $subject = $self->TransactionObj->Subject;
return 0 unless defined($subject);

# mail-addresses from other ticket systems
my @ticketsender = ('...'); #<-- this is an array of addresses or parts of addresses wich are recognized for other ticketsystem-verification.

my $ticketRequestor = lc($self->TicketObj->RequestorAddresses);

if ( $subject =~ / \[plus ticket\d{8}\]/) #<-- regex-code for other external ticket numbers in message subject
{
  foreach (@ticketsender)
  {
     if ($ticketRequestor =~ /$_/) #<-- check if sender is permitted
     {
       return 1;
     }
  }
}
return 0; 

CustomPrepareCode (at this part we write the external ticket number to the custom field)
my $subject = $self->TransactionObj->Subject;

$subject =~ s/.*\[plus ticket//;
my $cfval = "PLUS".substr($subject,0,8); # <-- cfval contains the Value number of the external ticket plus some first letters to identify - this is to be able to add more external ticket numbers

# write to CustomField
my $cf = RT::CustomField->new ( $RT::SystemUser );
$cf->Load('21'); #<-- ID of the custom field from step 1
$self->TicketObj->AddCustomFieldValue ( Field => $cf, Value => $cfval );
return 1;

CustomCommitCode (at this part we search for already existing tickets with same CF and merge them)

my $extnr = $self->TicketObj->FirstCustomFieldValue('21'); #<-- load the custom field value

# find all the ticket  to the reference number from ticketsystem
my $search = new RT::Tickets(RT->SystemUser);
$search->LimitCustomField(CUSTOMFIELD => '21', OPERATOR => '=', VALUE => $extnr);

while (my $ticket = $search->Next)
{
    # ignore if finding the new ticket itself
    next if $self->TicketObj->Id == $ticket->Id;

    my $id = $ticket->Id;

    # Logging
    $RT::Logger->info("Merging ticket " . $self->TicketObj->Id . " into $id because of Reference number $extnr match.");

    # merge Tickets
    $self->TicketObj->MergeInto($id);
}

best regards,
BernhardVon: rt-users [mailto:rt-users-bounces@lists.bestpractical.com] Im Auftrag von Eierschmalz, Bernhard
Gesendet: Montag, 11. Mai 2015 10:44
An: rt-users@lists.bestpractical.com
Cc: falcone@bestpractical.com
Betreff: Re: [rt-users] Tickets from other Ticketsystem

Hello Kevin,

I know this is a very old mail below. I didn’t install the plugin in this times, because it was not so urgent.
But now I have the same problem again.

I read about the extension you mentioned. But I think there is one problem.
What I understood about the extension is:

  • when there is a new mail to an existing resolved ticket with defined ticket number
  • open a new ticket

What I need is the following

  • when there is a new mail to a new ticket AND the subject is starting with defined syntax
  • check if there is any ticket with almost the same subject
  • attach the new mail to the existing ticket instead of opening a new one.

So the difference is that the extension searches for a ticket with defined number - what I need is to search for any existing ticket with a defined syntax.

Are you sure the extension would work in my case?
Can you tell me how to use it?

Best regards
Bernhard

Von: rt-users [mailto:rt-users-bounces@lists.bestpractical.com] Im Auftrag von Kevin Falcone
Gesendet: Mittwoch, 3. September 2014 22:34
An: rt-users@lists.bestpractical.com
Betreff: Re: [rt-users] Tickets from other Ticketsystem

Hello Kevin,

I already thought about creating a scrip like
Condition:
Transaction obj = "create"
Subject contains “[plus ticket#”

Action:
Search tickets with same plus-ticket no.
If one exists, combine

What do you think about this solution? Or would you prefer the strongly modified plugin?

Scrip runs after the second ticket is created and sends email. You then Merge it.
The plugin never allows the second ticket to be created.

-kevin

-----Ursprüngliche Nachricht-----
Von: rt-users [mailto:rt-users-bounces@lists.bestpractical.com] Im
Auftrag von Kevin Falcone
Gesendet: Freitag, 22. August 2014 16:01
An: rt-users@lists.bestpractical.com
Betreff: Re: [rt-users] Tickets from other Ticketsystem

we have one customer using its own ticket system. This customer
sends us mails with an information about his own ticket in the subject.

i.e. [PLUS.DE Ticket#PD077994]

sometimes when this customer answers, he doesn’t send our ticket
number in subject, so he opens a new ticket.

Is it possible to identify a mail by this PLUS ticket number and add
to our already opened ticket instead of open a new one?

Look at the code in
https://github.com/bestpractical/rt-extension-repliestoresolved

The function it hooks can be used to lie to RT and return a ticket id of the existing ticket (as opposed to what this extension does, which is suppress the ticket id so that a new ticket will be created).

-kevin

RT Training - Boston, September 9-10
http://bestpractical.com/training