何かのデータを管理している既存のシステムと、Power Automateのクラウドフローとを連携させて使っているというケースは多いでしょう。APIを使って連携できるならそれに越したことはないのですが、なかなかそうもいきません。
多くのシステムではメール送信の機能を持っていたりします。
たとえばレガシーなチケット管理では、担当者を指定すると通知メールを送信するような仕組みがたいていあるでしょう。
職場で利用しているワークフローシステムは、承認結果をメールで通知することができます。以下の内容で承認されましたってやつです。よくありそうですよね。
ふつうの通知メールは件名と要約とリンク等が記載されていて、担当者はそれを処理するわけですが。
このメールをPower Automateで受け取り、その内容を使って後続処理ができたら……。そう考えたことはありませんか?
受信側でAIを使う? いや、JSONで送信すればいい
ぱっと考えそうなのは、今どきのAIによる文章解析です。日本語の文章をコンピュータが処理できる形に要約してくれるかもしれません。
けれど、発想を変えて、メールを送信する側であるレガシーなシステムに、メールの本文を書き換えられる機能があるならば。メールをそのまま後続処理に使えます。
そこでJSONですよ!
JSONとは? という馴染みのない方には、inokageさんのこちらの記事をどうぞ。
記事から例を拝借しました。 //より後ろはコメントなので無視して大丈夫です。
{
"name": "Yamada", // 名前
"age": 30, // 年齢
"skills": ["Python", "JavaScript"] // スキルのリスト
}
このように、波括弧で囲まれ、"name"や"age"などのキー(Excelの表でいうなら列名)のあとに、「:」で区切った後ろに値としてセルの値が入っているような構造です。
"skills"だけは 角括弧に囲まれて"Python"と"JavaScript"という2つの値が記載されています。このように、ひとつのキーに対して複数の値を「配列」として持たせることもできます。
大事なことは、これ、ただの文字列テキストだというところです。
テキストならメールで送信できる
ここで、レガシーシステムのメール送信に話が戻ってきます。
勘のよい人ならもうお気づきですね? メール本文のフォーマットを編集できるのであれば、本文をJSON形式で出力してしまえばよいのです。
Power AutomateにJSONを渡すと何ができる?
たとえば、上流のシステムにはそういう機能がなくても、下記のようなことは比較的かんたんに実現できそうです。
- シンプルにメールの代わりにTeamsで担当者通知
- 承認済みのライセンス付与を自動化
- 申請内容をSharePointやDataverseのテーブルに記録して台帳化
- インシデント情報やFAQの下書きをAI Builderで生成し、投稿まで自動化
- サービスリクエストの問い合わせ文章を代筆
SharePointリストに記録してみる
送信側の設定
たとえば、インシデント記録システムから、このようなメールフォーマットでメールを送信できるようにできたとしましょう。
メール送信ができるようなシステムならば、入力した項目の値を文章の中に配置ができるはずです。JSONとして表現するならば、内容がわかる適当な「キー」と一緒に配置するだけです。
{
"ユーザー":"DDさん",
"発生時刻":"2026/9/20 10:00",
"質問":"Teamsアプリの設置をMarkdownでの入力が可能な状態にしていると、ブラウザからコピーしたURLを貼り付けてもリンクにならず、サイトの名称がテキスト表示されるだけになってしまう。",
"事象再現":"ヘルプデスクの端末でもユーザーと同じ設定にした場合に事象が発生することを確認した。",
"ステータス":"Microsoftに問い合わせ中"
}
受信アカウントのOutlookにフォルダ作成と振り分け設定
メールを受け取るアカウントのOutlookに、適当なフォルダを作成します。Outlook自体のメール振り分け機能を使って、システムの送信元アドレスや、件名で振り分け設定を行うと良いでしょう。
Automateのトリガーを設定
トリガーには「新しいメールが届いたとき(V3)」を設定し、先程Outlookに作成した振り分けフォルダを指定します。
次に「作成」アクションを配置して、式からJSON関数をつかってトリガーの本文を関数に渡すようにします。

受け取るメール自身でも構わないので、テストのJSON本文を送信してみます。
その際に、必ず「オプション」>「テキスト形式に切り替え」をクリックして、メール送信をHTMLではなくテキストのメールとして送信できるようにしておきます。


テスト実行
この状態でメールを受信すると「作成」のなかにJSONの本文が受け取れたことがわかります。

SharePointリストに記録する
ひとまずユーザーだけ「項目追加」アクションで設定してみます。いちどテストでメールを受信しているので、テスト>自動 で先程のトリガーを再度動かすことができます。

outputs('作成')?['ユーザー']
次は日時型の発生時刻も同様に与えてみます。
outputs('作成')?['発生時刻']
なんか時刻がずれてる。テストJSONの日本時間10:00はUTCでは01:00になるはずなので、それとも一致しません。これはよくありません。

convertTimeZone(
outputs('作成')?['発生時刻'],
'Tokyo Standard Time',
'UTC',
'yyyy-MM-ddTHH:mm:ssZ'
)
原因は、SharePointサイトのタイムゾーン設定が米国時間になっていたことでした。

タイムゾーンを変更しました。

先程のConvertTimeZone関数を使ってUTC時刻にしたものが正しく日本時間表示されました。SharePointリストに日時型で登録するときにはUTC時刻へ変換するのが正解です。

あとはテキストなので簡単です。JSONのキー名で値をとってきます。
outputs('作成')?['質問']
outputs('作成')?['事象再現']
outputs('作成')?['ステータス']
要領は基本的に同じ
上記の例ではSharePointリストへの書き込みをしてみましたが、Teamsで担当者にメッセージを飛ばしたり、承認を回したり、AIに渡したり。前段システムからJSON形式で情報を受け渡せるようになれば、Teams通知、承認フロー、SharePoint記録、AI活用などさまざまな自動化へ発展させられます。
まとめ
今回は、レガシーなシステムやワークフローシステムから送信されるメールを、Power Automateで受信して活用する方法を紹介しました。
API連携の仕組みが用意されていないシステムでも、メール本文のフォーマットを自由に編集できるのであれば、JSON形式でデータを出力することでPower Automateとの連携が実現できます。
Power Automateでは受信したメール本文を json() 関数でオブジェクト化できるため、
- Teamsへの通知
- SharePointやDataverseへの記録
- 承認フローの起動
- AI BuilderやCopilotへのデータ連携
- 各種システムとの自動連携
など、さまざまな後続処理へ簡単に発展させることができます。
特に、「メールは送れるけれどAPIはない」というシステムは意外と多く存在します。そのような環境でも、メールを単なる通知手段として扱うのではなく、「構造化データの受け渡し手段」として活用することで、自動化の可能性は大きく広がります。
既存システムを大きく改修することなく、手軽にPower Automateと連携できる方法として、ぜひ試してみてください。



