Integration between two ticketing systems
Asked by Andrew Buckwell:

Hi , Im encountering difficulties in finding a solution that can provide seamless integration between two ticketing systems. Currently we are testing several vendors and we are encountering an issue when we tackle a ticket and need to email another vendor which has his own ticketing system - this is creating 1, email looping ( with closing or resolved auto emails) 2, every reply is creating a new ticket

Can you please elaborate if Jira has a solution that can eradicate this issue - such that whenever we tackle an incident and we have to escalate with another client that has his own ticket system we dont encounter issues such as those mentioned above - basically we create our own ticket number it goes to the other supplier and the subject has another incident number creating unsyncing of tickets.

Regards


Answers:
author: Syed Majid Hassan -Exalate-
body: Hi [@Andrew Buckwell](/t5/user/viewprofilepage/user-id/5469832)

A very warm welcome to the community! This is Majid @ Exalate.

I see that [Exalate](https://marketplace.atlassian.com/search?query=issue%20sync) has already been recommended here as a possible solution (thank you [@Stephen_Lugton](/t5/user/viewprofilepage/user-id/5180770) ) and yes, it would fit this use case nicely. We do support quite a few ITSM systems OOTB and would be happy to engage with you further to discuss the nuances of the exact scenario you have.

Please feel free to [book a session here](https://exalate.com/book-demo/) and lets solve this.

Hope it helps.

Thanks


author: OpsHub - Enterprise class Integration and Migration Solutions for Jira
body: Hi [@Andrew Buckwell](/t5/user/viewprofilepage/user-id/5469832)

It seems that for every reply before integration creates a ticket in another vendor ticketing system, you require the integration to check if a ticket for the same thread already exists. If it does, it should update the existing ticket rather than creating a new one. Some sync tools can handle such scenarios, but it often becomes more complicated when tickets are cloned.

This problem of cloned tickets can be easily solved by [Opshub](https://www.opshub.com/), an Atlassian partner, offering a rich UI-based integration platform with zero scripting to meet all the complex data integration needs. You can easily integrate Jira with 60+ popular ALM tools, set up conflict resolution, retain data format, links, etc. It also allows you to create your connectors with all the customization you need. Feel free to contact our [integration experts](https://www.opshub.com/contact-us/) to discuss your integration use case.

Thanks,

OpsHub team


author: Diana_Architect_ZigiWave
body: [@Andrew Buckwell](/t5/user/viewprofilepage/user-id/5469832) , sorry to hear that you're dealing with such an issue. As Stephen mentioned, take a look at the Atlassian Marketplace. Also, feel free to look at one of the tools there - [ZigiOps](https://marketplace.atlassian.com/search?query=zigiops). It's fully no-code integration tool that [connects Jira instances (or other ticketing system) bi-directionally](https://www.zigiwave.com/apps/jira-integrations?utm_source=atls-jzigi&utm_medium=atls-jzigi&utm_campaign=atls-jzigi&utm_id=atls-jzigi) and syncs their data. It's fast and secure (does not store any of the data transferred). It can eliminate the issues you're currently dealing with (no email loops and waste of resources ad time). Feel free to explore it via the Free trial.

Regards, Diana


author: Ivan Ferreira
body: Once we did a POC using an automation rule that basically do this:

* When: Issue created
* If: {{issue.summary}} contains regular expression "Ticket #.\*Created"
  * Then: just log action
* Else if: {{issue.summary}} contains regular expression "Ticket #.\*New comment"
  * Then:
    * Get Ticket Number in a variable using {{issue.summary.match("Ticket # (.\*) New comment")}}
    * Get Ticket Comment in a variable using {{issue.description.match("Comentario:(.\*)")}}
    * Cancel the issue just created
    * Branch:
      * Find issue using JQL summary \~ "\\"Ticket # {{SyshelpTicket}} Created\\""
      * Comment on issue ussing variable {{Comment}}
* Else if:
  * {{issue.summary}} contains regular expression "Ticket #.\*Closed"
  * Then:
    * Get Ticket Number in a variable using {{issue.summary.match("Ticket # (.\*)Closed")}}
    * Cancel the issue just created
    * Branch:
      * Find issue using JQL summary \~ "\\"Ticket # {{SyshelpTicket}} Created\\""
      * Transition issue to RESOLVED

Maybe it's not the best solution, but it works.

What you are doing here is running rules based on the issue description. The system adds to the description the action that was fired by the ticketing system. For example Ticket #12345 Created, Ticket #12345 Commented, Ticket #12345 Closed.

Using automation rules, you can create, comment or close the first ticket based on the summary of each new ticket, and each new ticket get cancelled/deleted so you only keep the first one.

This works only with one way sync.


author: Stephen_Lugton
body: [@Andrew Buckwell](/t5/user/viewprofilepage/user-id/5469832) we use an addon Exalate to sync between our Jira system and our suppliers Jira system, without knowing what system your client / vendor uses, I'd suggest looking at the [app marketplace](https://marketplace.atlassian.com/) to see if there's an app to sync with whatever system your client uses.

comments: author: Andrew Buckwell
body: thanks Stephen - So with your exalate app you dont have issues raising incidents requests in between. What anout Jira and Freshservice (which is our suppliers' ITSM ticket system ) do you know if there is integration?

best Regards


author: Stephen_Lugton
body: [@Andrew Buckwell](/t5/user/viewprofilepage/user-id/5469832) I don't know anything about Freshservice, but have a look at <https://marketplace.atlassian.com/search?query=freshservice> to see if any of these would meet your needs.