ホテルの代表メールアドレスに届くメールを、予約・問い合わせ・営業・請求・苦情に分類して担当の部署へ回し、返事が止まっているものを拾う
ホテルの代表メールアドレスに届くメールを、届いたその場で予約・問い合わせ・営業・請求・苦情・その他に分け、担当の部署のフォルダとチャネルへ回します。部署から返事が出ていないものを、決めた時間ごとに拾って知らせます。
- 生成AI
- Azure OpenAI Service/ChatGPT
- 連携・自動化
- Make/Power Automate/Zapier
- 対象業界
- 宿泊/飲食
- 対象部門
- カスタマーサポート
- 対象業務
- 分類・仕分け/問い合わせ対応
- 主な課題
- 人手が足りない/問い合わせが多い/期限・対応漏れが起きる
- AIで行う処理
- 分類
- 主な効果
- 対応スピード向上/工数削減/機会損失防止
- 導入難易度
- ★☆☆☆☆
- 実装レベル
- 半自動化
- 費用感
- ノーコード連携(中)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- フロント・予約の担当が、手の空いたときに代表アドレスの受信箱を開く
- 未読のメールを上から開き、何の用件かを読む
- どの部署に回すかを決め、その部署の担当者へ転送する
- 自分で答えられる簡単な問い合わせ(アクセス・駐車場・チェックインの時間)は、その場で返事を書く
- 転送したメールに、Outlook のフラグか分類の色を付ける
- 気になったものは、数日後に部署の担当者に返事が出たかを聞く
- 宿泊客から「返事が来ない」と電話があったら、受信箱と転送の履歴を探す
- 自動代表アドレスの共有メールボックスにメールが届くと、フローが動く
- 自動予約サイトや予約管理システムからの自動の通知、配信停止の手続きができる案内メールを、送り主のアドレスで先に除く
- 自動残りのメールの件名と本文を AI Builder のプロンプトに渡し、種類・急ぎか・苦情か・言語・要点を JSON で受け取る
- 自動受付台帳に1通1行で記録し、受付番号を振る
- 自動種類に応じて、共有メールボックスの部署のフォルダへ移し、部署の Teams チャネルに要点を投稿する
- 自動苦情、または当日・翌日の宿泊に関わるものは、その日の責任者へもすぐに知らせる
- 自動判定できなかったものは「要確認」のフォルダに入れ、フロント・予約の担当へ知らせる
- 人部署の担当者が、共有メールボックスから返事を出す
- 自動決めた時間ごとに、受付台帳の未返信の行について、送り主宛ての返事が出たかを確かめる
- 自動期限を過ぎて返事が出ていないものを、部署のチャネルと担当の責任者に知らせる
- 人フロント・予約の担当が、「要確認」と、振り分けが違っていたものを直す
各工程の詳しい説明を読む
- フロント・予約の担当が、手の空いたときに代表アドレスの受信箱を開く
- 未読のメールを上から開き、何の用件かを読む
- どの部署に回すかを決め、その部署の担当者へ転送する
- 自分で答えられる簡単な問い合わせ(アクセス・駐車場・チェックインの時間)は、その場で返事を書く
- 転送したメールに、Outlook のフラグか分類の色を付ける
- 気になったものは、数日後に部署の担当者に返事が出たかを聞く
- 宿泊客から「返事が来ない」と電話があったら、受信箱と転送の履歴を探す
(a)開くまで何が届いたか分からない。 受信箱は届いた順に並んでおり、苦情も、当日の到着の連絡も、営業のメールと同じ見え方です。 件名だけでは用件が分からないものも多く、開いて読むまで重さが分かりません。
(b)転送したきりになる。 転送した担当者は、部署から返事が出たかを知りません。部署の側は、転送されたメールが自分宛てなのか、参考に送られただけなのかを迷うことがあります。「返事が来ない」という電話で、初めて止まっていたことが分かります。
(c)苦情が他のメールに埋もれる。 苦情は件名が「先日の宿泊について」のように穏やかなことが多く、開いて読むまで苦情だと分かりません。 読まれるのが夕方になれば、支配人に届くのは翌日です。
(d)振り分けの基準が人によって違う。 宴会の相談を営業課に回す人と、予約課に回す人がいます。同じ旅行会社からのメールが、日によって違う部署へ行きます。
- 【自動】 代表アドレスの共有メールボックスにメールが届くと、フローが動く
- 【自動】 予約サイトや予約管理システムからの自動の通知、配信停止の手続きができる案内メールを、送り主のアドレスで先に除く
- 【自動】 残りのメールの件名と本文を AI Builder のプロンプトに渡し、種類・急ぎか・苦情か・言語・要点を JSON で受け取る
- 【自動】 受付台帳に1通1行で記録し、受付番号を振る
- 【自動】 種類に応じて、共有メールボックスの部署のフォルダへ移し、部署の Teams チャネルに要点を投稿する
- 【自動】 苦情、または当日・翌日の宿泊に関わるものは、その日の責任者へもすぐに知らせる
- 【自動】 判定できなかったものは「要確認」のフォルダに入れ、フロント・予約の担当へ知らせる
- 【人】 部署の担当者が、共有メールボックスから返事を出す
- 【自動】 決めた時間ごとに、受付台帳の未返信の行について、送り主宛ての返事が出たかを確かめる
- 【自動】 期限を過ぎて返事が出ていないものを、部署のチャネルと担当の責任者に知らせる
- 【人】 フロント・予約の担当が、「要確認」と、振り分けが違っていたものを直す
8番目が、この設計の分かれ目です。 返事を書くのは部署の担当者で、仕組みは返事を書きません。 宿泊客への返事には予約の内容や料金の判断が絡むため、ここは人の仕事として残します。
2番目で自動の通知を先に除くのも、意図してのことです。 予約サイトからの予約通知は、予約管理システムにも同じ内容が入っています。これをプロンプトに渡すと、件数のほとんどを使ってしまい、しかも人が読む必要がありません。
9番目と10番目が、これまで誰もやっていなかった仕事です。 転送した側も受け取った側も追っていなかった「返事が出たか」を、台帳と送信済みのメールで機械的に確かめます。
02今回想定するシステム構成
宿泊客・旅行会社・取引先 │ 代表アドレス宛てのメール ▼【トリガー】共有メールボックスへの新しいメールの着信 Power Automate(クラウド フロー) ├──▶ 送り主のアドレスで自動の通知を除く ├──▶ AI Builder のプロンプト(プロンプトを実行する) │ 種類/急ぎか/苦情か/言語/要点 を JSON で返す ├──▶ SharePoint のリスト(受付台帳)に1通1行で記録 ├──▶ 共有メールボックスの部署のフォルダへ移す ├──▶ 部署の Teams チャネルに要点を投稿 └──▶ 苦情・当日翌日のものは責任者へも通知 ▼ 部署の担当者が共有メールボックスから返事を出す 【2時間ごと】Power Automate(繰り返し) ├──▶ 受付台帳の未返信の行を取得 ├──▶ 送信済みのメールから、送り主宛ての返事を探す ▼ 期限を過ぎて止まっているものの一覧 ──▶ 部署のチャネルと責任者
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| ワークフロー | Power Automate(クラウド フロー、Office 365 Outlook コネクタ) | Make、Zapier |
| 生成AI | AI Builder のプロンプト(「プロンプトを実行する」アクション、JSON 出力) | Azure OpenAI(Microsoft Foundry)、ChatGPT |
| 保管 | SharePoint のリスト(受付台帳) | Dataverse |
| 受付と返事 | Office 365 Outlook の共有メールボックス | ― |
| 通知 | Microsoft Teams のチャネル | Outlook のメール |
新しく足すのは、2つのフローと受付台帳のリストだけです。 代表アドレスは変えません。宿泊客にも取引先にも、何も新しく知らせる必要がありません。 共有メールボックスの中に、部署ごとのフォルダを作ります。
トリガーには、Office 365 Outlook コネクタの「When a new email arrives in a shared mailbox (V2)」を使います。 共有メールボックスにメールが届いたときにフローを動かすもので、Original Mailbox Address に共有メールボックスのアドレスを入れます。 フローを作るアカウントに、その共有メールボックスへのアクセス権が要ります。
注意が2つあります。 1つ目は、Office 365 のグループのアドレスは、共有メールボックスのアドレスとして使えないとされていることです。代表アドレスがグループで運用されているなら、共有メールボックスへの切り替えが先です。2つ目は、アクセス権を付けてから反映されるまでに2時間ほどかかることがあるとされていることです。権限を付けた直後にフローが動かなくても、慌てて設定を変えないでください。
生成AIは、フローの中から AI Builder のプロンプトを呼びます。 「プロンプトを実行する」アクションでプロンプトを選ぶと、前のアクションの内容を入力に渡せます。AI Builder は Azure OpenAI サービスを活用した GPT モデルで動き、一部の地域に限定され、使用制限の対象になる場合があるとされています。
03どうやって実装するのか
処理の起点を決める
代表アドレスの共有メールボックスにメールが届いたことを起点にします。 トリガーは「When a new email arrives in a shared mailbox (V2)」で、Original Mailbox Address に代表アドレスを、Folder に受信トレイを指定します。1通ごとにフローが動くので、届いてから振り分けまでが数分で済みます。
定時にまとめて処理する形にはしません。 1時間ごとにまとめると、苦情が届いてから責任者に知らせるまでに最大1時間かかります。この構成の価値は、受信箱を開く人がいない時間帯にも振り分けが進むことにあります。
返事の止まりの確認は、別のフローで2時間ごとに動かします。振り分けと同じフローに入れると、メールが届かない時間帯に確認が止まります。深夜は止め、朝7時から夜10時までに限ります。 夜中に「止まっている」と知らせても、読む人がいません。
トリガーには、50MBか管理者が決めた上限のどちらか小さいほうを超えるメールを飛ばすこと、保護されたメールや本文・添付が壊れたメールを飛ばすことがあるとされています。飛ばされたメールは受付台帳に載らないので、受信箱に残った未読の数と台帳の件数を毎日比べます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| メールの本体 | 送り主、件名、本文、受信日時、添付の有無、Conversation Id | トリガーの出力 |
| 除外する送り主の一覧 | 予約サイト・予約管理システム・決済サービスなど、自動で通知を送るアドレス | 自社で用意する一覧 |
| 部署の対応表 | 種類ごとの部署、フォルダ、Teams のチャネル、返事の期限 | 自社で用意する表 |
| 当日・翌日の判定の材料 | 今日の日付 | フローの式 |
| 取引先の一覧 | 旅行会社・法人の取引先のドメイン | 営業課の一覧 |
質を決めるのは、2つ目と5つ目です。 除外する送り主の一覧が無ければ、予約サイトの通知がすべてプロンプトに渡ります。取引先のドメインの一覧があれば、旅行会社からの団体の相談を、本文の書き方に関係なく営業へ回せます。
Conversation Id は必ず受付台帳に残します。 同じやり取りの続きのメールを、別の受付として数えないためです。同じ Conversation Id の2通目以降は、新しい受付にせず、既存の行に「続報あり」と付けます。
データの取得方法を決める
メールの本体は、トリガーの出力からそのまま取ります。本文は HTML で届くことが多いため、プロンプトに渡す前にテキストにします。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 件名・本文・送り主 | トリガーの出力 | 種類と急ぎかの判定 |
| Message Id | トリガーの出力 | フォルダへの移動、フラグ |
| Conversation Id | トリガーの出力 | 続報のまとめ、返事の確認 |
| 部署の対応表 | SharePoint のリスト | 移すフォルダ、投稿するチャネル、期限 |
| 送信済みのメール | 「Get emails (V3)」(Original Mailbox Address に代表アドレス) | 返事が出たかの確認 |
返事の確認は、「Get emails (V3)」で共有メールボックスの送信済みのフォルダを見ます。 このアクションには Original Mailbox Address があり、共有メールボックスのメールを取れます。ただし、宛先・送り主・件名などの絞り込みは、フォルダの最初の250通に対して行われるとされています。 送信済みが多いと絞り込みから漏れるため、フォルダ全体を探せる Search Query(Outlook の検索と同じ書き方)で、送り主のアドレス宛てのものを探します。
部署の担当者が、共有メールボックスから返事を出す運用にそろえます。 個人のアドレスから返事を出すと、共有メールボックスの側に返事の記録が残らず、返事が出ているのに「止まっている」と知らせ続けることになります。 共有メールボックスから送った返事がどのフォルダに残るかは、最初に試して確かめます。
AIへ渡す前に整形する
- 自動の通知を除く … 送り主のアドレスが除外の一覧に当たるものは、プロンプトに渡さず「自動通知」のフォルダへ移します
- 続報をまとめる … 受付台帳に同じ Conversation Id の行があれば、新しい受付にせず「続報あり」を付けて、その行の部署へ回します
- 本文をテキストにする … HTML のタグを除き、引用された過去のやり取り(「-----Original Message-----」以降など)を切り落とします
- 長さをそろえる … 本文の先頭から決めた文字数までを渡します。署名と免責の文言は、長さを食うので切り落とします
- 取引先のドメインを当てる … 送り主のドメインが取引先の一覧にあれば、「取引先」の印を付けてプロンプトに渡します
- 添付の有無を渡す … 添付の中身は渡しません。「添付あり」と、ファイル名だけを渡します
3番目を軽く見ないでください。 返信の繰り返しで、本文の下に過去のやり取りが何通分も付いていることがあります。そのまま渡すと、過去の苦情の文面に引きずられて、お礼のメールを苦情と判定します。
6番目で添付の中身を渡さないのは、請求書や旅券の写しが付いていることがあるからです。 振り分けに中身は要りません。
AIに処理させる
させるのは、1通ごとに種類・急ぎか・苦情か・言語・要点を判定することだけです。 返事の文面は作りません。
| 判定するもの | 選択肢 | 判断できないときの扱い |
|---|---|---|
| 種類 | 予約/問い合わせ/営業/請求/苦情/その他 | unknown にして「要確認」へ |
| 急ぎか | 当日・翌日の宿泊や来館に関わる/それ以外 | 日付が書かれていなければ「それ以外」 |
| 苦情か | 苦情・不満の表明を含む/含まない | 迷えば「含む」 |
| 言語 | 日本語/英語/その他の言語名 | ― |
| 要点 | 誰が、何を求めているかを60字以内 | ― |
種類の中身は、対応表と同じ言葉で決めておきます。
| 種類 | 中身 | 回す部署 |
|---|---|---|
| 予約 | 宿泊の新規・変更・取消、人数や日程の相談 | 予約課 |
| 問い合わせ | アクセス・駐車場・設備・館内のサービス・忘れ物 | フロント |
| 営業 | 団体・法人の宿泊、宴会・会議室、旅行会社からの相談 | 営業課 |
| 請求 | 請求書・領収書の発行、支払・返金の確認、仕入先からの請求 | 経理 |
| 苦情 | 滞在や応対への不満、改善の求め | 支配人とフロントの責任者 |
| その他 | 求人への応募、取材の依頼、営業の売り込み | 総務 |
苦情の「迷えば含む」は、片側に倒した判断です。 苦情でないものを苦情として支配人に知らせても、支配人が1通読むだけで済みます。苦情を苦情でないとして流すと、翌日の電話になります。
| させないこと | 理由 |
|---|---|
| 返事の文面を作る | 予約の内容・料金・返金の判断が絡む。部署が書く |
| 予約の有無を確かめる | 予約管理システムに触れない |
| 送り主の重要度を決める | 取引先かどうかはドメインの一覧で決める |
| 添付の中身を読む | 振り分けに要らない。個人情報を広げない |
指示内容を固定する
あなたはホテルの代表メールアドレスに届いたメールを、担当の部署へ回すために
仕分ける係です。返事は書かないでください。
【種類(category)】次のどれか1つ
- reservation ... 宿泊の新規・変更・取消、人数や日程の相談
- inquiry ....... アクセス・駐車場・設備・館内のサービス・忘れ物の問い合わせ
- sales ......... 団体・法人の宿泊、宴会・会議室、旅行会社からの相談
- billing ....... 請求書・領収書の発行、支払・返金の確認、仕入先からの請求
- complaint ..... 滞在や応対への不満、改善の求め
- other ......... 求人への応募、取材の依頼、売り込み
- unknown ....... 上のどれとも決められない
【厳守事項】
- 本文に書かれていることだけで判断してください。推測で補わないでください。
- 不満の表明が少しでも含まれていれば、is_complaint を true にしてください。
丁寧な言葉づかいでも、不満が書かれていれば true です。
種類が reservation や billing でも、不満が含まれていれば is_complaint は true です。
- 本文に宿泊日・来館日が書かれており、それが今日({today})か明日なら
is_urgent を true にしてください。日付が書かれていなければ false です。
日付を推測しないでください。
- 送り主が取引先({is_partner})でも、種類は本文の内容で決めてください。
- summary は「誰が、何を求めているか」を60字以内の日本語で書いてください。
氏名・電話番号・予約番号・カード番号を summary に書かないでください。
- language には本文の言語を書いてください。
- 迷ったときは category を unknown にしてください。それらしい種類を選ばないでください。
- 回答に JSON マークダウンを含めないでください。
【件名】{subject}
【送り主のドメイン】{sender_domain}
【添付】{attachment_names}
【本文】{body_text}
「丁寧な言葉づかいでも true」を書かないと、苦情を拾い損ねます。 ホテルに届く苦情は「大変残念に思いました」のような穏やかな書き方が多く、何も言わなければ、言葉の強さで苦情かどうかを決めてしまいます。
「種類が reservation でも is_complaint は true」も同じ理由です。 「予約の変更をお願いしたいのですが、先日の電話の対応が不十分で」というメールは、種類としては予約で、同時に苦情です。種類と苦情を別の項目にしているのは、この重なりを落とさないためです。
summary に氏名や予約番号を書かせないのは、要点を Teams のチャネルに投稿するからです。 チャネルは部署の全員が見ます。詳しい中身は、共有メールボックスのメールそのものを開いて読みます。
厳守事項の最後の1行は、JSON の検証が通らないときの対処として公式に挙げられているものです。 モデルが JSON をマークダウンで囲むと、形式の検証が通らないことがあります。
出力形式を固定する
次の形の JSON で受け取ります。
{
"category": "reservation | inquiry | sales | billing | complaint | other | unknown",
"is_urgent": false,
"is_complaint": false,
"language": "ja",
"summary": ""
}
1つ目の理由は、受付台帳の列にそのまま入れられることです。 種類・急ぎか・苦情か・言語・要点がそれぞれ1つの列になり、部署ごと・種類ごとの件数を台帳から数えられます。
2つ目は、形式を固定できることです。 プロンプトの出力を JSON にし、JSON の例を自分で書き換えると形式が「カスタム」になり、プロンプトをもう一度テストしても形式が変わりません。 保存すると、フローではその形式が使われます。台帳の列に入れる前提なので、ここは「カスタム」で固定します。 なお、キーの無い配列のような形は使えないとされています。
3つ目は、is_urgent と is_complaint を種類と別にしていることです。 フローはこの2つを見て責任者への通知を足すだけで、種類による部署の振り分けとは独立に動きます。
受付台帳の1行は、次の列を持ちます。
| 列 | 中身 |
|---|---|
| 受付番号 | フローが振る番号 |
| 受信日時・送り主・件名 | トリガーの出力 |
| Message Id・Conversation Id | トリガーの出力 |
| 種類・急ぎか・苦情か・言語・要点 | プロンプトの JSON |
| 回した部署・返事の期限 | 部署の対応表 |
| 返事の状態 | 未返信/返信済み/対応不要 |
| 振り分けの直し | 直した後の種類と、直した人 |
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 共有メールボックス | 「When a new email arrives in a shared mailbox (V2)」 | 着信を検知する |
| 共有メールボックス | 「Move email (V2)」(Original Mailbox Address) | 部署のフォルダへ移す |
| AI Builder のプロンプト | 「プロンプトを実行する」 | 種類と要点を返す |
| SharePoint のリスト | 項目の作成・更新 | 受付台帳 |
| Microsoft Teams | チャネルへの投稿 | 部署への知らせ、止まりの知らせ |
| 共有メールボックス | 「Get emails (V3)」(Original Mailbox Address) | 送信済みから返事を探す |
フォルダへの移動は「Move email (V2)」で行います。 同じメールボックスの中のフォルダへ移すアクションで、Original Mailbox Address に共有メールボックスのアドレスを入れます。受信トレイには、まだ振り分けの済んでいないものと「要確認」だけが残ります。
予約管理システムには触れません。 予約の変更のメールを読んでも、予約そのものを変えるのは予約課の担当者です。この構成が予約に書き込む経路はありません。
コネクタには、接続ごとに60秒あたり300回という呼び出しの上限があります。繁忙期に1時間で数十通が届いても収まる量ですが、止まりの確認のフローで送信済みを1件ずつ探すと回数が増えます。 確認は未返信の行だけに絞ります。
人が確認する
人が全件を確かめる必要はありません。 部署の担当者は自分のフォルダに入ったメールを読んで返事を書くだけで、振り分けが違っていれば、そこで気づきます。
- 「要確認」のフォルダを見る … フロント・予約の担当が、1日に数回見て、正しい部署へ移します
- 振り分けの違いを直す … 部署の担当者が、自分宛てでないメールを受付台帳の上で正しい種類に直します。フローは直された種類の部署へ移し直します
- 苦情の通知を受ける … 責任者は、苦情と判定されたものを読み、誰が返すかを決めます
- 止まりの知らせを受ける … 部署の責任者が、期限を過ぎたものの担当を決め直します
2番目の記録を必ず残してください。 どの種類からどの種類に直されたかがたまると、プロンプトの種類の説明のどこが曖昧かが分かります。 宴会と宿泊の団体の境目は、たいていここで見つかります。
目標は1,800通をならして1通1分です。 振り分けが合っていれば、部署の担当者がフォルダを開いた時点で仕分けは終わっており、人が使う時間は「要確認」と直しと止まりの対応だけです。
例外に対処する
| 起きること | 対応 |
|---|---|
| プロンプトが JSON を返さない | 「要確認」のフォルダへ移し、受付台帳に unknown で記録 |
| 本文が空で添付だけ | 種類を unknown にして「要確認」へ |
| 外国語のメール | 種類は判定させ、言語を台帳に残す。訳は部署が必要に応じて行う |
| 同じ人から同じ内容が2通 | Conversation Id が違えば別の受付。要点が同じなら担当者が台帳でまとめる |
| トリガーがメールを飛ばす | 受信トレイの未読の数と台帳の件数を毎日比べる |
| アクセス権を付けた直後に動かない | 反映に2時間ほどかかることがある。時間をおいて試す |
| 予約サイトの新しい通知のアドレス | 除外の一覧に足す |
| 部署の担当者が個人のアドレスから返事を出す | 止まりの知らせが続く。共有メールボックスから出す運用に戻す |
上から3行目は、ホテルではよく起きます。 種類の判定は外国語のメールでも行えますが、要点は日本語で書かせます。 部署の担当者が、本文を訳す前に何の用件かを知るためです。
最後の行が、運用の最初の1か月で最も多い問い合わせになります。 止まりの知らせを受けた担当者が「もう返した」と言うときは、たいてい個人のアドレスから返しています。
記録を残す
- 受付台帳(1通1行。種類・急ぎか・苦情か・要点・回した部署・返事の状態)
- プロンプトに渡した件名と本文の長さ、返ってきた JSON
- 振り分けを直した記録(どの種類からどの種類へ、誰が)
- 止まりの知らせを出した日時と、その後に返事が出た日時
- 除外の一覧で除いたメールの件数(送り主ごと)
- フローの実行の履歴(失敗した実行と、その理由)
3つ目の「直した記録」が、プロンプトを直す材料になります。 月に1回、直された件数を種類ごとに数え、多いところの説明を足します。
4つ目は、部署ごとの返事の速さを見る材料になります。 止まりの知らせが特定の部署に集中するなら、その部署の人手か、返事の期限の決め方に理由があります。
04実装レベルの3段階
この記事の想定は半自動化です。 1通4分が1分になるのはこの段階で、仕分けと追いかけはここでほぼ無くなります。 本格構成は、半自動化を数か月回してから考えます。 予約管理システムとつなぐと当日・翌日の判定は確かになりますが、予約の情報を扱う範囲が広がり、作る手間も大きくなります。 返事の下書きも、どの問い合わせが多いかが台帳から分かってから足すほうが、外れが少なくなります。 段階を飛ばさないでください。 半自動化の受付台帳を1か月見ると、除外すべき自動の通知と、直しの多い種類の境目が先に分かります。
05工数削減シミュレーション
導入後 1,800件 × 1分 ÷ 60 = 30 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 客室数が百室から数百室のホテル・旅館で、Webサイトや予約確認のメールに載せている代表のメールアドレスに、宿泊客・旅行会社・取引先からのメールが毎日数十通届く場合。フロントや予約の担当が手の空いたときに受信箱を開き、部署ごとに転送している場合。Microsoft 365 を使っており、代表アドレスが共有メールボックスになっている場合。
- 代表アドレスに届くメールが1日に数通で、担当者1名が全件をすぐに読める場合。予約の変更や取消の大半を予約サイトの管理画面で受けており、メールで届くものがほとんど無い場合。代表アドレスが個人のメールボックスや Microsoft 365 のグループのアドレスで運用されている場合(共有メールボックスへの切り替えが先)。なお、苦情への応対の方針や返金の判断は、この構成では代替できません。
07最小構成で試す方法
- 代表アドレスの受信箱から、先週届いたメールを50通選ぶ(苦情を数通含める)
- それぞれについて、当時どの部署へ回したかを書き出す
- 50通の件名と本文を、手元のAIサービスの画面に1通ずつ貼り付ける
- 第7章のプロンプトの種類の説明を貼り、「どれに当たるか、苦情を含むか、当日・翌日に関わるかを答えてください」と指示する
- 出てきた種類を、当時回した部署と突き合わせる
ここでは、フローを作る前に「種類の分け方で振り分けが決まるか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 当時の振り分けとほぼ同じ | フローを組む段階に進む |
| 宴会と宿泊の団体で分かれる | 種類の説明を足す。構成は有効 |
| 当時の振り分け自体がばらばら | 部署の対応表を決めるのが先。 AIの問題ではない |
3行目が出ることは珍しくありません。 失敗ではなく、(d)の振り分けの基準の違いが、目に見える形になったということです。 先に部署の責任者と対応表を決めてから、同じ50通で試し直してください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 代表アドレスがグループのアドレス | 共有メールボックスのアドレスとして使えない。 先に切り替える |
| 権限を付けた直後にフローが動かない | 反映に2時間ほどかかることがある |
| 予約サイトの通知で件数がふくらむ | 送り主のアドレスで先に除く |
| 引用された過去のやり取りに引きずられる | 引用部分を切り落としてから渡す |
| 穏やかな苦情を拾い損ねる | 言葉づかいでなく不満の表明で決めるよう指示に書く |
| 種類と苦情が重なるものを落とす | 種類と is_complaint を別の項目にする |
| 返事が出ているのに止まりの知らせが続く | 共有メールボックスから返事を出す運用にそろえる |
| 送信済みが多くて返事が見つからない | 絞り込みでなく Search Query で探す |
| JSON の形式がテストのたびに変わる | 「カスタム」で固定して保存する |
| チャネルの投稿に個人情報が出る | 要点に氏名・番号を書かせない |
| 夜中に止まりの知らせが飛ぶ | 確認のフローを朝から夜までに限る |
上の2行は、作り始めた日に当たります。 どちらもAIの問題ではなく、代表アドレスの運用の問題です。 最初に情報システムの担当と確かめてください。
下から5行目が、運用に入ってから最も多い声になります。 止まりの知らせは、返事の記録が共有メールボックスに残る運用とセットで初めて正しく動きます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 宿泊客・取引先の氏名とメールアドレス、宿泊日、予約の内容、苦情の中身、そして添付される請求書や旅券の写しです。
- プロンプトに渡す範囲を絞る … 渡すのは件名・本文・送り主のドメイン・添付のファイル名までにし、添付の中身は渡しません
- チャネルに出す範囲を絞る … Teams に投稿するのは要点と受付番号だけにし、氏名・電話番号・予約番号・カード番号は要点に書かせません
- データを処理する地域を確かめる … AI Builder のプロンプトは一部の地域に限定された機能です。自社の環境で、どの地域で処理されるかを管理者と確かめてから使います
- 返事を自動で送らない … 返事は部署の担当者が書いて送ります。苦情への返事は特に、自動にしません
- 共有メールボックスの権限を絞る … フローの接続に使うアカウントと、各フォルダを見られる人を決めます。経理のフォルダには請求書が、支配人のフォルダには苦情が集まります
- 受付台帳の保存期間を決める … 要点と送り主が1行にまとまった一覧です。いつまで残すかを決めておきます
誤りが起きた場合のリスクは、苦情や急ぎのメールが別の部署のフォルダに入って遅れることと、要点に個人情報が出て部署の外に広がることの2つです。 前者は「迷えば苦情」と止まりの確認で、後者は要点の書き方の決まりで守ります。
10まず何から始めるか
1週目:部署の対応表を決める
種類ごとに回す部署、フォルダ、Teams のチャネル、返事の期限を表にします。宴会と宿泊の団体、忘れ物、領収書の再発行の境目を、部署の責任者どうしで決めます。
2週目:50通で試す
先週のメールから50通を選び、手元のAIサービスで種類を判定させて、当時の振り分けと比べます。苦情を拾えているかを最優先で見ます。
3週目:共有メールボックスと除外の一覧を整える
代表アドレスが共有メールボックスであること、フローのアカウントにアクセス権があることを確かめます。予約サイトや予約管理システムの通知の送り主を集めて、除外の一覧を作ります。 部署の担当者に、共有メールボックスから返事を出す運用を伝えます。
4週目:振り分けのフローを動かす
着信から、プロンプト、受付台帳、フォルダへの移動、チャネルへの投稿までをつなぎます。この時点では止まりの確認を入れず、振り分けの直しの件数だけを毎日数えます。
2か月目: 止まりの確認のフローを足し、期限を過ぎたものを知らせ始めます。3か月目以降: 直しの記録からプロンプトの種類の説明を見直し、1通4分が何分になったかを実測します。苦情が届いた日のうちに責任者に読まれ、「返事が来ない」という電話が減った時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| トリガー「When a new email arrives in a shared mailbox (V2)」が共有メールボックスへの着信でフローを動かし、Original Mailbox Address と Folder を指定すること。50MBか管理者の上限を超えるメール、保護されたメールなどを飛ばすことがあること。「Get emails (V3)」「Move email (V2)」に Original Mailbox Address があること。Get emails (V3) の絞り込みがフォルダの最初の250通に対して行われ、Search Query でフォルダ全体を探せること。メールの出力に Conversation Id があること。Office 365 のグループのアドレスは共有メールボックスのアドレスに使えないこと。権限の反映に2時間ほどかかることがあること。接続ごとに60秒あたり300回の呼び出しの上限 | Microsoft Learn: Office 365 Outlook connector | 2026-10-07 |
| 「プロンプトを実行する」アクションでプロンプトを選び、前のアクションの内容を入力に渡せること。AI Builder が Azure OpenAI サービスを活用した GPT モデルで動き、一部の地域に限定され、使用制限の対象になる場合があること | Microsoft Learn: Power Automate でプロンプトを使用する | 2026-10-07 |
| プロンプトの出力を JSON にでき、JSON の例を更新すると形式が「カスタム」になってテストしても更新されないこと。保存した形式がクラウド フローで使われること。JSON の生成に失敗するときは「回答に JSON マークダウンを含めないでください」を指示に足すこと。キーの無い形式は使えないこと | Microsoft Learn: JSON 出力 | 2026-10-07 |
苦情への応対の方針と返事の期限は、自社の責任者で決めてください。 本記事は上の公開仕様で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0844)についてのご相談はこちらから。
