Originally asked by Francis Martens (Exalate) on 24 January 2022 (original question)
Hi,
Our use case is as follows:
We do have an external JIRA which acts as helpdesk for our clients.
We do have an internal JIRA which acts as issue tracker for our developers.
This setup has been chosen because we did not want to open our internal JIRA to the world since it can include confidential data.
If a client reports a bug we do not yet have in our issue tracker we use Exalate to clone the ticket into an internal issue that we then update with some additional information manually.
If now further clients also report the same issue we will connect their tickets to the existing internal issue.
These process is done because we have various automation to inform the clients in the ticket about the progress of their cases based on the status of the internal issue.
So the use case in a nutshell is to connect customer tickets to internal issues retrospectively.
Does that make sense to you?
Let me know if something is not clear. If you can think about a better solution for our use case, feel free to share your thoughts.
Answer by Francis Martens (Exalate) on 24 January 2022
Hi,
One of the approaches I can think of is as follows.
A customer raises a ticket X which is similar to a previous ticket (which has been exalated)
The support engineer enters in a custom field ‘Similar Ticket’ the issue key of the original (local) ticket
An exalate trigger picks up the fact that this custom field has been provided, and exalates the ticket towards the internal Jira
the incoming script of the connection finds out that the custom field ‘Similar Ticket’ has a value and connects it to the twin issue of the original ticket (see later)
a syncbackAfterprocessing ensures that the information of the twin issue is sent back
if (firstSync) {
if (replica.customFields."Similar Ticket") [
def originalTwinId = nodeHelper
.getLocalIssueKeyFromRemoteUrn(
replica.customKeys."Similar Ticket","issue")?.id
// connect the ticket with the original twin issue
issue.id = originalTwinId
}
}
...