営業現場の課題からスタート
シニアケア関連の新規事業に携わって4年。
人と会社をつなぎながら価値を生み、社会課題の解決を目指しています。
ただし新規事業ゆえ、リソースは少なめ。まさに「猫の手も借りたい」ほど、メンバーは忙しい。できることはデジタルに任せたい。
営業活動では、1か月に150〜200件もの商談が発生します。
もちろん商談そのものも大切ですが、その前後に必要となるリサーチやフォローアップが、現場にとって大きな負担となっていました。
そんな中、営業メンバーからこんな声が上がりました。
「商談内容が自動でノートに残ったら助かるのに」
この一言をきっかけに、商談後の作業を自動化できないか と考えました。
そこで Power Automate Cloud(PAC)と OneNote を組み合わせて、「商談ノート自動生成フロー」を構築。
さらに、Teamsの議事録(.vttファイル)も自動で転記できるように拡張しました。
ゴール
- 商談終了後、ワンクリックで OneNote に商談ノートが生成される
- 顧客名/商談日/手ごたえ/次アクションは入力フォームから手動入力
- **議事録(.vtt)**は OneDrive 経由で自動転記
🚀 フロー全体の流れ(完成イメージ)
作ったフローはとてもシンプルで、次の3ステップです。
トリガー(商談情報の入力)
商談が終わったら、顧客名や商談日などを入力して「フロー実行」ボタンを押します。
ここでは「顧客名」「商談日」「手ごたえ」「次のアクション」だけを入力。
文字起こしの部分は、自動で入るので不要です。
.vttファイルの取得(OneDrive)
Teamsの会議を録画すると、自動で .vtt 形式の議事録ファイルが保存されます。
そのファイルを OneDrive から取り込みます。
👉 ここで注意したいのが “using path” ではなく Identifier版を使うこと。
ファイルの実体を安定して取得するには、/drives/.../items/... 形式のIDを指定します。
OneNoteにページ作成
入力した情報と.vttの内容を HTML に組み立てて、OneNote に自動でページを生成。
結果として、「商談後ワンクリックで議事録付きのノートが完成!」 という形です。
※実際の画面操作イメージはこちら👆 ※OneNoteに表示されるまでに少し時間がかかります
実装手順
1. トリガーを設定
- Manually trigger a flow を利用
- 入力項目は以下の4つのみ
- 顧客名
- 商談日
- 手ごたえ
- 次のアクション
2. OneDriveから .vtt を取得
- OneDrive for Business → Get file content を追加
- File は フォルダアイコンから選択
マイファイル > Microsoft Teams チャット ファイル > meeting.vtt
ポイント:
- “using path”版ではなく Identifier版を使うこと
- 入力欄には
/drives/.../items/...
形式の ID が入る(これが最も安定)
3. Compose で HTML を構築
- OneNote に渡す本文を HTML で用意
- .vtt の本文は <pre に埋め込む
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>@{triggerBody()?['顧客名']} - @{triggerBody()?['商談日']}</title>
</head>
<body>
<h1>商談ノート</h1>
<p><b>顧客名:</b> @{triggerBody()?['顧客名']}</p>
<p><b>商談日:</b> @{triggerBody()?['商談日']}</p>
<p><b>手ごたえ:</b> @{triggerBody()?['手ごたえ']}</p>
<h2>サマリー(自分メモ)</h2>
<p>・要点を3〜5行で追記(後で上書きOK)</p>
<h2>次アクション</h2>
<p>@{triggerBody()?['次のアクション']}</p>
<h2>トランスクリプト(自動文字起こし 原文)</h2>
<pre>@{outputs('Get_file_content')}</pre>
</body>
</html>
4. OneNote にページを作成する設定
最後に、実際の OneNote にページを作る処理を追加します。
Power Automate のアクションから 「Create page in a section(OneNote)」 を選びます。
ここでは「どのノートブックの、どのセクションに、どんなタイトルで、どんな内容を保存するか」を指定します。
- Notebook:保存したいノートブックを選びます(例:「営業ノート」など)
- Section:そのノートブックの中で、保存先のセクションを指定します(例:「2025商談記録」など)
-
Title:ページのタイトルにしたい内容を入力します
- ここでは自動的に「顧客名 - 商談日」がタイトルになるように
@{triggerBody()?['顧客名']} - @{triggerBody()?['商談日']}
と記述します
- ここでは自動的に「顧客名 - 商談日」がタイトルになるように
-
Page content:ページの本文にあたる部分です
- 先ほど作成した Compose の出力を選びます(青い「Outputs」チップをクリックするだけでOK)
これで、フローが動くたびに 「指定したノートブック/セクション」に、自動で新しい商談ノートが作られるようになります 🎉
5. テスト実行して動作確認
ここまで設定できたら、実際にフローを動かしてみましょう。
-
トリガー入力
フローを手動で実行するときに、最初に入力フォームが表示されます。
ここで以下の4つを入力してください:- 顧客名
- 商談日
- 手ごたえ
- 次のアクション
(「トランスクリプト」は入力不要です。自動で埋まります)
-
Run Flow をクリック
入力が終わったら「Run Flow(フローを実行)」を押します。 -
OneNote を確認
数秒後、指定したノートブック/セクションに 新しいページ が自動生成されているはずです。- ページのタイトル:
顧客名 - 商談日
- 本文:入力した「手ごたえ」「次のアクション」、さらに 議事録(.vtt) がそのまま反映されています。
- ページのタイトル:
👉 このページが正しくできていれば、フローは成功です 🎉
私がつまずいたポイントと解決策
実際にフローを作る中で、いくつもミスしました…。
これから作る方が同じところでハマらないように、私が引っかかったポイントをまとめておきます。
つまずきポイント | 実際にやってしまった間違い | 解決策 |
---|---|---|
404 / NotFound | OneDriveのファイルパスを直入力してしまった | **Get file content(Identifier版)**で、必ずフォルダアイコンから選択する |
式エラー |
@{outputs('Get_file_content')} の名前を間違えて入力していた |
実際のアクション名に合わせて修正する |
文字化け | vttファイルがBase64のまま扱われ、OneNoteに貼ったら読めなかった |
base64ToString(body('Get_file_content')?['$content']) を使ってデコードする |
ページができない | フローの並びを間違えていた(順序がバラバラだった) | Trigger → Get → Compose → OneNote の順に並べる |
PAC フロー(ソースコード抜粋)
Power Automate で作成したフローは、内部的には JSON形式のコード で管理されています。
つまり、フロー全体の「設計図」をそのままコード化したものです。
以下は、今回紹介した 商談ノート自動生成フロー の主要部分を抜粋したものです。
- triggers(manual):フロー開始時に手動入力する「顧客名/商談日/手ごたえ/次のアクション」の定義
- actions(Get_file_content):OneDrive から .vtt ファイルを取得
- actions(Compose):HTMLテンプレートを組み立て
- actions(Create_page_in_OneNote):OneNote にページを作成
これを見ると「どの処理をどの順番で行っているか」がコードで理解できます。
実際にフローをエクスポートすれば、このような JSON が出力され、別環境にインポートすることで再利用することも可能です。
{
"definition": {
"actions": {
"Get_file_content": {
"type": "OpenApiConnection",
"inputs": {
"operationId": "GetFileContent",
"parameters": { "id": "/drives/{drive-id}/items/{item-id}" }
}
},
"Compose": {
"type": "Compose",
"inputs": "<!DOCTYPE html> ... (上記のHTMLテンプレートをここに)"
},
"Create_page_in_OneNote": {
"type": "OpenApiConnection",
"inputs": {
"operationId": "CreatePageInSection",
"parameters": {
"notebookId": "{notebook-id}",
"sectionId": "{section-id}",
"pageContent": "@outputs('Compose')"
}
}
}
},
"triggers": {
"manual": {
"type": "Request",
"kind": "Button",
"inputs": {
"schema": {
"type": "object",
"properties": {
"顧客名": { "type": "string" },
"商談日": { "type": "string" },
"手ごたえ": { "type": "string" },
"次のアクション": { "type": "string" }
},
"required": [ "顧客名", "商談日", "手ごたえ", "次のアクション" ]
}
}
}
}
}
}
---
フロー全体を図解でイメージする
ここまでコードで見ると少し抽象的ですが、実際の Power Automate の画面で設定すると以下のような流れになります。
-
手動トリガー
フローを実行するときに、顧客名や商談日などを入力するフォームが出ます。 -
Get file content(OneDrive)
Teamsから保存された.vtt
議事録ファイルを OneDrive 経由で取得します。 -
Compose
入力値と.vtt
の中身を HTML に整形して、OneNote が理解できる本文を作ります。 -
Create page in a section(OneNote)
指定したノートブック/セクションに、新しい「商談ノート」ページを生成します。
このように「コード(JSON)」と「画面上のアクション」を対応付けて考えると、フロー全体の動きがよりイメージしやすくなります。
✅ ポイント:
Power Automate は「ノーコードで組める」のが特徴ですが、裏側ではこうした JSON が走っています。
つまり 画面で操作しながら → コードで全体像を確認 という両面から理解すると応用もしやすくなります。
メンバーに使ってもらいました
この制作物の狙いは、事前にメンバーからヒアリングした意見をベースに、時間がかかる商談後の作業をデジタル化して、その分を次の取引先への営業活動に回すことです。
つまり、商談内容が自動的に商談記録として転記され、チームで共有できるツールを目指しています。
そこで私はメンバーにこう聞きました。
「実際に使えそうかな?それとも追加で欲しい機能がある?ぜひ遠慮なく教えてください!」
🔹 UI(見え方・操作まわり/入力まわり)
Aさん
「正直、このままだと結局また議事録を全部読み返さなきゃいけない。忙しい営業にとっては、これは効率悪いかな」
Bさん
「そうですね!もし文章の中で盛り上がったポイントに色がついたら、一発で分かって便利だと思います!」
Cさん
「オンライン商談だと相手の反応が取りにくいんで、そこを可視化できる仕組みがあれば助かりますね」
Dさん
「それに、議事録の下に取引先の会社情報とか最新トピックスが自動で出ると、調べ直さなくて済むからありがたいよね」
Aさん:
「あと、Teamsから直接音声データを取り込めるようにしてほしいな。現場は入力作業に時間を取られたくないんだ」
Bさん:
「顧客名や商談日も、事前に音声入力で登録できれば、もう手入力なんて要らないですね!」
🔹 AI活用(解析・自動化)
Cさん:
「AIに文章を判断させて、どのタッチポイントに当たるか自動で出せると、かなり実用的だと思います」
Dさん:
「“手ごたえ”もAIが判定してくれると面白いね。入力しなくても」
開発とフィードバックから見えたこと
今回のツール開発の目的は、「商談後の作業時間を削減し、次の営業活動に時間を回す」 というシンプルなものでした。商談記録をワンクリックで自動生成する仕組みは、現場の「面倒を減らしたい」という声に応える第一歩になったと感じています。 また、今回のヒアリングから、実用化できれば、月間で200時間を捻出できるインパクトがわかりました。
実際にメンバーに使ってもらった結果、改善の余地がいくつも見えてきました。ここからは「どう技術的に進化させるか」がポイントになります。
今後の開発に向けた技術的テーマ
-
Teamsとのシームレス連携
現状は OneDrive から .vtt ファイルを手動で指定しています。
→ Graph API を活用して Teams 録画から直接 .vtt を取得する仕組みに拡張。 -
入力の自動化・音声認識
顧客名や商談日を手入力するのは最小限とはいえ負担。
→ Teams会議のメタデータや音声入力機能を使って、自動的にフィールドに反映させる仕組みへ。 -
議事録の要点抽出(NLP)
「盛り上がったポイント」や「手ごたえ」をAIに判定させる。
→ Azure OpenAI / Cognitive Services を使って、重要度スコア付けや感情分析を自動実装。 -
関連情報の自動付与
取引先情報や最新ニュースを議事録の下に表示する。
→ Power Automate で外部データベースやニュースAPIと連携して、OneNoteページに動的に差し込み。 -
オンライン商談の反応可視化
相手の発言量や間の取り方を解析し、可視化する。
→ 音声データの解析によるヒートマップ化、グラフ表示などの機能を追加検討。
目指すべきこと
今回のプロトタイプは「議事録作成を自動化する」という小さな一歩にすぎません。
しかし今後、Teams連携 → 入力自動化 → AI解析 → 関連情報付与 という順に拡張していくことで、このツールは「単なる議事録の転記」から 「営業活動を前進させる知識基盤」 へと進化していくことを目指します!