今回はkintoneにレコードが追加されたときにteamsのチャネルにメッセージが投稿される仕組みをPowerAutomate(Workflows)にて作成したので解説したいと思います。
少々長くなるのでその1が基本編、その2が応用編として2回に分けました。
PowerAutomateを利用する背景
弊社ではkintoneにレコードが追加されたときに、teamsのチームにメッセージが投稿されるようになっております。その際にteamsにある「Incoming Webhook」というOffice365コネクタを利用しております。
しかし、現在利用しているOffice365コネクタは2025年1月31日に機能が停止します。
そのためOffice365コネクタの新規設定は非推奨となっております。
Office365コネクタをteams内にあるアプリ「Workfolws」に移行してくださいとMicrosoftの開発ブログに記載されていたためWorkflows設定をしようとしましたが、このWorkflowsの中身はPowerAutomateとなっており、チャネルに追加すると表示が「PowerAutomate」となります。説明するときにややこしくなりそうなのでWEBブラウザのPowerAutomateで設定することにしました。
設定環境
Microsoft365(office365)プラン:Microsoft365 E3
Micorosoft365 E3のプランではPowerAutomateを利用できるようですが制限があるそうです。今回はその制限に引っかかることはなかったです。ただし、実行回数に制限があるようなので1日に何千件と動作するような設定をするのであれば注意が必要です。
Microsoft365を契約していてPowerAutomateが利用できればどんなプランでも制限は変わらないそうです。
参考文献リンク:Microsoft Learn
Power Automate:WEBブラウザ版
WEBブラウザよりmicrosoft365にアクセスし、そこからPowerAutomateのページを開いて利用しております。
今回のようなクラウドフローを作成する場合はWEBブラウザでの作成になると思います。
microsoft365ユーザー(作成者):システム通知用ユーザー
PowerAutomateでフローを作成すると作成したユーザーが所有者となり、そのユーザーを削除してしまうとフローが消えてしまう可能性があると思ったので個人以外のシステム用のユーザーを利用することにしました。
今回の設定ではTeamsにメッセージが投稿されるときに投稿者の名前が「Workflows 経由の[フローの所有者]」、「[フローの所有者]」のどちらかで設定することとなります。システム用のユーザーの方が個人のユーザーより自然だと思い、システム用のユーザーで設定しました。
システム用のユーザーで設定する場合は事前に投稿先のチーム、チャネルに参加させるのを忘れないでください。メッセージをフローの作成者であるシステム用のユーザーが投稿するため、チャネルに参加している必要があります。
kintone:kintone スタンダートコース
kintoneのライトコースではwebhookなどの外部サービスとの連携機能が利用できないため、スタンダードコースかワイドコースの契約が必要となります。
Power Automateでの設定
Power Automateを開く
先ずはWEBブラウザよりmicrosoft365にアクセスし、PowerAutomateを開きます。
microsoft365にログインをし、左上の点々マークをクリックします。表示されるメニューの中にPowerAutomateがある場合はそちらをクリックします。無い場合は「その他のアプリ」をクリックし、開いたページ内のPowerAutomateをクリックします。
テンプレートの追加
Power Automateのページの左側メニュー内の「テンプレート」をクリックします。
右側画面にテンプレートの一覧の上に検索ボックスがあるので、そこに「webhook」と入力して検索します。
検索結果から「Webhook要求を受信するとチャネルに投稿する」をクリックします。
私が作業していた時は日本語バージョンと英語バージョンのテンプレートがあるようでしたが右下の数字が多かった日本語バージョンにしました。
クリックすると確認画面が出ます。「Webhook要求を受信すると、MicrosoftTeamsのチャネルにカードを投稿する」というテンプレートになっています。
本当はカードではなくメッセージを投稿したいのですが、あとで編集するのでこちらでOKです。
(メッセージを投稿するテンプレートがあればそちらを選んで大丈夫です。以降の説明で飛ばせる箇所が増えるくらいの影響しかありません。)
下にmicrosoftアカウントが表示されているので間違いなければ[続行]をクリックします。
検証していた時はメッセージを投稿するテンプレートだったと思うのですが、素材をとるために新規設定をしていたら「カードを投稿する」になってしまっていたのでこちらのバージョンで解説します。(投稿の形式にカードというものがありますが今回は使用しませんでした)
次の画面に切り替わったら少し待ちます。待っていると「Microsoft Teams Team」と「Microsoft Teams Channel」が表示されるのでメッセージを投稿したいチームとチャネルを選択します。
※お望みのチームとチャネルが表示されていない場合は先ほど表示されていたmicrosoftアカウントがチームに参加しているか確認をしてください。
フローの設定
左側のメニューの「マイフロー」をクリックします。
テンプレートから追加した「Webhook要求を受信するとチャネルに投稿する」の右側の鉛筆マークをクリックすると編集画面が開きます。
編集画面にはアクション(+マークの上下にある四角)が2つあり、それぞれ「Teams Webhook要求を受信したとき」「Send each adaptive card」となっております。
「Send each adaptive card」が先ほど少し触れた「カードを投稿する」という部分であり不要なため削除します。
「Send each adaptive card」ではなく「チャットまたはチャネルでメッセージを投稿する」になっている場合はそのままで大丈夫です。アクションを編集するところまで読み飛ばしてください。
その他の場合は「Teams Webhook要求を受信したとき」のアクション以外は削除してしまいましょう。
削除をしたら「Teams Webhook要求を受信したとき」の下の+マークをクリックして[アクションの追加]をクリックします。左側にアクションを追加する画面が出てくるので「Microsoft Teams」を見つけてクリックします。私が設定していた時は「Microsoft Teams」が2つあり、右を選びました。違いがあるのかは確認しませんでした。
次に先ほど選択したアプリケーションで実行可能なアクションの一覧が表示されるので「チャットまたはチャネルでメッセージを投稿する」をクリックします。
そうすると「Teams Webhook要求を受信したとき」のアクションの下に追加されます。
次に追加したアクションを編集します。
「チャットまたはチャネルでメッセージを投稿する」のアクションをクリックすると左側に編集画面が開きます。パラメーターの内容は以下の通りに設定します。
- 投稿者:フローボット
フローボットだと「Workflows 経由の[フローの所有者]」、ユーザーだと「[フローの所有者]」が投稿者として表示されます。どちらでも大丈夫ですがここではフローボットを選択しました。 - 投稿先:Cannel
今回はチャネルにメッセージを投稿するためChannelを選択します。 - Team:投稿したいチャネルのあるチーム
- Cannel:投稿したいチャネル
- Message:任意のメッセージ
ここで入力した内容がチャネルに投稿されます。今回の設定では「kintoneにレコードが追加されました」と入力しました。
次に「Teams Webhook要求を受信したとき」のアクションをクリックします。
[HTTP URL]をコピーしてメモ帳などに貼り付けておきます。
後ほどkintoneの設定で使用します。
以上でTeamsの設定は完了したので右上の保存をクリックします。
この設定ではメッセージが固定となっており、内容がわからないため不便です。kintoneで追加されたレコードの内容を反映したメッセージを投稿することができるので、そちらはその2の記事で解説します。
引き続きこちらの記事で解説している設定を進めてからその2を見ていただくとわかりやすいと思います。
待てない方はその2を読んでから事項を読み進めてください。
kintoneの設定
Webhookの追加
次はkintone側の設定です。
Teamsと連携をさせたい対象のアプリの設定画面を開きます。
[設定]の中の[Webhook]をクリックします。
Webhookのページが開くので[+追加する]をクリックします。
既に「Incoming Webhook」等を利用したTeamsにメッセージを投稿するWebhookがある場合は編集画面から有効化のチェックを外しておきましょう。無効化しなくても大丈夫ですがレコードを追加すると2重メッセージが投稿されます。また、ここで無効化してもメッセージが投稿されてしまう場合があるのでその時は、今回設定中のPowerAutomateがうまくいったらTeamsのチャネルから「Incoming Webhook」等のコネクタの設定を削除しましょう。
Webhookの追加画面が開いたら先ほどPowerAutomateでメモ帳に貼り付けたURLを[Webhook URL]に貼り付けます。「https://」は既に用意されているので「https://」を除いて貼り付けましょう。
通知する条件は任意の条件にチェックを付けてください。
有効化にチェックを付けて、右下の[保存]をクリックします。
最後にアプリの設定に戻り、[アプリを更新]すると設定が反映されます。
以上で全ての設定が完了しました。
kintoneにレコード追加等をしてTeamsに投稿されるか確認してみてください。
最後に
今回のようなPowerAutomateの基本的な設定であればテンプレートを用いれば比較的簡単に設定することができますが、「固定のメッセージではなくレコードの内容を投稿したい」となると、私の勉強不足のせいでもありますが、難易度が跳ね上がります。
結果的には先生に教えてもらって設定することができ、一度やってしまえばそこまで難しいものでもなかったという印象でした。
レコードの内容を投稿できるようになると非常に便利なので、ぜひその2の記事もご覧ください。
リンク:kintoneとteamsの連携 その2