Jiraワークフローで課題のステータスが変更されたときに、JiraはそのJira課題にリンクされているZendesk Supportチケットを自動更新します。
Jiraワークフローはステータスとトランジションで構成されており、ワークフローのライフサイクル中にそれらの間を課題が遷移していきます。Jira課題がワークフローのあるステータスから他のステータスに遷移したときに、リンクされたチケットを自動的に更新するようにワークフローを設定できます。
たとえば、エンジニアがJira課題のワークフローステータスを「In progress」から「Done」に変更したときに、エージェントに通知する社内メモを、リンクされたZendeskチケットに自動的に追加するようにしておけば、エージェンからカスタマーに伝えることができます。
Jiraでは、エンジニアが課題のワークフローステータスを「To do」から「In progress」に変更した後で、チケットに社内メモを追加することで、開発者が課題に取り組んでいることを自動的にエージェントに通知することもできます。
この記事では、次のトピックについて説明します。
チケットの更新の仕組みを理解する
Zendeskのチケットは、「事後操作」でJiraのワークフローから更新されます。事後操作は、ワークフローのトランジションが行なわれた後に追加の処理を実行するために使用されるJiraワークフローの機能です。たとえば、トランジションの後に課題のフィールドを事後操作で更新できます。
事後操作は、ステータスではなく、ワークフローのトランジションに追加され、トランジションが完了した後に実行されます。事後操作の中には必須のものがあり、トランジションから削除したり、順序を入れ替えるたりすることはできませんが、それらの必須の事後操作の間にオプションの事後操作を挿入することができます。Zendeskインテグレーションにより、Jiraのオプション事後操作のリストに「Notify Zendesk Ticket」が追加されます。
事後操作のの詳細については、Atlassianのドキュメントを参照してください。
チケットを更新するワークフローの設定
- Jiraの左側にあるパネルの「Settings」(歯車)アイコンをクリックし、「Issues」を選択します。
 - 「Issues」ページで、左のサイドバーから「Workflows」を選択します。

 - Zendeskチケットにリンクされている課題に対処するために使用するワークフローを見つけて、ワークフローの右側にある「Edit」をクリックしますメモ:Jiraでは、ライブワークフローを編集することはできません。ドラフトモードで編集する必要があります。
 - 「Transitions」列で、チケットの更新をトリガするトランジションの名前をクリックします。

 - 「Post Functions」タブをクリックし、右側にある「Add post function」リンクをクリックします。

 - リストから「Notify Zendesk Support」の事後操作を選択して、「Add」をクリックします。
 - チケットの更新設定を行い、「Add」をクリックします。
チケットステータスの変更、社内メモおよびパブリックコメントの追加、タグの追加、コメントテキスト内のコメントプレースホルダの追加を行うことができます。

メモ:タグは削除することはできません。
 -  Zendesk Supportの投稿機能の横にある「Move down」アイコンを選択して、「Add a comment to an issue if one is entered during a transition」投稿機能の下に移動します。

 - ページ上部の「Publish Draft」をクリックし、「Publish」をクリックします。
プロンプトが表示されたらバックアップコピーを保存することをお勧めします。
重要:下書きを公開するまで、変更は有効になりません。
 
チケットの更新設定を変更する
設定はいつでも変更できます。
- Jiraで、左のパネルの「Settings」(歯車)アイコンをクリックし、「Issues」を選択します。
 - 「Issues」ページで、左のサイドバーから「Workflows」を選択します。
 - 編集したいトランジションを含むワークフローの右側で「Edit」をクリックします。
 - トランジションを選択して、「Post Functions」タブをクリックします。
 - チケットを更新する事後操作の右側にある「Edit」(鉛筆)アイコンをクリックします。メモ:事後操作を削除する場合は、削除(X)アイコンをクリックします。
 - 必要な変更を加えて、「更新」をクリックします。
 - 「Publish Draft」をクリックして、「Publish」をクリックします。
 
サポートされているコメントプレースホルダ
事後操作のコメントフィールドに動的なコンテンツプレースホルダを入力できます。たとえば、Doneトラジション操作のコメントフィールドに次のようなプレースホルダを入力することができます。
Issue {{issue.key}} has been resolved.
Issue QA-4 has been resolved.
詳細については、「プレースホルダの使用」を参照してください。
Zendesk Jiraインテグレーションでサポートされているプレースホルダの種類として、課題に関するもの、トランジションに関するもの、およびユーザーに関するものがあります。各プレースホルダについては、以下の表を参照してください。ユーザープロフィールフィールドのプレースホルダがレンダリングされない場合は、Jiraのプロフィールの表示設定を確認してください。デフォルトでは、多くのフィールドが非表示になっています。
| プレースホルダ | 説明 | 
|---|---|
| issue.id | 課題のID番号 | 
| issue.key | 課題キー。例:QA-4 | 
| issue.fields.summary | 課題の要約 | 
| issue.fields.description | 課題の説明 | 
| issue.fields.issuetype.name | 課題タイプ | 
| issue.fields.issuetype.description | 課題のタイプの説明 | 
| issue.fields.creator.name | 課題を作成したユーザーの名前 | 
| issue.fields.creator.emailAddress | 課題を作成したユーザーのメールアドレス | 
| issue.fields.creator.displayName | 課題を作成したユーザーの表示名 | 
| issue.fields.creator.timeZone | 作成者のタイムゾーン | 
| issue.fields.reporter.name | 課題を報告したユーザーの名前 | 
| issue.fields.reporter.emailAddress | 課題を報告したユーザーのメールアドレス | 
| issue.fields.reporter.displayName | 課題を報告したユーザーの表示名 | 
| issue.fields.reporter.timeZone | 報告者のタイムゾーン | 
| issue.fields.assignee.name | 課題を割り当てられたユーザーの名前 | 
| issue.fields.assignee.emailAddress | 課題を割り当てられたユーザーのメールアドレス | 
| issue.fields.assignee.displayName | 課題を割り当てられたユーザーの表示名 | 
| issue.fields.assignee.timeZone | 課題を割り当てられたユーザーのタイムゾーン | 
| issue.fields.user.name | ユーザーのユーザー名 | 
| issue.fields.user.emailAddress | ユーザーのメールアドレス | 
| issue.fields.user.displayName | ユーザーの表示名 | 
| issue.fields.user.timeZone | ユーザーのタイムゾーン | 
| issue.fields.created | 課題が作成された日付と時刻 | 
| issue.fields.updated | 課題が更新された日付と時刻 | 
| issue.fields.priority.name | 課題の優先度名 | 
| issue.fields.project.name | 課題のプロジェクト名 | 
| issue.fields.project.key | 課題のプロジェクトキー。例:QA | 
| issue.fields.lastViewed | 課題が閲覧された日付と時刻 | 
| issue.fields.fixVersions.name | 修正バージョンの名前* | 
| issue.fields.fixVersions.description | 修正バージョンの説明* | 
| issue.fields.fixVersions.releaseDate | 修正バージョンのリリース日* | 
| issue.fields.versions.name | 影響バージョンの名前* | 
| issue.fields.versions.description | 影響バージョンの説明* | 
| issue.fields.versions.releaseDate | 影響バージョンのリリース日* | 
| issue.fields.components.name | コンポーネントの名前* | 
| issue.fields.components.description | コンポーネントの説明* | 
| issue.fields.duedate | 期限 | 
| issue.fields.timespent | 消費時間 | 
| issue.fields.timeoriginalestimate | 課題解決に必要な時間の初期見積もり | 
| issue.fields.resolution.name | 課題解決の記録 | 
| issue.fields.resolution.description | 解決解決の詳細な説明 | 
| issue.fields.resolutiondate | 課題解決の日付 | 
| issue.fields.watches.watchcount | 課題を閲覧中のユーザーの人数 | 
| issue.fields.labels | 課題に関係付けられているラベル | 
| issue.fields.environment | 課題が関係するハードウェアまたはソフトウェアの環境 | 
| issue.fields.votes.votes | 課題の投票の数 | 
| issue.last_comment | 課題の最新コメント | 
*複数の項目を選択する場合は、カンマ区切りで列挙。
| プレースホルダ | 説明 | 
|---|---|
| transition.to_status | 課題の遷移後のステータス。例:終了 | 
| transition.from_status | 課題の遷移前のステータス。例:処理中 | 
| transition.transitionName | 発生したトランジションの名前 | 
| transition.workflowName | ワークフローの名前 | 
| プレースホルダ | 説明 | 
|---|---|
| user.key | トラジションを引き起こしたユーザーの名前。これはJira Serverユーザーのみに適用されます。 | 
| user.displayName | ユーザーの表示名。これはJira Cloudのユーザーのみに適用されます。 |