Teamsの会議情報をkintoneに連携してみた(PowerAutomate)
記事概要
PowerAutomateのクラウドフローを使って、Teamsの会議情報をkintoneに連携させてみました。
細かい実装の手前までの基礎調査と基礎連携部分までとなります。
自社でもこの記事の内容を実現してみたい。という方がおみえでしたら、kintoneスポット開発無料相談フォームから、ぜひお問い合わせください。
やりたいこと
- Teamsで会議を作成する。
- その情報をPowerAutomateを使用して、kintoneに連携する。
- Teams会議情報に変更が入ったら、kintoneも更新する。
- Teams会議情報を削除されたら、kintoneも削除する。
ポイントとしては、新規会議だけではなく、変更・削除にも対応させたいところです。
PowerAutomateのトリガ
Teams会議が作成されると、予定表にも情報がはいるため、イベントが生成される様です。
なので、イベントに関するトリガを使用します。
上図の通り、「新しいイベントが作成されたとき」「イベントが変更されたとき」「イベントが追加、更新、削除されたとき」の3つあたりが使えそうです。今回は削除も対応したいので、「イベントが追加、更新、削除されたとき」を使いましょう。
トリガが何度も発火する問題
既知の問題(トリガーの既知の問題と制限)として、Teamsで新たに会議情報が登録されると、PowerAutomateのトリガが複数回発火します。下図の4回のトリガ発火は1件の会議が追加されたときの挙動です。
このトリガは、アクションの種類が3種類(added,update,deleted)ありまして、上図の内訳は、updated>added>updated>updatedの4回発火しています。ちなみにこれは、added>updated>updatedの3回になることもありますし、updated>updated>1分位遅延してからaddedというパターンもありました。また、addedが飛んでこないこともあった気がします。つまり不安定。
今回は細かくは実装しませんが、実務のことを考えると、下記の一工夫が必要かなと思います(殴り書きなので、参考程度)
- addedの時はkintoneにレコード挿入。但し既に存在していたら挿入しない。
- updatedの時もkintoneにレコード挿入。但し、既にレコードが存在していたら、更新をかける。但し、Teams側の最終更新日で比較して、古い日付だったら更新しない。
kintoneの受け側アプリ
シンプルに2項目で準備します。実務での実装の時はここから、さらに項目を細分化して、処理していくイメージになると思います。
PowerAutomateクラウドフロー
トリガとコネクタのシンプルな構成です。
トリガ(イベントが追加、更新、削除されたとき)
初期設定では、追加・更新・削除のどれでも発火します。
上手く設定してあげることで、削除の時だけ発火。等の工夫もできましたが、今回の記事の本筋とは外れるので記載省略します。
尚、今回はTeamsの会議だけに着目していますが、あくまでこれはイベント関連のトリガなので、普通の予定が追加されても多分発火します。このあたりは発火条件をうまいこと設定してあげる必要がありますね。
kintoneへの書き込み
下図の様な感じで書き込み項目を選択します。「アクションの種類」で、追加、更新、削除のどのアクションが起きたかの判別ができますね。
扱える項目については、下記URLに記載があります。主に扱う機会が多そうなのは、件名、開始時刻、終了時刻、アクションの種類、WEBリンク、必須出席者、最終変更時刻、本文、あたりでしょうか。一通りそろっているのでこれで連携は作れそうですね。
GraphCalendarEventClientWithActionType
動作確認
- Teamsで会議追加
- kintoneに情報が追加される(イベントが複数回発火してるので、複数行挿入される)
- 中身はこんな感じ
Teamsで会議を削除した場合は下記の様なレコードが挿入されます。
これで一通りkintoneに連携できることが確認できましたので、あとはうまく加工をすれば例えばカレンダーPlusへの連携等も実現できそうです。
PowerAutomateを使って、Teams会議情報をkintoneに連携する下地ができました。
実際にはこれで、何をやるか。が大切だと思いますので色々と組み込んでいきたいと思います。
Discussion