定期報告Webhookを利用し、定期報告の登録・更新・コメント登録時に通知を受け取り、Teamsに通知する方法をご紹介します。 ※画面はTeamsのバージョンや環境により異なる可能性がありますのでご了承ください。
前提
「Teams Workflows」を使った実現方法になります。Teamsの通知先チャネルがあること、定期報告Webhookの設定を実施していることが必要です。
ステップ
1. Teams Workflowsで新規フローを作成する
今回は次のようなフローを作成します。
- Workflowsを開き「+新しいフロー」から新規作成します。
- Teamsテンプレートの「Webhook要求を受信するとチャネルに投稿する」を選択します
- フローに名前を設定し、「次へ」を選択します
- 通知するチャネルを設定し「フローの作成」を選択します
- ワークフローが作成されたら、表示されたURLをコピーします。
-
Shopらんで、業務の管理 > 定期報告の設定 > 開発者向け機能 > Webhookの設定の画面を開き、先ほどコピーしたURLをペイロードURLに設定します。
- ペイロードURL:先ほどコピーしたURL
- ペイロード形式バージョン:「v2」
- Teams Workflowsで「ワークフローを管理する」を選択し、ワークフローの変更を行います
2. Teams Workflowsのフローを変更する
- 作成したワークフローの管理画面から編集を選択し、フローの変更画面に移動します
- 「新しいステップ」を選び、「JSONの解析」操作を選択します。
- ここでお知らせWebhookの情報を使いやすいように設定します。コンテンツに「本文」を設定し、「スキーマ」にペイロードバージョンに合わせた以下の情報をセットしてください。
-
例)ペイロードバージョンv2の例はこちら。※最新のスキーマはガイドをご確認ください。
スキーマ定義例(クリックして展開してください)
{ "type": "object", "properties": { "logbookId": { "type": "string", "description": "定期報告のID" }, "recordId": { "type": "integer", "description": "定期報告の文書ID" }, "recordStatus": { "type": "string", "description": "定期報告のステータス" }, "event": { "type": "string", "description": "イベント" }, "contentUrl": { "type": "string", "description": "定期報告のURL" }, "regAccount": { "type": "object", "description": "登録したユーザー", "properties": { "loginId": { "type": "string", "description": "登録したユーザーのID" }, "name": { "type": "string", "description": "登録したユーザーの名前" }, "type": { "type": "string", "description": "登録したユーザーの種別" } } }, "updAccount": { "type": "object", "description": "", "properties": { "loginId": { "type": "string", "description": "更新したユーザーID" }, "name": { "type": "string", "description": "更新したユーザーの名前" }, "type": { "type": "string", "description": "更新したユーザーの種別" } } }, "regDate": { "type": "string", "description": "登録日時(UTC)" }, "updDate": { "type": "string", "description": "更新日時(UTC)" }, "sessionOwner": { "type": "object", "properties": { "loginId": { "type": "string", "description": "操作したユーザーID" }, "name": { "type": "string", "description": "操作したユーザーの名前" }, "type": { "type": "string", "description": "操作したユーザーの種別" } } }, "sessionSubOwner": { "type": "object", "properties": { "loginId": { "type": "string", "description": "操作したスタッフコード" }, "name": { "type": "string", "description": "操作したスタッフの名前" }, "type": { "type": "string", "description": "操作したスタッフ種別" } } }, "data": { "type": "object", "properties": { "10001": { "type": "string", "description": "フォームに配置した部品の値" } } }, "token": { "type": "string", "description": "webhookの発行元を検証するためのトークン" } } }
設定後のイメージ
- 「新しいステップ」を選び、Teamsの「チャットやチャネルにカードを投稿する」アクションを選択します
- 投稿者(Post as)、投稿先(Post in、チーム、チャネル、を設定し、アダプティブカード欄にカードの内容を記載します。
※投稿先のチャネルがプライベートの場合は投稿者(Post as)は「フローボット」ではなく「ユーザー」を選択してください。 -
カード記載例はこちら。通知内容については用途に合わせて設定してください。
{ "type": "AdaptiveCard", "$schema": "https://adaptivecards.io/schemas/adaptive-card.json", "version": "1.4", "msteams": { "width": "Full" }, "actions": [ { "url": "@{body('JSON_の解析')?['contentUrl']}", "title": "定期報告を表示する", "tooltip": "@{body('JSON_の解析')?['contentUrl']}", "type": "Action.OpenUrl" } ], "body": [ { "text": "@{body('JSON_の解析')?['recordStatus']}", "size": "medium", "weight": "bolder", "type": "TextBlock" }, { "facts": [ { "title": "登録者", "value": "@{body('JSON_の解析')?['regAccount']?['name']}" }, { "title": "登録日", "value": "@{formatDateTime(body('JSON_の解析')?['regDate'],'M月d日(ddd)', 'ja-JP')}" } ], "type": "FactSet" }, { "inlines": [ { "text": "@{body('JSON_の解析')?['text']}", "color": "dark", "type": "TextRun" } ], "type": "RichTextBlock" } ] }
- 最後に、テンプレートの初期値である「Send each adaptive card」を削除します
- ワークフローを保存します
3. 定期報告の登録をして通知を試す
定期報告の登録もしくは更新を実施してください。設定したTeamsのチャネルに通知されるはずです。
カード形式を利用した場合の通知イメージ