Jira can automatically update a Zendesk Support ticket linked to a Jira issue when the status of the issue changes in a Jira workflow.
A Jira workflow is the set of statuses and transitions that an issue goes through during its lifecycle. You can configure a workflow to automatically update a linked ticket after a Jira issue moves from one status to another in the workflow.
For example, after an engineer changes the Jira workflow status of an issue from "In progress" to "Done," Jira can automatically add an internal note to the linked Zendesk ticket notifying the agent. The agent can then notify the customer.
Jira can also automatically notify the agent that a developer is now working on an issue by adding an internal note to the ticket after the engineer changes the workflow status of the issue from "To do" to "In progress."
This article contains the following topics:
Understanding how the ticket updates work
Zendesk tickets are updated from Jira workflows using post functions. Post functions are a Jira workflow feature used to carry out additional processing after a workflow transition is executed. For example, a post function can update the issue's fields after a transition.
Post functions are added to workflow transitions, not statuses. They run after the transition is complete. Some post functions are essential and can't be deleted from a transition or reordered. However, you can insert optional post functions between them. The Zendesk integration adds "Notify Zendesk Ticket" to the list of optional post functions in Jira.
See the Atlassian documentation to learn more about post functions.
Configuring a workflow to update tickets
- In Jira, click the Settings (cog) icon on the left sidebar, and select Issues.
- On the Issues page, select Workflows from the left sidebar.
- Locate the workflow used to address issues linked to Zendesk tickets, and click
Edit on the right side of the workflow.Note: Jira doesn't let you edit a live workflow. You must edit it in draft mode.
- In the Transitions column, click the name of the transition you want to use to
trigger ticket updates.
- Click the Post Functions tab, then click the Add post function link on the
right.
- Select the Notify Zendesk Support post function from the list and click Add.
- Configure the ticket update settings, then click Add.
You can change the ticket status, add an internal or public comment, add tags, and include comment placeholders in the comment text.
Note: Deleting tags is not supported.
- Next to the Zendesk Support post function, select the move down icon to move it
underneath the "Add a comment to an issue if one is entered during a transition" post
function.
- Click Publish Draft at the top of the page, then click Publish.
It's a good idea to save a backup copy when prompted.
Important: Your changes won't take effect until you publish the draft.
Changing the ticket update settings
You can change the settings at any time.
- In Jira, click the Settings (cog) icon on the left panel, and select Issues.
- On the Issues page, select Workflows from the left sidebar.
- Click Edit on the right side of the workflow containing the transition you want to edit.
- Select the transition and click the Post Functions tab.
- Click the Edit (pencil) icon on the right side of the post function that updates
the ticket.Note: You can also delete the post function by clicking the delete (X) icon.
- Make your changes, then click Update.
- Click Publish Draft, then click Publish.
Supported comment placeholders
You can enter dynamic content placeholders in the comment field of a post function. For example, you can enter the following placeholder in the comment field of a Done transition function:
Issue {{issue.key}} has been resolved.
Issue QA-4 has been resolved.
For more information, see Using placeholders.
The Zendesk JIRA integration supports issue-specific, transition-specific, and user-specific placeholders. The placeholders are listed in the tables below. If placeholders for user profile fields aren't rendering, check your profile visibility settings in Jira because many fields have restricted visibility by default.
Placeholder | Description |
---|---|
issue.id | Internal id number of the issue |
issue.key | Issue key. Example: QA-4 |
issue.fields.summary | Issue summary |
issue.fields.description | Issue description |
issue.fields.issuetype.name | Issue type |
issue.fields.issuetype.description | Issue type description |
issue.fields.creator.name | User name of the person who created the issue |
issue.fields.creator.emailAddress | Email address of the person who created the issue |
issue.fields.creator.displayName | Display name of the person who created the issue |
issue.fields.creator.timeZone | Time zone of the creator |
issue.fields.reporter.name | Name of the person who reported the issue |
issue.fields.reporter.emailAddress | Email address of the person who reported the issue |
issue.fields.reporter.displayName | Display name of the person who reported the issue |
issue.fields.reporter.timeZone | Time zone of the reporter |
issue.fields.assignee.name | User name of the person assigned to the issue |
issue.fields.assignee.emailAddress | Email address of the person assigned to the issue |
issue.fields.assignee.displayName | Display name of the person assigned to the issue |
issue.fields.assignee.timeZone | Time zone of the assignee |
issue.fields.user.name | Username of the user |
issue.fields.user.emailAddress | Email address of the user |
issue.fields.user.displayName | Display name of the user |
issue.fields.user.timeZone | Time zone of the user |
issue.fields.created | Date and time the issue was created |
issue.fields.updated | Date and time the issue was updated |
issue.fields.priority.name | Issue priority name |
issue.fields.project.name | Issue project name |
issue.fields.project.key | Issue project key. For example: QA |
issue.fields.lastViewed | Date and time the issue was last viewed |
issue.fields.fixVersions.name | Name of the fix version/s* |
issue.fields.fixVersions.description | Description of the fix version/s* |
issue.fields.fixVersions.releaseDate | Release date of the fix version/s* |
issue.fields.versions.name | Name of the affected version/s* |
issue.fields.versions.description | Description of the affected version/s* |
issue.fields.versions.releaseDate | Release date of the affected version/s* |
issue.fields.components.name | Name of the component/s* |
issue.fields.components.description | Description of the component/s* |
issue.fields.duedate | Due date |
issue.fields.timespent | Time spent |
issue.fields.timeoriginalestimate | The original estimated time required to resolve the issue |
issue.fields.resolution.name | A record of the issue's resolution |
issue.fields.resolution.description | A complete description of the resolution |
issue.fields.resolutiondate | Date of issue resolution |
issue.fields.watches.watchcount | The number of people watching the issue |
issue.fields.labels | The label the issue relates to |
issue.fields.environment | The hardware or software environment the issue relates to |
issue.fields.votes.votes | The number of votes an issue has |
issue.last_comment | Last comment on the issue |
*A comma-separated list if multiple items are selected.
Placeholder | Description |
---|---|
transition.to_status | The status an issue has transitioned to. For example: Done |
transition.from_status | The status an issue has transitioned from. For example: In Progress |
transition.transitionName | The transition name that occurred |
transition.workflowName | The workflow name |
Placeholder | Description |
---|---|
user.key | Username of the person who caused the transition. This applies for Jira Server users only. |
user.displayName | The user's display name. This applies to Jira Cloud users only. |
47 comments
Kananda Silveira
Please Zendesk... can you help us??????
0
Dane
One of the recommendation that helped on this behavior is to reinstall the integration. Please follow the steps in To reinstall the integration.
If the same issue persisted, please contact us directly for this will require additional information to troubleshoot.
0
Stephen
Hi,
Do Zendesk have plans to integrate directly with Jira Automations to build this out, as opposed to Post Functions? Jira Automations are much easier to manage compared to Post Functions.
0
Manuel_LightAgent
hi how to fixed stuck status.. when the JIRA tag the ticket as done , unable to synch the zendesk status was unable to synch AUTOMATICALLY.. you need to manualy update zendek ticket status..
0
Manuel_LightAgent
Hi,
Does the Zendesk ticket need to remain open (less than closed) for the Jira update to function? It seems that once the Zendesk ticket is SOLVED, the link from Jira back to the ticket is broken.
1
Manuel_LightAgent
It seems that once the Zendesk ticket is SOLVED, the link from Jira back to the ticket is broken
1
Noly Maron Unson
Hi Manuel.
Once the ticket status is already Closed, the ticket will no longer be editable. You can refer to this answer in this thread.
Hope this helps.
-1
Mario Valdes
Hi Ahmed Zaid, no, to this date, we continue to face problems with the Post functions. So, as a workaround I decided to sync the Jira ticket status to Zendesk, and create triggers out of them.
0
Jeff Young
Can you create an additional placeholder for the last person's commented display name?
something like {{issue.last_commentor}}
0
Efrat Barak Zadok
Hi, We are using the 'transition.to_status' place holder in our Jira Zendesk post function but it is showing inaccurate data.
Meaning - it is showing values that do not exist currently in Jira.
Any idea how to resolve it?
0
Paolo
We would need more details and samples to check into this further. In this case, I've created a ticket on your behalf. Our Support Team will reach out to you as soon as possible. Thank you!
Best,
Paolo | Technical Support Engineer | Zendesk
0
rchambers
I may have missed it in all the comments but are the “statuses” for Post Functions limited to just the default Zendesk status options? Otherwise stated, is there a way that I can use custom Zendesk statuses in the Jira Post Function?
0
Nathalia Mancilha [Wake Experience]
Olá.
Estou tentando criar uma automação que me ajude na seguinte ação de trabalho onde: quando o tiem técnico comentar no card do Jira pela integração com zendesk, esse ticket no zen passe para o status em aberto (menos se estiver resolvido). Usei essa sugestão deste artigo, porém não consegui chegar neste detalhe.
0
David Kirkaldie
Once the Zendesk ticket is closed, Jira can no longer update the ticket and it will not open a follow on ticket. We cannot exclude solved tickets from being closed because ZenDesk forces a default automation that closes solved tickets in a maximum of 28 days (672 hours) and I cannot add any conditions to default automations.
Ideally if Jira has an update for a closed ticket, a new follow on ticket would be created.
0
Mario Valdes
Hi, I'm facing the same problem as @Rickard Karlsson Lundmark: https://support.zendesk.com/hc/en-us/articles/4408832025114/comments/5494289991322
When using the {{issue.last_comment}} field, I get the raw JSON. This didn't happen before, now I'm getting something like this every time:
{"type"=>"doc", "version"=>1, "content"=>[{"type"=>"paragraph", "content"=>[{"text"=>"This is only a TEST", "type"=>"text"}]}]}
Any idea how to fix it? Jira regular smart values are not working (like: {{issue.comments.last.body}})
1
Vladimir Shkuratov
Hi Mario Valdes and Rickard Karlsson Lundmark , Did you guys find a way to fix the issue with parsing comments from Jira to Zendesk upon transition when postfuction with the placeholder {{issue.last_comment}} is used? Thanks.
0
Rickard Karlsson Lundmark
Vladimir Shkuratov Mario Valdes Not really (I'm no longer in charge of this application), but I do remember noticing that the behaviour depended on which version of Jira was being used; some mobile Jira apps used ADF for the comment field and some didn't (this could be the reason it showed up suddenly for Mario Valdes). If it was Android that used ADF and not iPhone or vice versa unfortunately I can't remember. I don't think we used web Jira for this use case. Probably not that helpful for you, though, because you would expect the use of ADF to increase across app platforms over time, and it seems like a dead end to to choose a specific Jira OS platform or app version to use across the board just to avoid this.
1