標準アクションの先へ行く!PowerAutomateでGraph APIを実行してみた
みなさん、こんにちは。
エンジニアの和田です。
突然ですが、皆さんはPowerAutomateを使って Graph API を実行したことがあるでしょうか?
PowerAutomate には、標準機能としてUIが分かりやすい形で Graph API を実行できるアクションが存在しています。
となると、こう思う方もいるはずです。
「PowerAutemate で Graph API を実行せずに、標準搭載のアクションを活用すればいいじゃん」
私もそう思っていました、「チームテンプレートを用いたチーム作成がしたい」という要望が上がってくるまでは・・・。
今回、チームテンプレートという存在を知り、PowerAutemate でチームテンプレートを指定したチームを作成することが出来るようなフローを作成してみました。
ご参考になる内容となっていれば幸いです。
また、以前の記事である「Gluegent Flow と Power Automate の組み合わせ!申請するだけで、名簿情報から Teams にユーザー追加してみよう」と同様に、
| グルージェントフローからエクセルファイルを PowerAutomate のフローに渡して作業をしてもらう |
という流れで作成することも来ます。
その際の PowerAutomate 側・グルージェントフロー側の設定などは先の記事も参考になりますので、ぜひご確認ください。
チームテンプレートってなに?
私は、「そもそもチームテンプレートってなに?」という疑問から始まりました。
デフォルトなのかは分かりませんが、チーム作成に「standard」というテンプレートを指定していることすら知りませんでした。
まずは、Gemini に相談です。
Q:Teams のチームテンプレートってどういったものがありますか?
A:以下のようなものがあります。
- プロジェクトの管理
- イベントの管理
- ・・・
自テナントで利用可能なテンプレートとして「プロジェクトの管理」と「イベントの管理」を挙げていますが、Gemini は他にも教えてくれました。
Gemini 曰く、以下のようなものがあるみたいです(参考までに…)。
- 従業員のオンボード
- トレーニング・チャット等のチャネル + Wiki
- ヘルプデスクの整理
- FAQ・チケット管理用チャネル
- インシデントへの対応
- 緊急・復旧・計画長チャネル
Gemini に出してもらったのはビジネス向けテンプレートについて教えてもらったのですが、これら以外にも業種に特化したテンプレートが数多く存在していました。
「Gemini が言っていることすべて正しい」ということは無いので、どんなものがあるのか確認したい方は「Teams チームテンプレート」などで検索をして確認するのが良いかと思います!
- 財務チームテンプレート
- 医療チームテンプレート
- 教育クラスチームテンプレート
テンプレートであるため、普通の standard を指定したチーム作成では作成されないようなチャネルなどを自動で作ってもらえるというのは、なかなかに嬉しいものではないでしょうか?
「反復作業・定期的に行う作業は自動化したい」という血が騒ぎますね!
ちなみに自テナントでどのチームテンプレートが利用可能かの確認として、以下のリンク先へ飛び、例の中にあるGraphAPIを実行することで確認することが出来ます。
「使ってみる」を押すとこのページ内で Graph Explorer が開かれ、ログインすると実行・確認することが出来ます。

チームテンプレートを一覧表示することが出来る GraphAPI の機能は beta バージョンであり、変更される可能性がありますので、ご注意ください。
チームテンプレートについて簡単に触れたところで、いざ PowerAutomate の設定へ行きましょう!
PowerAutomate のアクションの設定を確認しよう
今回 PowerAutomate で作成するフローはプレミアムコネクタであるアクションを含んでいます。試用版ではご利用できないことが考えられますので、予めご了承ください。
まずは、PowerAutomate 標準のチーム作成アクションと、今回作成したテンプレート指定可能なチーム作成アクションを比較してみましょう!
「${}」で囲んでいる箇所は適当な値に設定してください。
- PowerAutomate 標準のチーム作成アクション

- テンプレート指定可能なチーム作成アクション(使用しているアクション:HTTP)


自作のアクションと標準のアクションを比較すると、標準アクションがいかにシンプルなのかが分かりますね!
UIが直感的であり、各項目を埋めるだけで出来ちゃいます。
テンプレートを指定してチームを作成するのは大変です…。
また、HTTPアクションを使う場合は認証タイプを選択する必要があり、今回作成のアクションでは「Active Directory OAuth」を選択します。
次の項では、認証タイプで使用するアプリの作成をしていきます。

アプリの作成をしよう
認証タイプで使用するためにアプリを作成していくために、Microsoft Entra ID(旧 Azure AD)で行う作業があります。
- アプリの新規登録
- Microsoft Entra 管理センター(または Azureポータル)にログインします
- [共通] > [アプリケーション] > [アプリの登録] を選択します
- もしくは、「アプリの登録」で検索します
- [+ 新規登録] をクリックして、アプリを登録します
- 名前:なんでもOKです。今回、「PowerAutomate_Teams_Creator」としました
- サポートされているアカウントの種類:「この組織ディレクトリのみ」(表記ゆれがあるかもしれませんが、「シングルテナントのみ」を選択で大丈夫です。)
- [登録] をクリック
- 認証情報の取得(メモ必須!)
- 以下の二つをメモしましょう
- アプリケーション(クライアント)ID
- ディレクトリ(テナント)ID
- 以下の二つをメモしましょう
- クライアントシークレットの発行(メモ必須!)
- 左メニューの[証明書とシークレット] をクリック
- [+ 新しいクライアントシークレット] をクリック
- 説明:このクライアントシークレットの説明を入力します
- 有効期限:クライアントシークレットには有効期限を設定する必要があります
- [追加] をクリック
- 表示された「値」をコピーしてください
- 重要:値はページを離れるとメモすることが出来なくなるので、このタイミングでメモしてください
- APIのアクセス許可(ここがキモ!)
チーム作成するために必要な権限をアプリに付与します。- [APIのアクセス許可] をクリック
- [+ アクセス許可の追加] > [Microsoft Graph] を選択
- [アプリケーションの許可] を選択
- 以下の権限を選択します
- Team.Create
- Group.ReadWrite.All
- User.Read.All
- [アクセス許可の追加] をクリック
- 重要:最後に画面上の[(テナント名)に管理者の同意を与えます] をクリックし、ステータスを緑色のチェックマークにします

これにて、Microsoft Entra ID(旧 Azure AD)で行う作業は終了です。
ここまで来たら、あとは PowerAutomate の HTTPアクションにて設定するだけなので、「チームテンプレートを指定したチーム作成」の実現まであと一歩です!
PowerAutomate「HTTP」アクションの設定
認証タイプ以外の設定は以下になります。
- URL:https://graph.microsoft.com/v1.0/teams
- Method:POST
- Headers:
- key:content-type
- value:application/json
- Body:(${}の箇所はお好きなものに変換してください)
{
"template@odata.bind": "https://graph.microsoft.com/v1.0/teamsTemplates('${チームテンプレート}')",
"displayName": "${チーム名}",
"description": "${チームの説明文}",
"visibility": "${PrivateかPublicか}",
"members": [
{
"@@odata.type": "#microsoft.graph.aadUserConversationMember",
"roles": [
"owner"
],
"user@odata.bind": "https://graph.microsoft.com/v1.0/users('${オーナーのプライマリメールアドレス}')"
}
]
}
-
認証に関する設定は以下になります。
- Authentication type:Active Directory OAuth
- Authority:https://login.microsoftonline.com
- Tenant:ディレクトリ(テナント)ID
- Audience:https://graph.microsoft.com
- Client ID:アプリケーション(クライアント)ID
- Credential type:Secret
- Secret:クライアントシークレットを作成した際の「値」を設定
これにて、HTTPアクションを用いて「チームテンプレートを指定したチーム作成」を作成することが出来ました。
いざ、実行!
これまでの項で紹介した内容で設定は完了です。
実際に動かしてみましょう!
実行に際して、今回テンプレートとして指定したのはManageAProjectになります。
これで作成したチームは「一般」チャネル以外に以下のチャネルが自動で作成されます。
- Announcements
- Planning
- Resources
実行に当たって、チーム名を異なる形にするために現在の時間をチーム名に設定するようにしました(こうすれば、何回検証しても唯一無二チームが作成されるので検証し放題です)。


実行結果
以下のようにチームを作成することが出来ました!
一般チャネル以外のチャネルが出来ていることが確認できます。

おまけ
初めに紹介した前回の記事を参考にすれば、以下の流れでチームを一括で作成することが出来ます。
具体的な設定については前回の記事をご確認ください!
- グルージェントフローのモデルに入力フォーム「添付ファイル」と外部システム実行自動処理を設定する
- 外部システム実行自動処理の説明については、マニュアルをご参照ください。
- グルージェントフローの申請タスクにエクセルファイルを添付する
- エクセルにはチーム名とオーナーのメールアドレスをテーブル形式で設定しておきます
- 申請する(ユーザーの操作はこれで終了!)
これでエクセルファイル内にあるチーム名を設定することが出来ます。
なお、PowerAutomateのTeamsに関する標準アクションはPowerAutomateのフロー管理者の権限で実施されます。
そのため、HTTPアクションで設定するowner値はフロー管理者にしておいて、エクセル記載のオーナーのメールアドレスは、HTTPアクションの後に標準アクションのメンバー追加を使用してオーナー権限付与してユーザー追加をするのがポイントです!
ほかにも、HTTPアクション後に「チームIDの取得」や「反映タイミングまで待機アクションを設置」など考えることはあります。
とはいえ、今回の記事で紹介したいことは「チームテンプレートを指定してのチーム作成」なので、その説明は省きたいと思います。
上記の部分については是非「やりたいこと」を明確にしたうえで試行錯誤してみてください!
おわりに
認証情報の設定あたりがハードルが高く感じますが、それさえ済めばテンプレートを指定したチーム作成が可能になると考えたら、作成する価値はあるかと思います!
今回の記事は以上になります。
今後もPowerAutomateでお役立ち情報を見つけることが出来れば発信していきたいと思いますので、続編をご期待ください!
