Multiple RT systems interaction thoughts


I use (play with) RT 3.8.7.

We installed several RT instances for different teams. Each (big)
team has its own RT instance because each one has different processes,
and managing all of them in the same instance would be a real big
mess. So everything is fine in each instance, but sometimes different
teams have to work together. And to do this, my goal is to make
multiple RT systems talk to each other.

Here is an example:

One RT system is the HelpDesk RT, the other one is the Developers RT.
When there is an incoming request in the Helpdesk RT, the helpdesk may
choose to forward the ticket to the development (if it’s appropriate).
The new “Forward” feature of the full ticket is nice to do this: they
send it to the email address of the developers RT. So let’s say they
click forward, developers have a new ticket with all the content in
the interface. They work on it, resolve it. But what happens to the
first helpdesk RT ? Either they choose to close it once it’s forwarded
(meaning they don’t manage the request anymore), but in most of the
cases, they still have the users complaining so they have to know when
the request is resolved in the developer RT. And they have to find
this piece of information somewhere (and that’s painful).

I thought to the two ways communication:

  1. Helpdesk -> Developer : I would modify the forward page by adding
    a new button “Forward to the developper RT”. This option would forward
    the ticket to the developer RT system as the standard “Forward” button
    does, and add the current Helpdesk RT number as a “Link” or “Custom
    Field”. At this point, a new ticket is created in the developer RT
    system, with the original RT number in a Link/customfield.

  2. Developer -> Helpdesk: Then let’s say the developers work on the
    ticket, and resolve it. I would like to execute a scrip on the “on
    resolve” action to send a comment/correspondence to the helpdesk RT
    using the original ticket number in the custom field, with the REST
    API (easy I think). This way, Helpdesk ticket is updated when
    developer close the request.

and I would be happy (for now).

Here are my questions:

  • for 1), I have to forward an RT to another RT system and set a
    Link/Customfield, several ways:
    • I can send an email to developer’s RT email address and use
      CommandByEmail to set a Link/CustomField
    • use the REST API
    • use something else ?

I think REST is the best way but it’s not clear to me how to forward
a ticket with REST (include ticket header + attachments + history +
… ?).

It would be nice as well to set a Links/CustomField in the helpdesk
RT with the reference of the ticket created in the developer RT system
: can I get the Developer RT number once the ticket is created (with

I see in the current Forward.html page that
RT::Interface::email::ForwardTransaction and
RT::Interface::email::ForwardTicket, but I think I would need the same
with REST ?

  • for 2) I think it’s quite easy

and last question: what do you think of this process ?

It’s my first development with RT and REST API, I just played a
little bit with RT-Client-REST, so any help would be very much
appreciated !

PS: I would prefer custom fields to “Links” to store RT numbers because:

  1. users may use the “Links” field for other references
  2. an helpdesk ticket may be forwarded to a third RT, for example
    network RT, and I don’t want this second forward to overwrite the
    first reference. That’s why a customfield by RT system would be in my
    opinion better.