業務アプリ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の例はこちら。※最新のスキーマはガイドをご確認ください。 業務アプリのWebhookではアプリ雛形によってステータス項目の値が変わります。各雛形のステータスの一覧はオンラインガイドを参照してください。
スキーマ定義例(クリックして展開してください)
{ "type": "object", "properties": { "appId": { "type": "string", "description": "業務アプリID" }, "recordId": { "type": "integer", "description": "文書番号となる32ビット符号付整数値" }, "recordStatus": { "type": "string", "description": "更新後の文書のステータスコード" }, "event": { "type": "string", "description": "イベント" }, "contentUrl": { "type": "string", "description": "文書のURL" }, "regAccount": { "type": "object", "properties": { "loginId": { "type": "string", "description": "操作したユーザのログインID" }, "name": { "type": "string", "description": "操作したユーザの名前" }, "type": { "type": "string", "description": "操作したユーザの種別" } } }, "updAccount": { "type": "object", "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": "スタッフ機能を利用している場合のスタッフID" }, "name": { "type": "string", "description": "スタッフの名前" }, "type": { "type": "string", "description": "スタッフの種別" } } }, "data": { "type": "object", "description": "業務アプリ毎の本文", "properties": { "9001": { "type": "string", "description": "本部担当者(ログインID)" }, "10002": { "type": "string", "description": "タイトルに入力した値" } } }, "token": { "type": "string", "description": "リクエストの発行元を検証するためのトークン" } } }
設定後のイメージ
- 「新しいステップ」を選び、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のチャネルに通知されるはずです。
カード形式を利用した場合の通知イメージ