JiraServiceManagement(以下:JSM)を使用して、カスタマーを手動で追加しなければならないケースが存在します。これはとてもめんどくさいです。できれば自動で済ませたいとお考えの方もいるかもしれません。今回はカスタマーアカウントと組織の自動発行について記載していきます。今回はJira AutomationとJiraCloudAPIを使用して構築していきたいと思います。
例えば、JiraSoftwareを使用してカスタマーの情報(メールアドレス,名前,組織名)をフィールドで管理していたと仮定します。
実行するにあたり以下の情報が必要となります。
カスタマーのメールアドレス
カスタマーの名前
組織名
Atlassian Developer API Reference
手順1 :組織を作成する
まずは自動化を作成するためAutomationを選択し、Create ruleを選択してください。
選択すると以下のような画面になるかと思います。(※JiraのAutomationはTrigger,Condition,Actionの大枠で区分されているため、大枠に沿って実装を進めていきます。)
まずはトリガーの選択です。トリガーはいつ自動化を発火させるかを選択することができます。今回はJiraフィールドで既にデータを保有していて、自分の好きなタイミングでカスタマーと組織を自動追加する想定で作成を行いますので、手動トリガーを選択しておきましょう。「Manual trigger from issue」を選択し、Saveをクリックします。
次はJiraAutomation上でJiraAPIを実行するために設定を行なっていきます。※Jira AutomationでJiraAPIを使用するためにはAPIキーを取得する必要があります。まずはJira AutomationでAPIを使用するためにNewActionをクリックし、Send web requestをクリックします。
適切な設定が行われていれば以下のように表示されます。
今回の自動化で使用するWebrequestURLは
https://your-domain.atlassian.net/rest/servicedeskapi/organization
を使用します。これは組織の作成を行うためのURLです。your-domain
の部分をご自身の保有するサイトの名前に置き換えて、WebrequestURLフィールドに記載してください。その次にHeader(option)の部分を記載しますが、参考リンク(Node.js)を確認すると以下のように記載があると思います
WebRequestbodyは実行させるAPIによって異なります(不要な場合もある)が、今回のケースでは事前にフィールドに必要な情報が入力されていることを想定しています。今回のAPIを実行するには以下のようなbodyDataが必要です。今回のbodyDataを見る限り必要な情報は組織の名前のみのようです。従って、このbodyDataをフィールドから取得するためにスマートバリューを使用していきます。
const bodyData = `{ "name": "Charlie Cakes Franchises" }`;
カスタムデータの設定をする。
空のカスタマデータに対し必要なデータをスマートバリューを使用して取得し、取得した値をPOSTします。記載できたらsaveをクリックします。必要なデータは組織の名前のみだったので以下のように記載します。スマートバリューの詳細はこちらです。(Jira スマート バリュー - 課題 | クラウド自動化 Cloud | アトラシアン サポート )
今回はトリガーをマニュアルトリガーに設定しました。マニュアルトリガーは特定の課題に対して手動で実行する必要のあるアクションです。従って、こちらのスマートバリューはトリガーされた課題のカスタムフィールドの値を組織名にしてくださいという処理になります。
組織の作成APIを実行した後、レスポンスが返却されます。今回行った自動化のレスポンスは以下の通りになります。 idとは作成した組織のid,nameとは作成した組織の名前です。このレスポンスを使用して、次のアクションを行なっていきます。
{ "_links": { "self": "<string>" }, "id": "<string>", "name": "<string>" }
レスポンスをJiraAutomationで利用するためには以下のスマートバリューを使用します。
{{webResponse.body.id}}
次はレスポンスを使用してどのプロジェクトに組織を追加するかを指示する必要があります。なぜなら現在までの処理はただ組織が追加されただけの状態だからです。どのプロジェクトに追加する必要があるのかを別途指示する必要がありますのでそちらを実装していきます。
どのプロジェクトに追加するのかを指示するにあたり、プロジェクトidと組織idが必要です。組織idは先ほど取得したので問題ないかと思います。プロジェクトidはプロジェクト設定内のDetailを選択し、URLを確認するとpid=11111のようにプロジェクトidがURLに明記されています。明記されているidが確認できたら必要な情報は揃いましたので実装可能です。
追加の処理を行う必要があるのでAdd componentをクリックし、New action、Send web requestを選択します。
webhookURLには以下のURLを記載します。
https://your-domain.atlassian.net/rest/servicedeskapi/servicedesk/projectId:11111/organization
Header(Option)の設定
Authorization,Content-Typeを前回使用したものと同じように設定します。
Customdataの設定
上記の処理が成功すればプロジェクトに組織を追加する自動化の完成です。
次のカスタマーの自動追加を後続で実行するためにOrganizationidを再利用するので、プロジェクト内のフィールドに転記しておくことをお勧めします。
フィールドに転記されていることを前提にカスタマーの自動追加を実装していきます。
現在取得できている値を確認しよう。
OrganizationID
組織にカスタマーを追加するために必要な値を確認しよう
特定の組織に追加したいカスタマーのCustomerID
CustomerIDをスマートバリューで取得する
組織の自動作成と、カスタマーの自動追加を一気通貫で実装する場合は作成したアクションの後続にSendwebrequestを追加し、項目24の内容を記載します。{{webResponse.body.id}}は組織idを意味します。従って後続処理にしない場合はフィールド等に{{webResponse.body.id}}の値を転記しておいて、スマートバリューでカスタムフィールド番号を指定して、値を取得することで同じ処理が実装可能です。以上で、組織の自動追加及びカスタマーの自動追加は終了です。