はじめに
みなさん、こんにちは!業務ハックLabのようです。
この記事は「Microsoft Power Automate Advent Calendar 2025」の12月21日担当分の記事です。
いやー、最近は生成AIの話題で持ちきりですよね!
私も色々と試してるんですが、今回は割と実用的なシステムを作ってみました。
契約書のチェックって、めちゃくちゃ時間かかりませんか?
法務担当の方なら分かると思うんですが、一つの契約書を読み込んで、リスク項目を洗い出して、関係者に共有して…って、めちゃくちゃ時間がかかる作業ですよね。
(しかも集中力も必要だし、疲れる… 法務担当者の方、ほんとに尊敬です)
そこで!
今回はAzure Document IntelligenceとAzure OpenAIを使って、この作業を自動化しちゃおうという企画です。
この記事シリーズで実現できること
このシリーズを読み終わる頃には、こんなシステムが完成します!
実現できること:
- SharePointにアップロードされた契約書PDFを自動でテキスト抽出
- Azure OpenAI(GPT-4.1)によるリスク分析
- リスクレベルに応じた自動通知とデータ記録
はい、もうこれだけで夢が広がりますよね!
想定読者:
- Power Automateの基本操作ができる方
- Azure サービスの利用経験がある方(触ったことがあればOK!)
- 契約書審査プロセスの自動化に興味がある方
まあ、正直に言うと「Azure触ったことない」って方でも、この記事の通りに進めれば作れるように書いていきますので、ご安心ください!
記事シリーズの構成
全4回に分けて、じっくり解説していきます。
📝 第1回(今回):システム概要・準備編
- システムの全体像を理解
- 必要なリソースの準備
- SharePointの設定
📝 第2回:基礎実装編
- Power Automateフローの作成
- 変数の初期化
- ファイル取得の実装
📝 第3回:AI分析実装編
- Document Intelligenceの実装
- Azure OpenAIとの連携
- JSON解析
📝 第4回:完成・運用編
- 条件分岐と通知
- トラブルシューティング
- 運用のベストプラクティス
それでは、第1回、行ってみましょう!
契約書チェック自動化システムの概要
どういう仕組みなの?
まずは全体の流れを見ていきましょう。

処理の流れ:
- トリガー: SharePointに契約書PDFがアップロードされる
- テキスト抽出: Azure Document Intelligenceで契約書を解析
- リスク分析: Azure OpenAIで契約内容を評価
- 判定と通知: リスクレベルに応じて通知・記録
シンプルですよね!
(実装はちょっと大変だけど、それは次回以降で丁寧に解説します)
アーキテクチャ図
文字で書くとこんな感じです。
契約書PDF (SharePoint)
↓
Power Automate フロー
↓
Azure Document Intelligence
- 契約書からテキスト・構造を抽出
- 当事者、契約ID、条項などを認識
↓
Azure OpenAI (GPT-4)
- リスク項目の分析
- リスクレベルの判定(高/中/低)
- 対応策の提案
↓
結果の記録・通知
- SharePointリストに保存
- 高リスク時はTeamsで通知
はい、これが今回作るシステムの全体像です!
各サービスがちゃんと役割分担してるのが分かりますよね。
(ちゃんとテストしてくださいね)
前提条件
では、実際に作り始める前に、必要なものを整理していきましょう。
必要なリソース
1. Azure リソース
Azure Document Intelligence
これは契約書からテキストを抽出するサービスです。
- リソース名の例:
doc-intel-contract-analysis - 推奨リージョン: Japan East
- 価格レベル: Standard S0

Azure OpenAI
こちらがAIの頭脳部分ですね。
- リソース名の例:
openai-contract-risk - 推奨リージョン: East US
- デプロイモデル: gpt-4.1
いろいろモデルはあるので適したものを使いましょう!


2. Microsoft 365
これは皆さん、もう持ってますよね!
- Power Automate Premium ライセンス(これは必須です!)
- SharePoint サイト(契約書保管用)
- Microsoft Teams(通知用)
3. 準備するもの
Azureリソースを作成したら、以下の情報をメモしておいてください。
【Azure Document Intelligence】
- エンドポイント:
https://[リソース名].cognitiveservices.azure.com/ - APIキー: キー1またはキー2

【Azure OpenAI】
- エンドポイント:
https://[リソース名].openai.azure.com/ - APIキー: キー
- デプロイ名:
gpt-4.1-contract


これらの情報は、Azureポータルの各リソースの「キーとエンドポイント」から取得できます。
(スクリーンショット撮っておくと便利ですよ!後で「あれ、どこだっけ?」ってなりがちなので…)
Phase 1: SharePointの準備
さあ、ここから実際に手を動かしていきますよ!
まずはSharePointの設定からです。
1-1. 契約書保管用ライブラリの作成
SharePointサイトに行って、新しいドキュメントライブラリを作りましょう。
設定内容:
- 名前: Contract
- 説明: リスク分析対象の契約書を保管
はい、これだけです。
シンプルですよね!
作り方は、SharePointサイトの「新規」→「ドキュメントライブラリ」で作成できます。


(もう知ってるよ!って方はサクッと進めちゃってください)
1-2. 分析結果記録用リストの作成
次は、分析結果を保存するためのリストを作ります。
SharePoint サイトで「新規」→「リスト」を選択してください。

リスト名: ContractRiskAnalysisResults

ここが少しだけ面倒なんですが、列をいくつか追加する必要があります。
列の構成:
| 列名 | 種類 | 設定 | 説明 |
|---|---|---|---|
| タイトル | 1行テキスト | 既定 | – |
| FileName | 1行テキスト | – | ファイル名 |
| RiskLevel | 選択肢 | 高/中/低 | リスクレベル |
| RiskScore | 数値 | 小数点以下0桁 | リスクスコア |
| OverallRating | 複数行テキスト | プレーンテキスト | 総合評価 |
| HighRiskItemDetails | 複数行テキスト | プレーンテキスト | 高リスク項目詳細 |
| AnalysisDateTime | 日付と時刻 | 日付と時刻を含める | 分析日時 |
| FileLink | ハイパーリンク | – | ファイルリンク |
はい、それぞれの列を作っていきます。
ちなみに列名は一番最初は半角英数字で作成しましょう。
(作成後は列名変更で全角に変更しても大丈夫です。)
列の追加方法:
- リストを開く
- 「列の追加」をクリック
- 列の種類を選択
- 列名と設定を入力
- 「保存」


これを8回繰り返します。
(ちょっと大変ですが、最初だけなので頑張りましょう!)
特に注意が必要なのは「RiskLevel」:
選択肢の列を作る時に、以下の3つの選択肢を入れてください。
- 高
- 中
- 低

これ、順番も大事です。
高→中→低の順にしておくと、後でソートする時に便利ですからね!
確認してみましょう
はい、ここまでで以下の2つができましたか?
✅ 契約書を保管するドキュメントライブラリ
✅ 分析結果を記録するSharePointリスト


できてたら、第1回の準備は完了です!
まとめ
はい、如何でしたでしょうか?
第1回では、システムの全体像と、SharePointの準備まで完了しました!
今回やったこと:
- システムの仕組みと処理フローを理解
- 必要なAzureリソースと費用感を把握
- SharePointのライブラリとリストを準備
次回(第2回)では、いよいよPower Automateでフローを作り始めます。
変数の初期化とか、ファイルの取得とか、基礎的な部分をじっくり解説していきますよ!
(次回は少しコード的な部分も出てくるので、楽しみにしててください!)
それでは皆さん、良い業務ハックライフを~
連載記事:
- 📍 第1回:システム概要・準備編(今回)
- 第2回:基礎実装編(次回予告)
- 第3回:AI分析実装編
- 第4回:完成・運用編


コメント