【Microsoft Flow】フローを利用して Office 365 サービス正常性を監視する

# はじめに

Microsoft Flow を利用して Office 365 のサービス正常性を監視し、インシデント発生時に管理者へ自動で通知するフローの作成手順メモ。

今回は以下の２パターンの状況をトリガーにして管理者へのメール通知を行う構成の実装手順をそれぞれ紹介する。

- 現在発生中のインシデントが１件以上ある場合
- 過去１時間以内にステータスがアップデートされたインシデントが１件以上ある場合

# 前提

- Azure Active Directory
- Office 365（Outlook,Microsoft Flow）
- Office 365 Service Communications API [<sup>↗</sup>](https://docs.microsoft.com/ja-jp/office/office-365-management-api/office-365-service-communications-api-reference)

# 手順

## [２パターン共通]Azure Active Directory へのアプリケーションの登録

ブラウザから Azure ポータル[<sup>↗</sup>](https://portal.azure.com/)に接続し、左ペインより[Azure Active Directory]-[アプリの登録(プレビュー)]を開いて、画面上部の[+新規登録]をクリック。
![スクリーンショット 2019-04-03 13.53.38.png](https://qiita-image-store.s3.amazonaws.com/0/258416/fcf5d855-5d97-2a4e-8971-8b7a62b8c136.png)

アプリケーションの登録画面が開く。[名前]で任意のアプリ名（例：365kanshiApp）を指定し、[登録]をクリック。[^1]
![スクリーンショット 2019-04-03 14.01.03.png](https://qiita-image-store.s3.amazonaws.com/0/258416/7b774c83-d121-8d76-57d1-fe7283c6bebc.png)

新規登録したアプリの概要画面を開く。画面中央に表示される[アプリケーション(クライアント)ID]と[ディレクトリ(テナント)ID]の値をのちほどフロー作成手順の中で設定するので控えておく。
画面中央の[API アクセス許可の表示]をクリック。
![スクリーンショット 2019-04-03 14.14.50.png](https://qiita-image-store.s3.amazonaws.com/0/258416/de3f207b-b82a-1201-8238-d3630adcef86.png)

API のアクセス許可画面が開く。アクセス許可一覧で既に登録されている[User.Read]をクリック。
![312e706e67.png](https://qiita-image-store.s3.amazonaws.com/0/258416/d229d8a5-b9d6-b1f4-20f5-32ee2bb07a2a.png)


このアクセス許可は不要のため、[アクセス許可の削除]をクリックし、確認ダイアログで[はい、削除します]をクリックして削除。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3235383431362f30663739353335312d333137312d633765612d626564352d3838663462346362316561662e706e67.png](https://qiita-image-store.s3.amazonaws.com/0/258416/dd51021c-1a49-0ded-8bd6-a9197ef2d62a.png)


API のアクセス許可画面に戻る。[+アクセス許可の追加]をクリック。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3235383431362f36303464623738642d663339312d626134622d646639322d3234343961306563666635362e706e67.png](https://qiita-image-store.s3.amazonaws.com/0/258416/0f9286dd-ba87-20a8-db86-ebc5586ff2fa.png)


API一覧より[Office 365 Management APIs]を選択。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3235383431362f65396561396165392d653636382d396165362d613265622d3737366437393762306662652e706e67.png](https://qiita-image-store.s3.amazonaws.com/0/258416/6becab02-41b3-9017-651c-9833ff7878bd.png)


[アプリケーションの許可]を選択し、[ServiceHealth.Read]にチェックを入れて、[アクセス許可の追加]をクリック。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3235383431362f30383033346233382d343130382d363132362d366563362d3437626235636264663535372e706e67.png](https://qiita-image-store.s3.amazonaws.com/0/258416/b8d5bcf1-c689-c222-a27c-39e9824ddf40.png)

API のアクセス許可画面に戻る。画面下部の[XXに管理者の同意を与えます]をクリックし、確認ダイアログで[はい]をクリック。
![スクリーンショット 2019-04-03 14.38.00.png](https://qiita-image-store.s3.amazonaws.com/0/258416/f806c5dc-43c6-9e5c-fe18-af9bd500b3d6.png)

[ServiceHealth.Read]に対して管理者の同意が付与され、緑色のチェックが付く。
左ペインより[証明書とシークレット]をクリック。
![スクリーンショット 2019-04-03 16.34.14.png](https://qiita-image-store.s3.amazonaws.com/0/258416/2a3cf435-e335-faf0-992a-bde24ab08b99.png)

証明書とシークレット画面が開く。[+新しいクライアント シークレット]をクリック。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/258416/2ca39473-1cf1-fa8f-eecb-2aaf8b11c06e.png)

任意の有効期限を選択して、[追加]をクリック。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/258416/046c3068-6aad-cad1-3fee-c66b5d2a6a50.png)

新規追加されるクライアントシークレットの値は、のちほどフロー作成手順の中で設定するので控えておく。
![スクリーンショット 2019-04-03 16.44.02.png](https://qiita-image-store.s3.amazonaws.com/0/258416/8fb2c14a-3d60-0355-7a29-5dd4da0f19f8.png)

## フローの作成（現在発生中のインシデントがあれば通知パターン）

### 1. フローを新規作成

1. Microsoft Flow を起動してマイ フロー画面を表示
2. [新規]-[一から作成]メニューをクリック

### 2. スケジュールのトリガーの作成
本フローを１時間に一回のスケジュールで実行するトリガーを作成する。

1. トリガー一覧より、[スケジュール]を選択
2. [新しいパラメータの追加]をクリックして[タイムゾーン]と[開始時刻]にチェックを入れ、アクションの欄外をクリックしてパラメータを追加

![image.png](https://qiita-image-store.s3.amazonaws.com/0/258416/4fa4e41a-f4d6-39e2-2b28-310350108d5d.png)

3.プロパティを以下のように設定

|プロパティ名|値|説明|
|---|---|---|
|間隔|*1*|
|頻度|*時間*|
|タイム ゾーン|任意のタイムゾーン|
|開始時刻|定期実行を開始したい`yyyy-MM-ddTHH:mm:ss`形式の任意の時刻|※時刻末尾に「Z」は不要|

![スクリーンショット 2019-04-03 17.21.13.png](https://qiita-image-store.s3.amazonaws.com/0/258416/4f210f76-e94f-9707-1fb7-323fcbd0c7d3.png)

### 3. HTTP アクションの作成
Office 365 Service Communications API を呼び出して、フロー実行時点の Office 365 の正常性ステータスを取得するアクションを作成する。

1. [新しいステップ]をクリック
2. アクション一覧より、[HTTP]を選択
3. プロパティを以下のように設定

|プロパティ名|値|説明|
|---|---|---|
|方法|*GET*|
|URI|*https\://manage.office.com/api/v1.0/<テナント ID>/ServiceComms/CurrentStatus*|<テナント ID>はアプリ登録時に控えたディレクトリ(テナント)IDを指定|
|認証|*Active Directory OAuth*||
|テナント|<テナント ID>|アプリ登録時に控えたディレクトリ(テナント)IDを指定|
|対象ユーザー|*https\://manage.office.com/*||
|クライアント ID|<クライアント ID>|アプリ登録時に控えたクライアント IDを指定|
|資格情報の種類|*シークレット*||
|シークレット|<クライアントシークレット>|アプリ登録時に控えたクライアントシークレットを指定|

![スクリーンショット 2019-04-03 17.30.46.png](https://qiita-image-store.s3.amazonaws.com/0/258416/c2aa28af-c726-789f-4cf7-afca75615edf.png)

### 4. JSON の解析アクションの作成

API から取得した Office 365 の正常性ステータスの json データをパースして次手順で利用できるようにする。

1. [新しいステップ]をクリック
2. アクション一覧より、[JSON の解析]を選択
3. プロパティを以下のように設定

|プロパティ名|値|
|---|---|
|コンテンツ|*`@{body('HTTP')}`*|
|スキーマ|下記の schema.json の内容（クリックして展開）を設定|

<details><summary>schema.json</summary><div>

```json-doc
{
    "type": "object",
    "properties": {},
        "value": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "FeatureStatus": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "FeatureDisplayName": {},
                                "FeatureName": {},
                                "FeatureServiceStatus": {},
                                "FeatureServiceStatusDisplayName": {}
                            }
                        }
                    },
                    "Id": {},
                    "IncidentIds": {},
                    "Status": {},
                    "StatusDisplayName": {},
                    "StatusTime": {},
                    "Workload": {},
                    "WorkloadDisplayName": {}
                }
            }
        }
}
```
</div></details>

![image.png](https://qiita-image-store.s3.amazonaws.com/0/258416/74b394b2-ec32-ed24-d99a-48efdc16fa34.png)


### 5. アレイのフィルター処理アクションの作成

API から取得した Office 365 の正常性ステータスの json データから、フロー実行時点でインシデントが発生しているサービスのみをフィルターして取得するようにする。

1. [新しいステップ]をクリック
2. アクション一覧より、[アレイのフィルター処理]を選択
3. [詳細設定モード]をクリックし、プロパティを以下のように設定

|プロパティ名|値|
|---|---|
|差出人|*`@body('JSON_の解析')?['value']`*|
|詳細設定モード|*`@not(equals(length(item()?['IncidentIds']), 0))`*|

![image.png](https://qiita-image-store.s3.amazonaws.com/0/258416/1b4edd22-95ab-aca4-6186-c0ded6adaf43.png)

### 6. 条件アクションの作成

前アクションのフィルター結果が１件以上である場合にのみ通知メールを送信するようにする。

1. [新しいステップ]をクリック
2. アクション一覧より、[条件]を選択
3. 左辺の[値の選択]を選択して[式]に*`length(body('アレイのフィルター処理'))`*を設定し、[OK]をクリック

![image.png](https://qiita-image-store.s3.amazonaws.com/0/258416/e8e34ec4-0f29-3659-c381-3df489147272.png)

4.オペレーターおよび右辺を以下のように設定

|プロパティ名|値|
|---|---|
|オペレーター|*次の値に等しい*|
|右辺|*`0`*|

![image.png](https://qiita-image-store.s3.amazonaws.com/0/258416/8bdaa256-fe6d-0246-867d-2b01d1eef238.png)

### 7. 条件アクションの「いいえ」内で HTMLテーブルの作成 アクションの作成

インシデント情報の json データを HTML テーブルに変換し、通知メール内で HTML 要素として利用可能にする。

1. 条件アクションの「いいえ」内の[アクションの追加]をクリック
2. アクション一覧より、[HTML テーブルの作成]を選択
3. [詳細オプションを表示する]をクリックし、プロパティを以下のように設定

|プロパティ名|値|
|---|---|
|開始|*`@{body('アレイのフィルター処理')}`*|
|ヘッダーを含める|*はい*|
|列|*カスタム*|

4.ヘッダーを以下のように設定

|ヘッダー|値|
|---|---|
|IncidentIds|*`@item()?['IncidentIds']`*|
|DisplayName|*`@item()?['WorkloadDisplayName']`*|
|StatusDisplayName|*`@item()?['StatusDisplayName']`*|

![image.png](https://qiita-image-store.s3.amazonaws.com/0/258416/915715b9-ea56-f98d-8b22-67b5e072d83c.png)

### 8. 条件アクションの「いいえ」内で メールの送信 アクションの作成

担当者に送信する通知メールを構成する。

1. 条件アクションの「いいえ」内の[アクションの追加]をクリック
2. アクション一覧より、[メールの送信]を選択
3. プロパティを以下のように設定

|プロパティ名|値|
|---|---|
|宛先|通知メール送信先メールアドレス|
|件名|*`[障害] JST @{addHours(utcNow(), 9, 'yyyy/MM/dd HH:mm')} Office 365 インシデント発生サービス数：@{length(body('アレイのフィルター処理'))}`*|
|本文|下記の body.html の内容（クリックして展開）を設定|

<details><summary>body.html</summary><div>


```body.html
<html>
<head>
  <style> 
table {
    font-family: "arial", Times, serif;
    border-collapse: collapse;
    width: 100%;
}
td, th {
    border: 1px solid #ddd;
    padding: 4px;
}
th {
    padding-top: 8px;
    padding-bottom: 8px;
    text-align: left;
    background-color: #3399ff;
    color: white;
}
  </style>
</head>
<body>
@{body('HTML_テーブルの作成')}
</body>
</html>
```

</div></details>

![image.png](https://qiita-image-store.s3.amazonaws.com/0/258416/954f935b-f135-0f4a-d743-36390b3f5d54.png)


4.[詳細オプションを表示する]をクリックして、[HTML]を`はい`に設定

![image.png](https://qiita-image-store.s3.amazonaws.com/0/258416/cdab7e4b-030f-2260-5437-593f32cd5e74.png)

### 9. フローの保存

任意のフロー名を指定して[保存]をクリックしフローを保存する。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/258416/eff50673-fb41-1c5f-df5f-4db29fcff9c5.png)

### 動作確認（現在発生中のインシデントがあれば通知パターン）

トリガーで設定した時刻にフローが実行され、実行時点で発生中のインシデントが１件以上ある場合は下記のようなメールが設定された宛先に配信される。

![スクリーンショット 2019-04-05 15.23.59.png](https://qiita-image-store.s3.amazonaws.com/0/258416/bfc82794-7852-3586-75da-ef23415599ea.png)

メール通知されたインシデントについて Office 365 管理センターから確認してみる。

サービス正常性画面[<sup>↗</sup>](https://admin.microsoft.com/Adminportal/Home#/servicehealth)を見ると、メール通知されたインシデントIDのインシデント／アドバイザリが現在発生中であることが確認できる。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/258416/6e12d6d3-82ba-8b2e-9be4-76e5a74f5e2d.png)

## フローの作成（過去１時間以内にアップデートされたインシデントがあれば通知パターン）

### 1. フローを新規作成

1. Microsoft Flow を起動してマイ フロー画面を表示
2. [新規]-[一から作成]メニューをクリック

### 2. スケジュールのトリガーの作成
本フローを１時間に一回のスケジュールで実行するトリガーを作成する。

1. トリガー一覧より、[スケジュール]を選択
2. [新しいパラメータの追加]をクリックして[タイムゾーン]と[開始時刻]にチェックを入れ、アクションの欄外をクリックしてパラメータを追加

![image.png](https://qiita-image-store.s3.amazonaws.com/0/258416/4fa4e41a-f4d6-39e2-2b28-310350108d5d.png)

3.プロパティを以下のように設定

|プロパティ名|値|説明|
|---|---|---|
|間隔|*1*|
|頻度|*時間*|
|タイム ゾーン|任意のタイムゾーン|
|開始時刻|定期実行を開始したい`yyyy-MM-ddTHH:mm:ss`形式の任意の時刻|※時刻末尾に「Z」は不要|

![スクリーンショット 2019-04-03 17.21.13.png](https://qiita-image-store.s3.amazonaws.com/0/258416/4f210f76-e94f-9707-1fb7-323fcbd0c7d3.png)

### 3. HTTP アクションの作成
Office 365 Service Communications API を呼び出して、Office 365 の正常性ステータスのメッセージ履歴を取得するアクションを作成する。

1. [新しいステップ]をクリック
2. アクション一覧より、[HTTP]を選択
3. プロパティを以下のように設定

|プロパティ名|値|説明|
|---|---|---|
|方法|*GET*|
|URI|*https\://manage.office.com/api/v1.0/<テナント ID>/ServiceComms/Messages*|<テナント ID>はアプリ登録時に控えたディレクトリ(テナント)IDを指定|
|認証|*Active Directory OAuth*||
|テナント|<テナント ID>|アプリ登録時に控えたディレクトリ(テナント)IDを指定|
|対象ユーザー|*https\://manage.office.com/*||
|クライアント ID|<クライアント ID>|アプリ登録時に控えたクライアント IDを指定|
|資格情報の種類|*シークレット*||
|シークレット|<クライアントシークレット>|アプリ登録時に控えたクライアントシークレットを指定|

![スクリーンショット 2019-04-03 20.13.04.png](https://qiita-image-store.s3.amazonaws.com/0/258416/408b36d6-27f3-72df-4bb1-07b7ab37b8e8.png)

### 4. JSON の解析アクションの作成

API から取得した 正常性ステータスの json データをパースして次手順で利用できるようにする。

1. [新しいステップ]をクリック
2. アクション一覧より、[JSON の解析]を選択
3. プロパティを以下のように設定

|プロパティ名|値|
|---|---|
|コンテンツ|*`@{body('HTTP')}`*|
|スキーマ|下記の schema.json の内容（クリックして展開）を設定|

<details><summary>schema.json</summary><div>

```json-doc
{
    "type": "object",
    "properties": {
        "value": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "AffectedWorkloadDisplayNames": {
                        "type": "array"
                    },
                    "AffectedWorkloadNames": {
                        "type": "array"
                    },
                    "Status": {},
                    "Workload": {},
                    "WorkloadDisplayName": {},
                    "ActionType": {},
                    "AffectedTenantCount": {},
                    "AffectedUserCount": {},
                    "Classification": {},
                    "EndTime": {},
                    "Feature": {},
                    "FeatureDisplayName": {},
                    "Id": {},
                    "ImpactDescription": {},
                    "LastUpdatedTime": {},
                    "MessageType": {},
                    "Messages": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "MessageText": {
                                    "type": "string"
                                },
                                "PublishedTime": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "MessageText",
                                "PublishedTime"
                            ]
                        }
                    },
                    "PostIncidentDocumentUrl": {},
                    "Severity": {},
                    "StartTime": {},
                    "Title": {}
                },
                "required": []
            }
        }
    }
}
```
</div></details>

![image.png](https://qiita-image-store.s3.amazonaws.com/0/258416/b55d592f-6b24-d893-cd92-d943d72b0431.png)

### 5. アレイのフィルター処理アクションの作成

API から取得した正常性ステータスの json データから、フロー実行時点から過去１時間以内にインシデント情報がアップデートされたサービスのみをフィルターして取得するようにする。

1. [新しいステップ]をクリック
2. アクション一覧より、[アレイのフィルター処理]を選択
3. [詳細モードで編集]をクリックし、プロパティを以下のように設定

|プロパティ名|値|
|---|---|
|開始|*`@body('JSON_の解析')?['value']`*|
|詳細モード|*`@greater(formatDateTime(item()?['LastUpdatedTime']), addHours(utcNow(), -1))`*|

![image.png](https://qiita-image-store.s3.amazonaws.com/0/258416/82663f4a-0f74-2ac4-910f-96abab2573e1.png)

### 6. 条件アクションの作成

前アクションのフィルター結果が１件以上である場合にのみ通知メールを送信するようにする。

1. [新しいステップ]をクリック
2. アクション一覧より、[条件]を選択
3. 左辺の[値の選択]を選択して[式]に*`length(body('アレイのフィルター処理'))`*を設定し、[OK]をクリック

![image.png](https://qiita-image-store.s3.amazonaws.com/0/258416/568c60fe-21e4-595f-c2e8-69dca2164650.png)

4.オペレーターおよび右辺を以下のように設定

|プロパティ名|値|
|---|---|
|オペレーター|*次の値に等しい*|
|右辺|*`0`*|

![image.png](https://qiita-image-store.s3.amazonaws.com/0/258416/d0c7d45c-2633-7613-8411-9e7840a02516.png)

### 7. 条件アクションの「いいえ」内で HTMLテーブルの作成 アクションの作成

インシデント情報の json データを HTML テーブルに変換し、通知メール内で HTML 要素として利用可能にする。

1. 条件アクションの「いいえ」内の[アクションの追加]をクリック
2. アクション一覧より、[HTML テーブルの作成]を選択
3. [詳細オプションを表示する]をクリックし、プロパティを以下のように設定

|プロパティ名|値|
|---|---|
|開始|*`@{body('アレイのフィルター処理')}`*|
|ヘッダーを含める|*はい*|
|列|*カスタム*|

4.ヘッダーを以下のように設定

|ヘッダー|値|
|---|---|
|IncidentId|*`@item()?['Id']`*|
|DisplayName|*`@item()?['WorkloadDisplayName']`*|
|FeatureDisplayName|*`@item()?['FeatureDisplayName']`*|
|Classification|*`@item()?['Classification']`*|
|Status|*`@item()?['Status']`*|
|LastUpdatedTime(JST)|*`@addHours(item()?['LastUpdatedTime'], 9, 'yyyy/MM/dd HH:mm')`*|
|Message|*`replace(string(last(item()?['Messages'])),'\n\n','')`*|

![image.png](https://qiita-image-store.s3.amazonaws.com/0/258416/e20e1c69-9e94-ce77-c827-26b6820416ed.png)


### 8. 条件アクションの「いいえ」内で メールの送信 アクションの作成

担当者に送信する通知メールを構成する。

1. 条件アクションの「いいえ」内の[アクションの追加]をクリック
2. アクション一覧より、[メールの送信]を選択
3. プロパティを以下のように設定

|プロパティ名|値|
|---|---|
|宛先|通知メール送信先メールアドレス|
|件名|*`[障害] JST @{addHours(utcNow(), 9, 'yyyy/MM/dd HH:mm')} Office 365 インシデント情報更新サービス数：@{length(body('アレイのフィルター処理'))}`*|
|本文|下記の body.html の内容（クリックして展開）を設定|

<details><summary>body.html</summary><div>


```body.html
<html>
<head>
  <style> 
table {
    font-family: "arial", Times, serif;
    border-collapse: collapse;
    width: 100%;
}
td, th {
    border: 1px solid #ddd;
    padding: 4px;
}
th {
    padding-top: 8px;
    padding-bottom: 8px;
    text-align: left;
    background-color: #3399ff;
    color: white;
}
  </style>
</head>
<body>
@{body('HTML_テーブルの作成')}
</body>
</html>
```

</div></details>

![image.png](https://qiita-image-store.s3.amazonaws.com/0/258416/4018ea16-6b82-43e4-674f-9d33a7fde51c.png)

4.[詳細オプションを表示する]をクリックして、[HTML]を`はい`に設定

![image.png](https://qiita-image-store.s3.amazonaws.com/0/258416/cdab7e4b-030f-2260-5437-593f32cd5e74.png)

### 9. フローの保存

任意のフロー名を指定して[保存]をクリックしフローを保存する。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/258416/4edad932-2296-104d-f1f5-fab9dad13cfb.png)


### 動作確認（過去１時間以内にアップデートされたインシデントがあれば通知パターン）

トリガーで設定した時刻にフローが実行され、実行時刻から過去１時間以内にインシデント情報がアップデートされたサービスが１件以上ある場合、下記のようなメールが通知先のメールアドレスに配信される。

![スクリーンショット 2019-04-05 14.25.19.png](https://qiita-image-store.s3.amazonaws.com/0/258416/c8a857bd-e68d-7231-298a-77be4a86e4c6.png)

メール通知されたインシデントについて Office 365 管理センターから確認をしてみる。

サービス正常性画面[<sup>↗</sup>](https://admin.microsoft.com/Adminportal/Home#/servicehealth)を見ると、「EX176985」「EX177050」のインシデント／アドバイザリ情報が LastUpdateTime の時刻に実際に更新されている。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/258416/9d9a755f-3647-e2fb-c10e-948a7844480d.png)

また、メッセージセンター画面[<sup>↗</sup>](https://admin.microsoft.com/Adminportal/Home#/MessageCenter)を見ると、「MC177199」のアナウンスが LastUpdateTime の時刻に実際に投稿されている。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/258416/0c3673ba-9b33-471a-a05b-a882bcf9f123.png)

# おわりに

Office 365 のサービス正常性を定期取得するフローは下記のテンプレートが公式からも提供されていますが、テンプレートそのままでは利用できず、アプリケーション登録やアプリケーションIDの設定は別途ユーザーが行う必要があります。
今回の記事ではこのテンプレートを一部参考にしつつ、API から取得してメール通知するデータの項目や、通知メールを送付する条件などをカスタマイズした手順としています。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/258416/ca039d0a-5745-6dd5-a86d-ce617935741b.png)


[^1]: ここで[サポートされているアカウントの種類]で[任意の組織のディレクトリ内のアカウント]を選択すると、アプリを登録する Azure Active Directory と、フローを作成する Office 365 が別組織の場合でも構成可能になると思われます。