ささみ学習帳 - sasami's study book

ささみ学習帳

Microsoft365 や Power Platform について学んだこと・アイデアのメモ

Power Automate クラウドフローでTeamsのチャネルを表示状態に変更する

1. はじめに

Microsoft Teams を使っていると、チームに多くのチャネルがあるのに、自分の画面には一部のチャネルしか表示されていない、という場面に出会うことがあります。これは、チャネルの「表示/非表示」がユーザーごとに管理されており、既定では最初のチャネル(一般)以外は非表示になっているためです。

新しくチームに参加したときなどは、重要なチャネルが非表示のままになっていることも多く、ひとつずつ手作業で表示状態に切り替えるのは少し面倒です。

そこで今回は、Power Automate のクラウドフローを使って、指定したチームのチャネルをまとめて表示状態に切り替える方法を紹介します。Microsoft Teams コネクタには「チャネルを表示状態にする」という直接的なアクションは用意されていませんが、ちょっとした工夫で実現できます。

2. 基本的な考え方

ポイントは、Teams の 「セクション」 という機能を利用することです。

セクションは、チャネルやチャットをグループ化して整理できる機能です。そして、セクションにチャネルを追加すると、そのチャネルは自動的に表示状態に切り替わる という挙動があります。この挙動を利用します。

具体的には、クラウドフローで次の操作を行います。

  1. ダミーセクションを作成する
  2. ダミーセクションに、表示状態にしたいチャネルを追加する(ここでチャネルが表示状態になる)
  3. ダミーセクションを削除する

セクションを削除しても、いったん表示状態になったチャネルはそのまま表示状態を維持します。そのため、見た目上はセクションを作る前と変わらない状態で、目的のチャネルだけが表示状態に切り替わる、という仕組みです。

ポイント:ETag(バージョン情報)の引き回し

セクションを操作するアクションでは、リクエストのたびに ETag(バージョン情報)を If-Match ヘッダーで渡す 必要があります。これは、複数の更新が衝突しないようにするための仕組みです。

やや厄介なのは、セクションを操作するたびにこの ETag が更新される という点です。そのため、操作ごとに最新の ETag を取得し、次の操作に引き継いでいく必要があります。今回のフローでは、変数 ETag を用意して、操作のたびに値を上書きしながら使い回しています。

このあたりが、このフローを組むうえで一番のポイントになります。 詳しくはこちらの記事で解説しています。

sasami-axis.hatenablog.com

3. サンプルフロー全体図

このフローは指定したチームのアクセスできるすべてのチャネルを表示状態にします。 フロー全体は次のような構成になります。

フローを手動でトリガーする
 └─ 変数を初期化する - ETag 
 └─ チャネルの一覧表示
 └─ List sections 
 └─ 変数の設定
 └─ Create a section
 └─ 変数の設定 1  
 └─ それぞれに適用する(チャネルの数だけ繰り返し)
     └─ Add an item to a section 
     └─ 変数の設定 2 
 └─ Delete a section 

4. フロー詳細解説

各アクションの設定内容を順番に見ていきます。

4-1. フローを手動でトリガーする

手動トリガー(ボタン)でフローを開始します。今回はシンプルに手動実行としていますが、後述の応用例のように、用途に応じてトリガーを変更することもできます。

4-2. [変数]変数を初期化する - ETag

ETag を保持するための変数を用意します。

設定項目
名前 ETag
種類 文字列
(空のまま)

以降のアクションで、この変数に最新の ETag を格納しながら使い回していきます。

4-3. [Microsoft Teams]チャネルの一覧表示

対象チームのチャネルの一覧を取得します。

設定項目
チーム 表示状態にしたいチームを指定

ここで取得したチャネルの一覧を、後続の「それぞれに適用する」で 1 件ずつ処理します。

4-4. [Microsoft Teams]List sections

対象チームの現在のセクション一覧を取得します(操作 ListSections)。

このアクションのレスポンスに含まれる @microsoft.graph.sectionsVersion が、最初の ETag として必要になります。

4-5. [変数]変数の設定

変数 ETag に、List sections で取得したバージョン情報を格納します。

ETag ← body('List_sections')?['@microsoft.graph.sectionsVersion']

4-6. [Microsoft Teams] Create a section(ダミーセクションの作成)

ダミーセクションを作成します。

設定項目
If-Match @variables('ETag')
Display Name @convertFromUtc(utcNow(),'Tokyo Standard Time','yyyyMMddHHmmss')
Is Expanded true
Sort Type nameAlphabetical

表示名には、他のセクションと名前が重複しないよう、実行時の日時(yyyyMMddHHmmss 形式)を利用しています。最終的に削除するため名前は何でも構いませんが、一意になるようにしておくと安心です。

4-7. [変数]変数の設定 1

セクションを作成すると ETag が変化するため、変数 ETag を作成後の値に更新します。

ETag ← outputs('Create_a_section')?['body/@odata.etag']

4-8. [コントロール]それぞれに適用する(Foreach)

「チャネルの一覧表示」で取得したチャネルの数だけ、次の処理を繰り返します。

繰り返しの対象:

outputs('チャネルの一覧表示')?['body/value']

4-8-1. [Microsoft Teams] Add an item to a section(チャネルをセクションに追加)

ダミーセクションにチャネルを追加します。この操作によって、対象のチャネルが表示状態に切り替わります。

設定項目
Section ID @outputs('Create_a_section')?['body/id']
ETag @variables('ETag')
Item ID @items('それぞれに適用する')?['id']

4-8-2. [変数]変数の設定 2

チャネルを追加するたびに ETag が変化するため、変数 ETag を最新の値に更新します。これを忘れると、次のループや最後の削除でエラーになります。

ETag ← outputs('Add_an_item_to_a_section')?['body/@odata.etag']

4-9. [Microsoft Teams] Delete a section(ダミーセクションの削除)

最後に、作成したダミーセクションを削除します(操作 DeleteSection)。

設定項目
Section ID @outputs('Create_a_section')?['body/id']
ETag @variables('ETag')

セクションを削除しても、すでに表示状態になったチャネルはそのまま残ります。これで、見た目はフロー実行前と同じまま、目的のチャネルだけが表示状態に切り替わった状態になります。

5.(応用)チームの新規メンバーがチャネルを表示するのに活用

ここまでのフローは、groupId に指定したチームのチャネルをまとめて表示状態にするものでした。これを応用すると、チームに新しく参加したメンバーが、自分の画面に全チャネルを一括表示する運用ができます。

ポイントは、チャネルの表示/非表示が フローを実行したユーザー(コネクタの接続アカウント)の画面に反映される ことです。そのため、新しく参加したメンバー自身にフローを実行してもらう必要があります。

具体的な運用案は次のとおりです。

5-1. フローの「実行のみのユーザー」に対象チームを追加する

新規メンバーがこのフローを実行できるよう、フローの 「実行のみのユーザー」 の設定に対象のチームを追加します。これで、チームのメンバーがフローを実行できるようになります。

5-2. フローの実行用 URL を組み立てる

フローの管理画面の URL の末尾にある /details/run に置き換えた URL を作成します。

管理画面の URL:

https://make.powerautomate.com/environments/{環境id}/flows/{フローID}/details

実行用の URL(末尾を /run に置き換え):

https://make.powerautomate.com/environments/{環境id}/flows/{フローID}/run

5-3. 実行用 URL をチームの一般チャネルに投稿して案内する

組み立てた実行用 URL を、チームの 「一般(General)」チャネル に投稿し、新規メンバーには参加時に必ず実行するよう案内します。

これで、新しく参加した人は案内された URL を開いてフローを実行するだけで、自分の画面に全チャネルが表示状態になります。ひとつずつチャネルを表示する手間がなくなり、オンボーディングがスムーズになります。

5-4. 想定する使い方

こんなふうに使えるんじゃないかなというイメージです。

[1] チームに招待されたら一般チャネルの案内メッセージからフロー実行リンクをクリックします。

[2] 表示されたフローを実行します。

[3] フローが実行されました。

[4]Teamsに戻るとチャネルが表示されています!

6. 最後に

今回は、Power Automate のクラウドフローで Teams のチャネルを表示状態に変更する方法を紹介しました。

「セクションにチャネルを追加すると表示状態になる」という挙動を利用し、ダミーセクションの作成 → チャネルの追加 → セクションの削除、という流れで実現しました。ポイントは、セクション更新系アクションで ETag を適切に扱う ことです。

なお、今回のフローはシンプルにするためにあえて考慮していませんが、すでにセクションに追加済みの状態でさらにセクションに追加しようとするとエラーが発生します。今回の方法を応用する場合にはこれにも注意が必要です。

Power Automate クラウドフロー で Teams のセクションを操作する際に必要となる ETag の考え方

はじめに

Power Automate のクラウドフローで、Microsoft Teams の「セクション」を操作するアクションが使えるようになっていました。

セクションというのは、Teams の左側に並んでいるチャットやチャネル、会議などを、自分用のグループにまとめて整理できる機能です。「お気に入り」「プロジェクトA」といった自分だけのグループを作って、その中に関連するチャットを入れておく、というイメージです。このグループ分けを、フローで自動的に作ったり、名前を変えたり、中身を入れ替えたりできるのが今回のアクション群になります。

これらのアクションを触ってみたところ、作成・更新・削除といった「中身を変える」アクションでは ETag(エンティティタグ) という値が必要になります。本記事ではアクションの使い方は最小限にとどめて、ETag の考え方を中心にまとめておきます。

※本記事の内容は 2026 年 6 月時点で確認したものです。Teams のセクションを操作するアクションは比較的新しく、今後仕様が変わる可能性があります。

Microsoft Teams のセクションを操作するアクション

Microsoft Teams コネクタには、セクションを操作するアクションが 9 つ用意されています。役割でざっくり分けると、次のとおりです。

読み取り系アクション

アクション名 何をするアクションか
List sections 自分のセクションを一覧で取り出す
Get a section ID を指定して 1 つのセクションを取り出す
List section items セクションの中に入っている項目(チャット・チャネル・会議チャットなど)を一覧で取り出す

更新系アクション

アクション名 何をするアクションか
Create a section 新しいセクションを作る
Update a section セクションの名前や並び順などを変える
Delete a section セクションを削除する
Add an item to a section 項目をセクションに入れる
Remove an item from a section 項目をセクションから外す
Move a section item 項目を別のセクションへ移す

前提条件・制限事項

実際に試す前に、いくつか押さえておきたい点があります。

  • これらのアクションが操作できるのは 自分自身(サインインしているユーザー)のセクションです。他の人のセクションを並べ替える、といった使い方はできません。
  • システムが用意しているセクション(「チャット」「チームとチャネル」など、もともと用意されている枠)は、削除や名前の変更ができません。自由に作ったり消したりできるのは、自分で作ったセクションだけです。(システムが用意しているセクションでも "Is Expanded"は操作することができました。)

  • システムが用意しているセクションの表示名は予約されており、ユーザー定義セクションには使えません。具体的には以下の名前です。

    • RecentChats(既定のチャット)
    • QuickViews(クイック ビュー)
    • TeamsAndChannels(チームとチャネル)
    • MutedChats(ミュートしたチャット)
    • MeetingChats(会議チャット)
    • EngageCommunities(コミュニティ)

考え方:ETag とは?

ここからが本題です。更新系のアクションを使おうとすると、ETag という入力欄が出てきます。最初は「これは何を入れればいいの?」と戸惑うところなので、考え方を説明します。

下の図は、ETag の考え方を 1 枚にまとめたものです。

ETag は「今の状態を表す番号」

ETag は、ひとことで言うと 「セクションの今の状態を表す番号(バージョンの目印)」 です。

身近なもので例えると、書類の右上に「第 3 版」と書いてあるバージョン番号に近いものです。誰かがセクションの並びを変えるたびに、この番号は新しいものに切り替わります。

なぜこんな番号が必要かというと、「古い情報のまま、うっかり上書きしてしまう」事故を防ぐためです。

例えば、あなたがフローでセクションの名前を変えようとしている、ちょうどその裏で、別の端末から自分でセクションを並べ替えていたとします。このとき、フローが古い状態のまま処理を続けてしまうと、せっかくの並べ替えが消えてしまうかもしれません。そこで「あなたが見ている番号は、本当に今いちばん新しい番号ですか?」と確認するために使われるのが ETag です。番号が一致していれば実行され、古ければ「いったん止めてください」とエラーになります。

ETag が必要なアクション・不要なアクション

ETag が必要になるのは、中身を変える更新系のアクションだけです。読み取り系では必要ありません。

アクション ETag
読み取り系 取得 / 一覧 / 項目の一覧 不要
更新系 作成 / 更新 / 削除 / 項目の追加 / 項目の削除 / 項目の移動 必要

ETag はどこで手に入れるのか

では、その番号(ETag)はどこで手に入れるのでしょうか。答えは、セクションを操作する9つのアクションの結果に入っています

つまり、流れとしてはとてもシンプルで、次の 3 ステップになります。

  1. 一覧(または取得)アクションで、今の ETag を受け取る
  2. その ETag を、更新系アクションの「ETag」欄に渡す
  3. 更新が実行される

ポイントは、更新系アクションを使う直前に、必ず一覧か取得で最新の ETag を取り直しておくことです。前日に取った番号を使い回す、といったことはできません(古い番号はエラーになります)。

よくあるエラー(412 / 428)

ETag まわりでつまずくと、だいたい次の 2 つのエラーに出会います。番号を見れば原因がわかるので、対処法とあわせて覚えておくと安心です。

エラー番号 意味(かんたんに言うと) 対処法
PreconditionFailed (statusCode:412) 渡した ETag が古い(その間にセクションが変わった) もう一度、一覧/取得で最新の ETag を取り直してから実行する
PreconditionRequired (statusCode:428) ETag を渡し忘れている(必要なのに空) 更新系アクションの ETag 欄に、一覧/取得で受け取った値を入れる

どちらも「番号がそろっていませんよ」というエラーです。その時点で最新のETagを取り直す**ところに戻れば、たいてい解決します。

サンプルフロー全体(セクション名を変える例)

考え方がわかったところで、いちばんシンプルな例として「自分で作ったセクションの名前を変える」フローを見てみます。ETag の流れがはっきりわかる、最小構成です。

1. 手動でフローをトリガーします(インスタント クラウド フロー)
        ↓
2. [Microsoft Teams] List sections
        ↓   ここで「今の ETag」を受け取る
3. [Microsoft Teams] Create a section
        ↓   ・新しい名前
            ・ETag ← 手順 2 の出力に含まれるETagの値を渡す
4. [Microsoft Teams] Update a section
            ・対象セクションの ID
            ・新しい名前
            ・ETag ← 手順 3 の出力に含まれるETagの値を渡す

フロー解説

1. [Microsoft Teams] List sections

まず「List sections」アクションを置きます。特別な入力は不要で、実行すると自分のセクションの一覧と、今の ETag(バージョン) が返ってきます。

この後の更新で使うのは、この結果に含まれる ETag の値です。

2. [Microsoft Teams] Create a section

次に「Create a section」アクションを置き、下記のように設定します。

入力欄 入れる値
ETag 手順 1 の一覧アクションで受け取った ETag
@body('List_sections')?['@microsoft.graph.sectionsVersion']
DisplayName 変更後の新しい名前

3. [Microsoft Teams] Update a section

次に「Update a section」アクションを置き、次のように設定します。

入力欄 入れる値
Section ID 名前を変えたいセクションの ID
ETag 手順 2 の一覧アクションで受け取った ETag
@{outputs('Create_a_section')?['body/@odata.etag']}
Display Name 変更後の新しい名前

ここで ETag を入れ忘れると 428、古い値が入っていると 412 のエラーになります。手順 2 の直後に手順 3 を置き、そのときの最新の ETag をそのまま渡すのが基本の形です。

これで、フローを実行すると目視はできませんが、セクションが作成されすぐにセクションの名前が変わります。削除や、項目の追加・移動なども、考え方は同じです。「セクション系アクションでETag を取得する → 更新系アクションに渡す」 という流れを覚えておけば、どのアクションにも応用できます。

複数の更新をまとめて行うときの注意点

最後に、少しだけ応用の注意点です。

ETag は 「セクション全体の今のバージョン」 をあらわしています。そのため、1 回更新するたびに番号が新しく切り替わります

ということは、たとえば「3 つのセクションを続けて更新する」といったフローで、最初に 1 回だけ取った ETag を 3 回とも使い回すと、2 回目以降は番号が古くなっていて 412 エラーになってしまいます。

複数の更新を続けて行う場合は、更新するたびに、その直前で一覧(または取得)アクションを実行して ETag を取り直すようにしてください。少し手間に見えますが、これが事故なく確実に処理するためのコツです。

さいごに

今回は、Power Automate クラウドフローで Teams のセクションを操作する際に必要となる ETag について、考え方を中心にまとめました。 調べてみるとセクション系アクションの元となるGraph APIは未だbetaのため、これらの仕様も今後変更されるかもしれません。

ETag は最初こそ取っつきにくい言葉ですが、「今の状態を表す番号。更新するときは最新のものを渡す」 とだけ押さえておけば、難しいものではありません。エラーが出ても、番号(412/428)を見て一覧で取り直せば、たいてい解決します。

参考情報

Power Automate クラウドフロー だけでMicrosoft 365 に関する質問に答えるボット的なものを作る【超簡単】【Microsoft 365 Self-Help コネクタを検証してみた】💎

はじめに

Power Automate クラウドフローだけで、Microsoft 365 に関する質問に答えてくれるチャットボット的なものを作る方法です。

Microsoft 365 Copilot も Copilot Studio も AI Builder も使わずに、自前でナレッジベースやFAQを準備することなく、Teams のチャネル上で動くかんたんな質問応答ボットを作ることができます。クラウドフロー1本だけで完結します。

この記事の内容は、プレミアムコネクタを利用します。Power Automate Premium  等のライセンスが必要になります。

Microsoft 365 Self-Help コネクタとは

このフローは「Microsoft 365 Self-Help コネクタ」を使用してみたサンプルフローです。

Microsoft 365 Self-Help コネクタは、Microsoft 365 製品に関する問題のセルフヘルプ ソリューションを返してくれるコネクタです。

この記事を投稿した2026年6月時点ではこのコネクタは"プレビュー"となっています。正式リリース前のものであるため、仕様変更・廃止などの可能性があります。

▪️どんなコネクタ?

  • ユーザーの自然言語の質問に対する解決策を生成AIで返してくれます。
  • Microsoft サポートが利用しているのと同じ仕組みを使えるとのことです。(リファレンスページの説明より。真偽不明)

▪️「Get self-help insights」アクション

今回使うのは「Get Self-help insights)」という1つのアクションだけです。

  • 入力:ユーザー クエリ テキスト(Text)… ユーザーの質問文を文字列で渡します。
  • 出力:GPTInsight … 渡したクエリに対する GPT の回答(分析情報)が返ってきます。

この GPTInsight をそのまま Teams に投稿するだけで、質問応答ボットのできあがりです。

learn.microsoft.com

▪️利用できる製品・前提条件

このコネクタは Premium コネクタであるため、Power Automate Premium などのライセンスが必要になります。

動作イメージ

作成したフローを動作させてみると、このような応答が返ってきます。

また、「Microsoft 365 Self-help」という名前ですが、Windows や Surface に関する質問にも回答しました。

長すぎず短すぎず、簡潔な応答が返されていることがわかります。

サンプルフロー全体図

フローはとてもシンプルで、次の4ステップだけです。

  1. [Microsoft Teams]チャネルに新しいメッセージが追加されたとき(トリガー)
  2. [Content Conversion]HTML をテキストに変換する
  3. [Microsoft 365 Self-Help]Get self-help insights
  4. [Microsoft Teams]チャネル内のメッセージで応答します

変数も条件分岐もありません。これだけです。

事前準備として、Teams にボット用のチャネルを1つ作成しておきます。 今回は「M365Self-Help」というチャネルを使っています。

フロー詳細解説

▪️1. チャネルに新しいメッセージが追加されたとき

事前に作成したチャネル(M365Self-Help)を指定します。このチャネルに新しいメッセージが投稿されると、フローが動き出します。ユーザーはこのチャネルに質問を書き込む、という想定です。

  • パラメーター
    • チーム
      • 事前準備でチャネルを作成したチーム
    • チャネル
      • 事前準備で作成したチャネル

▪️2. HTML をテキストに変換する

Teams の投稿メッセージ本文は HTML 形式で渡ってきます。そのままだとタグが混ざってしまうため、「コンテンツの変換」コネクタの「HTML をテキストに変換する」アクションでプレーンテキストに変換します。

  • パラメーター
    • コンテンツ
      • トリガーの「本文(Body)」
      • @{triggerOutputs()?['body/body/content']}

▪️3. Get self-help insights

変換したプレーンテキストを、Microsoft 365 Self-Help コネクタの「セルフヘルプの分析情報を取得する」アクションのクエリとして渡します。

  • パラメーター
    • User Query Text
      • 手順2の出力(プレーンテキスト)
      • @{body('Html_からテキスト')}

▪️4. チャネル内のメッセージで応答します

最後に、取得した回答をトリガーとなったメッセージへの返信として投稿します。

  • パラメーター
    • 投稿者
      • Flow bot
    • 投稿先
      • チャネル
    • メッセージ ID
      • トリガーの「メッセージ ID」
      • @{triggerOutputs()?['body/id']}
    • チーム/チャネル
      • 質問が投稿されたチーム・チャネル
    • メッセージ
      • 手順3の出力「GPTInsight」
      • 応答にはHTMLが含まれるので、コードビューに切り替えてHTMLを整えておくことをお勧めします。
      • <p class="editor-paragraph"><br>@{outputs('Get_self-help_insights')?['body/AIInsights/GPTInsight']}</p><br>

「メッセージ ID」にトリガーのメッセージ ID を指定することで、質問への返信(スレッド)として回答が付くようになります。

さいごに

Power Automate クラウドフロー1本だけで、Microsoft 365 の質問に答えるボット的なものを作ることができました。

ナレッジの準備が一切不要で、コネクタが返してくれる GPTInsight を投稿するだけ、というお手軽さが魅力です。社内のちょっとしたヘルプデスク窓口や、自分用の M365 お助けボットとして遊んでみるのも面白いかもしれません。

ただし、今回のサンプルフローは、即時の応答ができないことが難点です。これは、今回のフローが「チャネルに新しいメッセージが追加されたとき」トリガーの動作(ライセンスにより 1分~15分程度の間隔で定期実行)に依存しているためです。本格的に業務利用する場合は、Power Apps のアプリからこのコネクタを利用する等実装方法を検討するのが良さそうです。

また、回答は Microsoft のサポート記事ベースなので、自社固有の手順やルールには答えられない点には注意が必要です。そういった用途には Copilot Studio 等を検討するのが良さそうです。

Power Automate クラウドフローでPlanner のタスク チャットを取得・投稿する💎

 

はじめに

Power Automate クラウドフローでPlanner のタスクチャットを取得・投稿する方法です。

この記事の内容は、プレミアムコネクタを利用します。Power Automate Premium  等のライセンスが必要になります。

 

 

▪️タスク チャットとは

従来の「コメント機能」に代わって導入された “タスク専用のチャット機能” で、タスクごとに 1 つのチャットスレッドを持ち、メンション・編集・削除などモダンなチャット体験ができる仕組みです。

タスクチャットと以前のコメント機能の違い

タスクチャットと旧コメント機能は互換性のない別の機能です。

項目 タスク チャット 旧コメント
通知 @メンションされた人だけ通知 プランの M365 グループ全員に通知
編集/削除 可能 不可

 

support.microsoft.com

 

▪️タスクチャットを投稿する

考え方

Power Automate のPlanner コネクタにはタスクチャットを投稿するアクションは用意されていませんが、Graph APIを呼び出すことで投稿することが可能です。

Graph API の「Create plannerTaskChatMessage」エンドポイントを利用します。

learn.microsoft.com

 

この記事を投稿した2026年5月時点ではこれらのタスクチャット関連のAPIは"beta"となっています。正式リリース前のものであるため、仕様変更・廃止などの可能性があります。

 

フロー全体



 

フロー解説

1.Planner のタスクのIdを取得

Planner コネクタの各種アクションなどを用いて、対象となる Planner タスクの ID を取得します。

 

2.[HTTP with Microsoft Entra ID (事前承認)] HTTP 要求を呼び出します- create Task Message

タスクメッセージを作成します。

  • 方法
    • POST
  • 要求のURL
  • 要求の本文
    • {
        "content":"ここにメッセージを記述(HTML可)"
      }
    • プレーンテキストの他にHTMLがサポートされているようです。
    • メンションを含むメッセージを記述することもできます。
    • {
        "content":"<div><span itemid=\"0\"
      itemtype=\"https://schema.skype.com/Mention/Person\">
      </span>ここにメッセージを記述(HTML可)</div>",

      "mentions":[ { "mentioned": "メンションするユーザーID(GUID)", "position":0,
      "mentionType": "user"
         
      } ] }

 


 

▪️タスクチャットを取得する

考え方

Power Automate のPlanner コネクタにはタスクチャットを取得するアクションは用意されていませんが、Graph APIを呼び出すことで取得することが可能です。

Graph API の「List messages」エンドポイントを利用します。

learn.microsoft.com

 

この記事を投稿した2026年5月時点ではこれらのタスクチャット関連のAPIは"beta"となっています。正式リリース前のものであるため、仕様変更・廃止などの可能性があります。

 

フロー全体

フロー解説

1.Planner のタスクのIdを取得

Planner コネクタの各種アクションなどを用いて、対象となる Planner タスクの ID を取得します。

 

2.[HTTP with Microsoft Entra ID (事前承認)] HTTP 要求を呼び出します- list Task Messages

タスクメッセージを取得します。

  • 方法
    • GET
  • 要求のURL
    • https://graph.microsoft.com/beta/planner/tasks/{タスクid}/messages

下記のようなJSONで取得されます。

削除済みのメッセージもこのように情報が残っていることが確認できます。


[注意点] タスクチャットがないタスクではNotFoundエラーが発生する

タスクチャットが未投稿のタスクに対して実行すると、404エラーが発生します。

 

さいごに

この記事の内容は Planner の Basic プランで動作を確認しています。

とある目的のフローを作成する際に確認した内容を備忘録的にまとめてみました。
現時点では beta の為本格的な利用は避けるべきですが、正式リリース後は便利に使えそうで期待しています。

 

[blog:g:4207112889948320640:banner]

[blog:g:11696248318754550877:banner]

Power Automate クラウドフローでOutlook イベントを転送する

 

はじめに

Power Automate クラウドフローでOutlook のイベントを転送する方法です。

 

考え方

Power Automate のOffice 365 Outlook コネクタにはイベントを転送するアクションは用意されていませんが「HTTP 要求を送信します」アクションを使ってGraph APIを呼び出すことで作成することが可能です。

Graph API の「event: forward」エンドポイントを利用します。

learn.microsoft.com

 

 

フロー全体

 

フロー解説

1.[Control]スコープ - デフォルトカレンダーを取得

なんらかの手段で転送したいイベントのidを取得します。サンプルフローでは単純に「イベントの取得(V4)」アクションで取得した先頭のイベントのidを取得しているだけなので説明は省略します。

 

2.[Office 365 Outlook] HTTP 要求を送信します-イベントの転送

イベントの転送を行います。

  • URI
  • メソッド
    • POST
  • 本文
    • {
        "ToRecipients":[
            {
              "EmailAddress": {
                "Address":"転送先メールアドレス"
              }
            }
           ],
        "Comment": "コメント(省略可能)"
      }
    • 複数の転送先を指定することも可能です。
    • {
        "ToRecipients":[
            {
              "EmailAddress": {
                "Address":"転送先メールアドレス"
             }
            },
            {
              "EmailAddress": {
                "Address":"転送先メールアドレス"
              }
            }
           ],
        "Comment": "コメント(省略可能)"
      }
  • コンテンツの種類
    • application/json

 

さいごに

とある目的のフローを作成する際に確認した内容を備忘録的にまとめてみました。

 

 

Power Automate クラウドフローで OneDrive for Business に新しいフォルダを作成する

はじめに

OneDrive for Business コネクタには単純にフォルダーを作成するアクションがありません。(2026年3月現在)

そこで代わりの手段を調べて見ました。

[手段1] 「ファイルの作成」アクションを使う

OneDrive for Business コネクタの「ファイルの作成」「パスを使用したファイルのコピー」「ファイルのコピー」といったアクションは、ファイルの作成先・コピー先に存在しないフォルダパスを指定するとそのフォルダを作成してファイルを作成する動作をします。これを利用してダミーのファイルを作成する操作でフォルダを作成し、そのあとでダミーファイルを削除します。

フロー全体

アクション詳細

1. 「ファイルの作成」アクション

ダミーファイルとともにフォルダを作成します。

パラメータ

  • フォルダーのパス
    • 作成するフォルダーのパス
    • 例: /newfolder
    • 例: /Temp/newfolder/newfolder/newfolder というようにフォルダ階層を作成することもできる
  • ファイル名
    • 使用禁止文字でなければなんでもOK
  • ファイルコンテンツ
    • 0 1文字でok

2.ファイルの削除

ダミーファイルを削除します。

パラメータ

  • ファイル
    • @outputs('ファイルの作成')?['body/Id']

[手段2] SharePoint コネクタの「新しいフォルダーの作成」アクションを使う

OneDrive for Business は内部的にはSharePointと同じ仕組みで動作していると言います。そこでSharePointコネクタの「新しいフォルダーの作成」アクションを使用してフォルダーの作成ができること確認しました。

アクション詳細

パラメータ

  • サイトのアドレス
  • 一覧またはライブラリ
    • ドキュメント
    • ※カスタム値として"ドキュメント"と入力します
    • ※ユーザーの言語設定に依存します 英語のユーザーの場合は"Documents"でした
  • フォルダーのパス
    • 作成するフォルダーのパス
    • 例: /newfolder
    • 例: /Temp/newfolder/newfolder/newfolder というようにフォルダ階層を作成することもできる

参考

OneDrvieの詳細ペインのパスで、直接リンクをコピーすることで簡単にサイトアドレスを確認できます。

さいごに

どちらの手段でも問題なく作成することはできますが、手段1の方が簡単でシンプルかもしれません。

Power Automate クラウドフローでOneNoteにタイトル付きでページを作成する

はじめに

OneNote(Business)コネクタの備忘録的まとめです。 クラウドフローでOneNoteにタイトル付きでページを作成する方法について解説します。

タイトルを指定してページを作成するポイント

ページを作成するアクションにタイトルのパラメータはありません。

一見するとページタイトルを設定できないように思えますが、OneNote(Business)コネクタのページの既知の問題と制限事項には次のように書かれています。

コネクタは現在、ページの作成アクションの明示的な入力パラメーター Page Title をサポートしていません。これは、OneNote API の実装に起因する制限です。ただし、タイトルは、<title></title> タグを使用して HTML のページ コンテンツの一部として指定できます。

しかし、単に <title>タイトル文字列</title> とページコンテンツ内に記述しただけでは、タイトルは設定されません。
タイトルを設定するには次の3つのポイントがあります。

  • コードビューで記述する必要がある
  • HTMLの構造を記述する必要がある
  • クラシックデザイナーで保存する必要がある

1.コードビューで記述する必要がある

ページコンテンツの入力エリアは、右端の</>アイコンをクリックすることでHTMLビューとコードビューを切り替えることができます。 HTMLコードはコードビューで入力する必要があります。

2.HTMLの構造を記述する必要がある

OneNote(Business)コネクタのページの既知の問題と制限事項を読むと、ただ単に<title>タイトル文字列</title>と書けば良いとも読み取れますが、それではタイトルが設定されません。 タイトルを認識させるには正しいHTML構造を記述する必要があります。

タイトルの設定が確認できた最小限のHTML構造は下記のようになります。

<html>
<head>
<title>タイトル</title>
</head>
<body>
<p class="editor-paragraph">テストです。</p>
</body>
</html>

※<body></body>タグの間にページコンテンツを記述します。

3.クラシックデザイナーでフローを保存する必要がある

2026年3月時点で検証した結果では、新しいデザイナーで保存したフローではページタイトルは設定できませんでした。 必ずクラシックデザイナーでフローを保存する必要があります。

【余談】「クイックノートにページを作成」アクションはページのゴミが出力される問題がある

OneNote(Business)コネクタには「セクションにページを作成」と「クイックノートにページを作成」の2つのアクションがありますが、どちらでも前述の3つのポイントは有効です。 ただし、「クイックノートにページを作成」アクションでは、コードビューで指定すると余分なダブルクォーテーションが出力されたり、改行が ¥n と文字として出力される不具合があるようです。 不具合が解消されるまでは、クイックノートでも「セクションにページを作成」アクションを利用した方が安全です。

【余談】ページの更新でタイトルを指定することも可能

「ページのコンテンツの更新」アクションでも、既存ページのタイトルを更新することができます。

「新しいデザイナーが使いたい」「HTMLを書くのが面倒」という場合は、このの方法も有効です。

遅延アクションで1秒待つことをおすすめ

ページの作成直後に「ページコンテンツの更新」アクションを実行するとエラーが発生する場合があります。 ページの作成アクションが実行完了してもページの作成にやや時間がかかるためです。 そのため、ページの作成アクションと更新アクションの間に「遅延」アクションを挿入し、1秒待機させることで安定して動作します。

参考情報

learn.microsoft.com

sasami-axis.hatenablog.com

sasami-axis.hatenablog.com