みなさんこんにちわ、りなたむです。
Backlog は、様々なタスクを効率的に管理できるクラウドサービスです。
使いやすいインターフェースで、しかもタスクの対応を称賛する「スター機能」があったりします。
また、Microsoft には ローコード開発が可能なソリューション、Power Platform があり、その中に、様々なサービスを連携して自動運用する iPaaS、Power Automate があります。
Power Automate には、Microsoft 365 での業務を支援するために様々な機能がありますが、その中に承認機能があります。
この承認機能を使うことで、様々なアクションに対して、上長の承認プロセスを組み込むことができます。
Backlog には、タスクの状態を管理する機能があり、現状のタスクがどのステータスであるかを判断できるようになっていますが、タスクの完了も含めて手動で操作することができます。
この状態ステータスが処理済みとなった場合に、特定の人に対して承認を要求し、承認されれば「完了」、そうでなければ「差し戻し」といった機能を実装してみたいと思います。
1. Power Automate トリガー の準備
{
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"project": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"projectKey": {
"type": "string"
},
"name": {
"type": "string"
},
"chartEnabled": {
"type": "boolean"
},
"subtaskingEnabled": {
"type": "boolean"
},
"projectLeaderCanEditProjectLeader": {
"type": "boolean"
},
"useWikiTreeView": {
"type": "boolean"
},
"textFormattingRule": {
"type": "string"
},
"archived": {
"type": "boolean"
}
}
},
"type": {
"type": "integer"
},
"content": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"key_id": {
"type": "integer"
},
"summary": {
"type": "string"
},
"description": {
"type": "string"
},
"issueType": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"projectId": {
"type": "integer"
},
"name": {
"type": "string"
},
"color": {
"type": "string"
},
"displayOrder": {
"type": "integer"
}
}
},
"resolution": {},
"priority": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
}
},
"status": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
}
},
"assignee": {},
"category": {
"type": "array"
},
"versions": {
"type": "array"
},
"milestone": {
"type": "array"
},
"startDate": {},
"dueDate": {},
"estimatedHours": {},
"actualHours": {},
"parentIssueId": {},
"customFields": {
"type": "array"
},
"attachments": {
"type": "array"
},
"shared_files": {
"type": "array"
},
"externalFileLinks": {
"type": "array"
},
"diff": {},
"comment": {},
"changes": {
"type": "array"
}
}
},
"notifications": {
"type": "array"
},
"createdUser": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"userId": {},
"name": {
"type": "string"
},
"roleType": {
"type": "integer"
},
"lang": {
"type": "string"
},
"mailAddress": {},
"nulabAccount": {
"type": "object",
"properties": {
"nulabId": {
"type": "string"
},
"name": {
"type": "string"
},
"uniqueId": {
"type": "string"
}
}
}
}
},
"created": {
"type": "string"
}
}
}
5.設定のトリガー条件を以下のようにします
@equals(triggerBody()?['content']?['status']?['name'],'処理済み')
7.HTTP URL が生成されるので、メモ帳に張り付けておきます。
2. Backlog プロジェクトの設定
承認を組み込みたい Backlog プロジェクトの設定を開きます。
2.1. 却下時の状態追加
2.2. Webhook の設定
課題の更新通知を Power Automate に送る設定を行います
3. Backlog APIの取得
Power Automate でタスク状態を変更するユーザーの API キーを取得します。
4. Power Automate の続き
承認処理を実施し、承認されたときとそうじゃないときとの処理を以下のように作成します。
4.1. 承認部分
このような設定にします。
タイトル
@{triggerBody()?['project']?['name']} プロジェクト課題終了通知
詳細
@{triggerBody()?['project']?['name']} プロジェクトの課題
@{triggerBody()?['content']?['summary']} の状態が 処理済みになりました。
内容を確認してください。
アイテムリンク
https://<テナントID>.backlog.com/view/@{triggerBody()?['project']?['projectKey']}-@{triggerBody()?['content']?['key_id']}
アイテムリンクの説明
@{triggerBody()?['content']?['summary']}
4.2. True部分
URL
https://<テナントID>.backlog.com/api/v2/issues/@{triggerBody()?['project']?['projectKey']}-@{triggerBody()?['content']?['key_id']}
Body
{
"statusId": 4
}
4.3. False部分
却下された時の動作(状態を差し戻しにし、コメントを付記)を設定します
URL
https://<テナントID>.backlog.com/api/v2/issues/@{triggerBody()?['project']?['projectKey']}-@{triggerBody()?['content']?['key_id']}
Body
{
"statusId": <追加した状態ID>,
"comment": @{items('For_each')?['comments']}
}
5. 動作確認
実際にタスクを処理済みにすると以下のようになります
まとめ
Power Automate と Backlog API を組み合わせることで、より実業務運用に近いカスタマイズを自分たちで行うことができるようになります!
Backlog API 自体も様々な機能があるので、ぜひいろいろ試してみてはいかがでしょうか?