Gluegent Flow と Power Automate の組み合わせ!申請するだけで、名簿情報から Teams にユーザー追加してみよう
はじめまして!2024年度新卒入社の和田幸樹です。早いもので入社して1年、Gluegent Flowについて業務で触れるようになって半年が経過しました。
この1年間の業務で技術調査をいくつかしてきたのですが、その中で Gluegent Flow と Power Automate を組み合わせることによって、出来ることが広くなることを知りました。
本日は Gluegent Flow と Power Automate の掛け合わせ例をご紹介したいと思います。
それはタイトルにもあるように、「Gluegent Flowで申請をすることでTeamsのチームにユーザー追加を行えるようにする」ということです。
Teams のチームにメンバーを追加する作業が実際の現場でどのように行われているかは分かりませんが、ユーザー追加申請を出すだけで自動的にユーザー追加までしてもらえると効率が良いのではないでしょうか?
「Power Automate ってなに?」という部分について簡単に触れたのち、さっそくご紹介していきたいと思います。

Power Automate とは
Power Automate は、Microsoft が提供する業務効率化ツールで単純作業を自動化できるサービスになります。
直観的なインターフェースを用いて、いくつかのアクションを設定するだけでモデルを作成することが出来ます(Power Automate で作成したモデルのことをフローと言いますが、Flowと混ざるので今回はモデルと呼びます)。
このPower Automateで作成したモデルを動かす方法として、手動実行やメール受信時、HTTPリクエスト受信時というトリガーがあります。
そして Gluegent Flow と組み合わせるために使うトリガーが、「HTTPリクエスト受信時」になります。
Gluegent Flowでは稟議書などの申請・承認時に動く自動処理を作成することができます。
その中の「外部システム実行」自動処理で Power Automate のモデルを起動するように設定することで、申請に添付したファイル内の追加したいユーザー情報を Power Automate 側でTeamsにメンバー追加することが出来ます。
過去に、Power Automate Desktop の紹介をしている記事もありますので、そちらも合わせてご覧ください。(Power Automate Desktopの紹介)
Power Automate の設定
まず初めに、全体像をお見せします。
今回使用しているライセンスは Power Automate free になります。
Power Automate が使用できるライセンスについては、こちらをご参考ください。(Power Automate ライセンスの種類)
1 HTTPリクエストで受け取ったファイルを OneDrive 上に保存するステップ+α
ここでは、HTTPリクエストを受信した後、受け取ったファイル(今回だと、Excelファイル)を Power Automate上で使用できるように OneDrive上に保存をしたり、メンバー追加に失敗したユーザー情報を保存するExcelファイルを作成しています。
2 メンバー追加を行うステップ
ここでは、OneDrive 上に保存したExcelファイルの各行に載っているユーザーをチームに追加していきます。
何らかの理由で追加できなかったユーザーは、追加失敗ユーザーをまとめたファイルに追加していきます。
では、さっそく各ステップがどのような設定になっているのか、確認していきましょう!
1-1 トリガー「manual」
HTTPリクエストを受信時にこのモデルが起動できるようにトリガーを設定します。
トリガー出来るユーザーですが、外部ユーザーが利用できるようにするため、「誰でも」を選択します。
JSONスキーマについては、Gluegent Flow から、チームサイトID・Gluegent Flowのタスク番号・添付ファイル名・添付ファイルのコンテンツを受け取るようにしたいので、以下のように設定します。
また、メソッドはPOSTを選択します。
{
"type": "object",
"properties": {
"teamsSiteId": {
"type": "string"
},
"taskId": {
"type": "string"
},
"filename": {
"type": "string"
},
"filecontents": {
"type": "string"
}
}
}
1-2 アクション「作成:ファイルをバイナリーデータに変換」
添付されてきたファイルは base64 でエンコードされているので、デコードをする必要があります。
Power Automate の関数にバイナリーデータにデコードすることが出来るものがあるので、それを使います。
base64ToBinary(triggerBody()?['filecontents'])
1-3 アクション「ファイルの作成:受信したファイルを保存」
Power Automate で添付されてきたファイルを利用出来るようにするために、OneDrive に一度保存します。
ファイルの保存先はあらかじめ決めておきましょう。
ファイル名は以下のように設定しました。これはファイル名と拡張子の間に「-${タスク番号}」を追加することで、どのタスクによって作成されたファイルか分かるようにしました。
concat(first(split(triggerBody()?['filename'],'.')),'-',triggerBody()?['taskId'],'.',last(split(triggerBody()?['filename'],'.')))
ファイルコンテンツには、1-2 のアクションの結果を選択します。
1-4 アクション「ファイルのコピー:失敗時に行追加するファイルを作成」
失敗したユーザーに関するExcelファイルは氏名・メールアドレスを表の見出し行にしている「登録に失敗した名簿リスト.xlsx」をコピーして作成します。
ファイルにはコピー元のファイルパスを設定し、対象ファイルのパスにはコピーされるファイルのパスを設定します。こちらのファイル名にもタスク番号を含めるようにしています。
2-1 アクション「表内に存在する行を一覧表示:受信したファイルを行ごとに取得」
ここではアクション「表内に存在する行を一覧表示」を使用して、1-3で作成したExcelファイルの各行データを取得します。これによって、各行のデータからメールアドレス列にある情報を取得し、Teamsのチームにメンバー追加を行うアクションをしていきます。
ファイルには、1-3のアクションで得られたファイルパスを設定します。
今回のモデルで使用できるテーブル名は「ユーザー情報」と固定しています。
2-2 アクション「それぞれに適用する」
2-1のアクションで得られる出力の「body/value」を選択してください。
2-3 アクション「JSON の解析」
Contentには、「それぞれに適用する」で得られる出力「CurrentIem」を選択します。
Schemaは、メンバー追加が失敗した場合に名前の情報も使いたいので、以下のように設定します。
{
"type": "object",
"properties": {
"氏名": {
"type": "string"
},
"メールアドレス": {
"type": "string"
}
}
}
2-4 アクション「チームにメンバーを追加する」
ユーザーには「JSONの解析」アクションの出力である「Body メールアドレス」を設定します。
チームにはHTTPリクエスト受信時のトリガー「manual」のBodyにある値「teamsSiteId」を選択します。
このアクションによって、Teamsを利用できるライセンスを持つユーザーであれば、チームに追加することが可能になります。
追加したいユーザーにTeamsを使用する権限が無かったり、ユーザーがテナント内に存在しない場合に起きるエラーや回避できないサーバーエラーなどが起きた際、アクションが失敗する可能性があります。
以降のステップで、追加に失敗したユーザー名とメールアドレスを1-4で作成したファイルに追加できる方法をご紹介します。
2-5 アクション「条件」
条件右に、成功した際のステータスコードである「201」を設定します。
左には、以下のものを設定します。
outputs('チームにメンバーを追加する')['statusCode']
このアクションは、1つ前のアクションの成否に関わらず動くようにするため、設定タブの「チームにメンバーを追加する」を選択して、どの場合でも実行できるように以下のように設定します。
このアクション「条件」で分岐をするのですが、偽に新しいアクションを追加します。
2-6 アクション「表に行を追加」
ファイルには以下のものを設定します。
アクション「ファイルのコピー:失敗時に行追加するファイルを作成」の出力に「body/Id」とあるのですが、これが${フォルダID}.${ファイルID}の形になっていることが確認できるので、「.(ピリオド)」の後半部分のみをファイルに設定するようにしています。
last(split(outputs('ファイルのコピー:失敗時に行追加するファイルを作成')?['body/Id'],'.'))
行には以下のものを設定します。
{
"名前": @{body('JSON_の解析')?['氏名']},
"メールアドレス": @{body('JSON_の解析')?['メールアドレス']},
"失敗理由": @{outputs('チームにメンバーを追加する')['body']?['error']['code']}
}
これにて、Power Automate の設定は終わりです!
Gluegent Flow の設定
ここでは、Gluegent Flow のモデルについてご紹介します。
1 外部システム実行自動処理の作成
好きな経路とボタンに、「外部システム実行」自動処理を追加します。
URLはPower Automateのモデルを保存した際に、トリガー「manual」の 「HTTP URL」にURLが表示されるので、それをコピーして、貼ります。
メソッドにはPOSTを、コンテンツの種類にはapplication/jsonを選択してください。
リクエストのBODYは以下のものを設定します。
{
"teamsSiteId": "${チームID}",
"taskId":"${タスク番号}",
"filename": "${ファイル1.filename}",
"filecontents": "${ファイル1.base64}"
}
これらの設定が終わったら、保存します。
2 マスターデータの設定
今回、Microsoft 365 版の Gluegent Flow に搭載されている機能である「チーム一覧を取得するマスターデータ」を使用して、タスク画面でチーム名を入力するとチームIDが取得するように設定しました。
チーム一覧を取得するマスターデータの作成方法はこちらにありますので、よろしければ是非ご覧ください。
今回作成したモデルですと、入力フォーム「チーム名」に任意のチーム名を入力すると、入力フォーム「チームID」にそのチームのIDが表示されます。
これにて Gluegent FLowでの設定は完了です!
最後に Gluegent Flow で作成したモデルを利用して、実際に稟議書の申請・承認をしてみましょう!
実際の動きを確認
今回用意したユーザー情報は以下のものを利用しています。
存在しないユーザーや外部ユーザーはチームに追加することが出来ないので、失敗ユーザー情報のExcelファイルに追加されていきます。
こちらの記事が4月公開ということで、2025年度入社社員グループというものがあると想定して、そのチームに先のExcelファイルにあるユーザーたちを追加したいと思います。
今回申請したタスクのタスク番号は「20250408–00001」になります。
OneDriveに保存した添付ファイルも失敗時に更新されるファイルもタスク番号を追加することで、どの申請の時に保存されたのかが目で見て分かるようになりました。
・OneDrive上に保存した添付ファイル
・メンバー追加失敗したユーザが追加されるExcelファイル
登録に失敗した名簿リストを開くと、存在しないユーザーと外部ユーザーが追加されていることが分かります。失敗理由もちゃんと表示されていますね!
肝心のTeamsの画面ですが、こちらでもメンバーが追加されたことが確認できます。
まとめ
これにて、「ローカルにあるファイルを Gluegent Flow の申請に添付して、Teamsにメンバー追加を行いたい」という願いにこたえることが出来ました!
いかがだったでしょうか?
Gluegent FLow も Power Automate も試行錯誤をしていく事で、普段の業務の効率化を図ることが出来ます。
ご覧いただきありがとうございました。