ホテルに届く領収書の宛名変更・再発行・分割の依頼メールから、予約番号・宛名・但し書き・金額の内訳を抜き出して、フロント会計の処理票にする
ホテルに届く領収書の宛名変更・再発行・分割の依頼メールから、予約番号、宛名、但し書き、分割の内訳、送付先を抜き出し、フロント会計の処理票の1行にします。担当は処理票を見て、宿泊の記録と照らして発行します。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Make/n8n/Power Automate/Zapier
- 対象業界
- 宿泊/飲食
- 対象部門
- カスタマーサポート/経理
- 対象業務
- データ入力・転記/問い合わせ対応
- 主な課題
- 入力作業が多い/問い合わせが多い/確認ミスが多い
- AIで行う処理
- 抽出
- 主な効果
- 入力漏れ削減/対応スピード向上/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- フロント会計の担当が代表メールを開き、領収書の依頼のメールを選び出す
- 本文と添付(前に発行した領収書の写真など)を読み、依頼の種類と内容を把握する
- 予約番号が無ければ、宿泊日と名前で基幹システムを検索し、該当の宿泊を探す
- 宿泊の会計の内訳(客室料、飲食、税、支払方法)を見て、依頼が実際と合っているかを確かめる
- 処理票に、予約番号、宿泊者、依頼の種類、新しい宛名と但し書き、分割の内訳、送付先を書き写す
- 依頼者に、受け付けたことと発送の予定を返信する
- 別の担当が処理票を見て基幹システムで発行し、送る
- 自動代表メールに届いたメールのうち、領収書の依頼の候補をワークフローが拾う
- 自動本文から署名と過去のやり取りの引用を取り除く
- 自動AIが依頼の種類、予約番号、宿泊者、宿泊日、新しい宛名と但し書き、分割の内訳、送付先を抜き出す
- 自動1通に複数の宿泊者の依頼があれば、宿泊者ごとに分ける
- 自動依頼に宿泊の記録と食い違いそうな書き方があれば、印と根拠の一文を付ける
- 自動処理票に1件1行で書き、受付の返信の下書きを作る
- 人担当が処理票の行を開き、基幹システムで宿泊を探して会計の内訳と照らす
- 人印の付いた行は、依頼者に確かめるか、応じられない旨を返信する
- 人返信の下書きを直して送り、別の担当が発行する
各工程の詳しい説明を読む
- フロント会計の担当が代表メールを開き、領収書の依頼のメールを選び出す
- 本文と添付(前に発行した領収書の写真など)を読み、依頼の種類と内容を把握する
- 予約番号が無ければ、宿泊日と名前で基幹システムを検索し、該当の宿泊を探す
- 宿泊の会計の内訳(客室料、飲食、税、支払方法)を見て、依頼が実際と合っているかを確かめる
- 処理票に、予約番号、宿泊者、依頼の種類、新しい宛名と但し書き、分割の内訳、送付先を書き写す
- 依頼者に、受け付けたことと発送の予定を返信する
- 別の担当が処理票を見て基幹システムで発行し、送る
(a)書き写す項目が多い。 1件の依頼に、宛名、但し書き、分割の内訳、送付先の住所かメールアドレスが入ります。分割の依頼では「客室料と朝食で1枚、夕食で1枚」のように、金額の組み合わせまで書き写すことになります。
(b)依頼を読み違える。 「会社名を入れて、但し書きは宿泊費で」と「宛名は前回と同じで」が1通に混ざっていると、どれがどの宿泊者の話かを取り違えます。まとめての依頼ほど、読み違えが増えます。
(c)宿泊の記録と違う依頼を見落とす。 「金額を宿泊費だけにして」と書かれていても、実際には夕食代が同じ会計に入っていることがあります。分割なのか、内容の書き換えなのかを読み分ける必要があります。 忙しい時間帯ほど、依頼をそのまま処理票に写してしまいます。
(d)再発行の記録が残らない。 なくしたので再発行してほしい、という依頼に応じたことが処理票にしか残らず、前の領収書の番号と結び付いていません。 同じ宿泊に2枚の領収書があることが、後から追えません。
- 【自動】 代表メールに届いたメールのうち、領収書の依頼の候補をワークフローが拾う
- 【自動】 本文から署名と過去のやり取りの引用を取り除く
- 【自動】 AIが依頼の種類、予約番号、宿泊者、宿泊日、新しい宛名と但し書き、分割の内訳、送付先を抜き出す
- 【自動】 1通に複数の宿泊者の依頼があれば、宿泊者ごとに分ける
- 【自動】 依頼に宿泊の記録と食い違いそうな書き方があれば、印と根拠の一文を付ける
- 【自動】 処理票に1件1行で書き、受付の返信の下書きを作る
- 【人】 担当が処理票の行を開き、基幹システムで宿泊を探して会計の内訳と照らす
- 【人】 印の付いた行は、依頼者に確かめるか、応じられない旨を返信する
- 【人】 返信の下書きを直して送り、別の担当が発行する
7番目が、この設計の分かれ目です。宿泊の記録との照合は人が行います。 基幹システムをワークフローからは読まない設計で、照合に使う予約番号と宿泊日が処理票の先頭にそろっているので、探す時間が短くなります。
5番目でAIが見るのは、依頼の書き方だけです。 実際の会計の内訳を知らないAIには、食い違っているかは分かりません。「金額を指定している」「日付を変えるよう求めている」といった、確かめるべき書き方を拾うことだけをさせます。
02今回想定するシステム構成
代表メール(Gmail:宿泊客・出張手配の担当からの依頼) ▼【トリガー】Make のシナリオ(15分ごと) Gmail の Watch emails(件名・本文の語で領収書の依頼の候補に絞る) ├──▶ 署名と引用の除去 ├──▶ List email attachments and media(添付の有無を記録) ▼ Anthropic Claude(Make an API Call、構造化出力) │ 依頼の種類・予約番号・宿泊者・宿泊日・宛名・但し書き │ 分割の内訳・送付先・確かめるべき書き方の印 ▼ Make ── 宿泊者ごとに分けて Google Sheets の Add a Row(処理票) ├──▶ Gmail の Create a draft email(受付の返信の下書き) ▼ 【フロント会計の担当】基幹システムで照合 → 発行 → 送付
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| ワークフロー | Make | Zapier、n8n、Power Automate |
| 生成AI | Claude API(Make の Anthropic Claude アプリ) | OpenAI API、Gemini API |
| 連携 | Google スプレッドシート(処理票・依頼の記録) | Microsoft 365 のリスト |
| メール | Gmail(代表メール) | Microsoft 365 のメール |
新しく足すのは、Make のシナリオ1本と、処理票の列の見直しだけです。 代表メールと処理票のスプレッドシートは今のものを使い、処理票に「依頼の種類」「確かめるべき点」「元の領収書の扱い」の列を足すのが最初の準備作業です。
入口は Gmail の Watch emails です。 フィルターの種類(簡易フィルターと Gmail のフィルター)、フォルダとラベル、未読・既読の条件、送信者、件名、「Has the words」「Doesn't have」の語を指定でき、取り込んだメールを既読にする設定と、1回で処理する件数の上限(最大500件)があります。 件名や本文に「領収書」「宛名」「再発行」などを含むメールに絞ります。
シナリオは15分ごとに動かします。 Make のスケジュールは、一定の間隔、1回だけ、毎日、平日、毎週、毎月、日を指定、必要なときだけ、から選べ、間隔の最小値は契約のプランによって決まるとされています。
抜き出しは、Anthropic Claude アプリの Make an API Call で Messages API を呼びます。 同じアプリには Create a Prompt などのモジュールもあり、JSONの形を決めて受け取るために、API を直接呼べる Make an API Call を使います。
出口は2つです。 処理票へは Google Sheets の Add a Row で表の一番下に1行を足し、受付の返信は Gmail の Create a draft email で下書きにします。送信はしません。
03どうやって実装するのか
処理の起点を決める
代表メールへの着信を、15分ごとの Watch emails で拾います。 依頼は日中にばらばらに届くので、1日1回にまとめると、朝に届いた依頼の返信が夕方になります。 出張手配の担当は経費の締めに合わせて依頼してくるので、受付の返信が早いほうが再度の問い合わせが減ります。
拾うメールは、件名か本文に次の語を含むものに絞ります。
| 絞り方 | 設定 |
|---|---|
| Has the words | 領収書、領収証、宛名、但し書き、再発行、分割 |
| Doesn't have | 予約の確認、キャンセル(予約の窓口の自動メール) |
| Criteria | 未読のメールだけ |
| 既読にする | 取り込んだら既読にする |
「既読にする」を有効にするのは、二重に拾わないためです。 そのかわり、人が先に開いて既読にしたメールは拾われません。 代表メールを見る人には、領収書の依頼は開かずにラベルだけ付けてもらう運用にします。
拾った後で、AIが「領収書の依頼ではない」と判定したメールは、処理票に書かず、別のラベルを付けて人の受信箱に戻します。 絞り込みの語に当たっただけの、予約の問い合わせなどです。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 依頼メール | 件名、本文、送信者、受信日時、スレッドのID | Gmail(Watch emails) |
| 添付の情報 | 添付の有無、ファイル名、種類 | Gmail(List email attachments and media) |
| 過去の処理票 | 同じ送信者・同じ予約番号の過去の行 | 処理票(Search Rows) |
| 依頼の種類の一覧 | 宛名変更/但し書き変更/再発行/分割/送付先の指定/その他 | 自社で用意する一覧 |
| 但し書きの決まり | ホテルとして書ける但し書きの例(宿泊代、飲食代、宴会代など) | 自社で用意する一覧 |
質を決めるのは、いちばん下の2つです。 依頼の種類の一覧が無いと、AIは依頼ごとに違う言葉で種類を書き、処理票を種類で絞れなくなります。 但し書きの決まりが無いと、依頼された但し書きがホテルとして書けるものかを、担当が毎回判断することになります。
過去の処理票は、同じ依頼の繰り返しを見つけるために引きます。 同じ予約番号ですでに再発行の行があれば、2回目の再発行であることを処理票に書きます。
添付は、AIには渡しません。 照合は基幹システムの記録で行うので、添付があったことだけを記録し、担当が必要なら開きます。
データの取得方法を決める
Watch emails の Content format で本文をテキストとして受け取ります。 HTML のまま渡すと、装飾のタグが長くなり、依頼の本文がその中に埋もれます。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 件名・本文・送信者 | Watch emails | 抜き出しの材料 |
| スレッドのID | Watch emails | 返信の下書きを同じスレッドに作る |
| 添付の一覧 | List email attachments and media | 添付の有無を処理票に書く |
| 過去の行 | Search Rows(送信者と予約番号で絞る) | 2回目の再発行や、同じ依頼の重複の検出 |
送信者のメールアドレスは、本人確認の手がかりとして処理票に残します。 予約のときに登録されたメールアドレスと同じかどうかは、担当が基幹システムで確かめます。 違うアドレスからの依頼(会社の出張手配の担当など)は珍しくありませんが、宛名や送付先を変える依頼では、誰からの依頼かが大事になります。
AIへ渡す前に整形する
- 本文の整形 … HTML をテキストにし、連続する空行をまとめます
- 署名の除去 … 「-- 」以下や、会社名・電話番号が並ぶ末尾のまとまりを落とします
- 引用の除去 … 「>」で始まる行と、「〜 wrote:」「〜 のメッセージ:」以下の過去のやり取りを落とします
- カード番号らしき数字の伏せ字 … 13〜16桁の連続した数字は、AIに渡す前に伏せます
- 長さの確認 … 整形した本文が極端に長いものは、先頭から一定の長さで切り、切ったことを記録します
- 重複の確認 … 同じスレッドのIDで処理票にすでに行があれば、追記として扱います
3番目を軽く見ないでください。 引用を残したまま渡すと、前回の依頼をもう一度抜き出し、同じ宛名変更が処理票に2行並びます。
4番目は、宿泊客がカードの番号を書いてくることがあるためです。 「このカードで払った分を」と番号ごと書く人がいます。抜き出しには要らない情報で、外部へ渡す理由がありません。
AIに処理させる
させるのは、依頼メールから処理票の項目を抜き出し、確かめるべき書き方に印を付けることだけです。
| 抜き出す項目 | 中身 | 書かれていないときの扱い |
|---|---|---|
| 依頼の種類 | 一覧から選ぶ。複数あれば全部 | 選べなければ「その他」 |
| 予約番号 | 書かれた文字列をそのまま | 空欄。推測しない |
| 宿泊者と宿泊日 | 名前と日付(チェックイン・チェックアウト) | 空欄 |
| 新しい宛名 | 書かれたとおりの会社名・個人名 | 空欄。「前回と同じ」は same_as_before |
| 新しい但し書き | 書かれたとおり | 空欄 |
| 分割の内訳 | 何を何枚に分けたいか(客室料、朝食、夕食、人数割りなど) | 空欄 |
| 送付の方法と送付先 | 郵送かPDFか、住所かメールアドレス | 空欄 |
右端の列が、この構成でいちばん大事な決めごとです。 予約番号が書かれていないとき、本文の日付や名前から番号を作らせません。 空欄のまま処理票に入れ、担当が基幹システムで探します。
| 印を付ける書き方 | 例 | 理由 |
|---|---|---|
| 金額を指定している | 「3万円で」「宿泊費だけの金額に」 | 実際の会計と違う額での発行を求めている可能性 |
| 日付の変更を求めている | 「日付を○日に」 | 宿泊日と違う日付での発行を求めている可能性 |
| 但し書きを宿泊の実際と違う内容に | 「会議費で」「お品代で」 | ホテルの但し書きの決まりに無い |
| 依頼者が宿泊者と違う | 出張手配の担当、家族 | 宛名・送付先の変更では本人確認が要る |
| 2回目以降の再発行 | 過去の処理票に再発行の行 | 同じ宿泊に複数枚が出ることになる |
表の1行目から3行目は、AIに判断させません。 「お品代で」が認められるかは、ホテルの決まりと税理士の助言で決めることです。AIが書くのは、その書き方が依頼にあったという事実と、根拠の一文だけです。
| させないこと | 理由 |
|---|---|
| 依頼に応じてよいかの判断 | ホテルとしての取り決め。担当と責任者が決める |
| 予約番号の推測 | 似た番号で別の宿泊者の記録を開くことになる |
| 金額の計算 | 分割の金額は基幹システムの内訳から担当が決める |
| 印紙の要否の判断 | 記載金額の決まり方に条件がある。担当が決まりに沿って判断する |
| 受付の返信で発行を約束する | 照合の前に約束すると、応じられない依頼で行き違う |
4行目は、印紙税の扱いに条件があるためです。 国税庁のタックスアンサーでは、売上代金の受取書は記載金額5万円未満が非課税とされ、消費税額等が区分記載されていれば、その額は記載金額に含めないとされています。質疑応答事例では、クレジットカードの利用である旨を領収書に書かないと第17号の1文書に当たるとされています。分割すると1枚ごとの金額が変わるので、担当が発行のときに決まりに沿って見ます。
指示内容を固定する
あなたはホテルのフロント会計の補助です。
宿泊客や会社の担当者から届いた、領収書についての依頼メールを読み、
処理票の項目を抜き出してください。依頼に応じるかは判断しません。
【入力】
- メール本文(署名と過去のやり取りを除いたもの):{body}
- 件名:{subject}
- 送信者のメールアドレス:{from}
- 依頼の種類の一覧:{request_types}
- ホテルとして書ける但し書きの一覧:{allowed_purposes}
【してほしいこと】
1. このメールが領収書についての依頼かを判定してください。
違えば is_receipt_request を false にして、ほかは空にしてください。
2. 依頼が複数の宿泊者に及ぶときは、宿泊者ごとに requests に分けてください。
3. 各依頼について、依頼の種類・予約番号・宿泊者・宿泊日・新しい宛名・
新しい但し書き・分割の内訳・送付の方法と送付先を抜き出してください。
4. 次の書き方があれば flags に入れ、根拠になった本文の一文をそのまま写してください:
金額の指定/日付の変更/一覧に無い但し書き/依頼者が宿泊者と違う。
【厳守事項】
- 本文に書かれていない値は空欄にしてください。推測で埋めないでください。
- 予約番号は書かれた文字列をそのまま写してください。
日付や名前から番号を作らないでください。
- 宛名と但し書きは、書かれたとおりに写してください。
「株式会社」の位置や略称を直さないでください。
- 金額を計算しないでください。分割の内訳は「客室料と朝食で1枚」のように、
依頼者が書いた分け方を写してください。
- 依頼に応じてよいか、応じるべきでないかを書かないでください。
- 印紙が要るかどうかを書かないでください。
- カード番号、暗証番号に当たる文字列があっても写さないでください。
「書かれたとおりに写す」を宛名と但し書きに明記しないと、表記を整えてしまいます。 「(株)山田商事」を「株式会社山田商事」に直すのは親切に見えますが、依頼者が会社の経理に合わせて指定した表記を変えることになります。
「応じてよいかを書かない」を明記しないと、「会議費」の依頼に「不可」と書いて印を付けず、担当が依頼者に確かめる機会がなくなります。
出力形式を固定する
Make an API Call で Messages API を呼び、構造化出力で次の形のJSONを受け取ります。 Claude API の構造化出力は、output_config.format に type: "json_schema" でスキーマを渡す形で、制約付きのデコードでスキーマに沿った応答を返すとされています。
{
"is_receipt_request": true,
"requests": [
{
"request_types": ["addressee_change", "split"],
"reservation_no": "",
"guest_name": "",
"stay_dates": { "check_in": "", "check_out": "" },
"new_addressee": "",
"new_purpose": "",
"split_instruction": "",
"delivery": { "method": "mail | pdf | unknown", "address": "" },
"flags": [
{ "type": "amount_specified | date_change | purpose_not_allowed | requester_differs",
"evidence": "" }
]
}
]
}
request_types は addressee_change / purpose_change / reissue / split / delivery / other から選ばせ、スキーマの enum で縛ります。
1つ目の理由は、宿泊者ごとに処理票の行を分けられることです。 5名分のまとめての依頼も、requests の要素ごとに Add a Row を実行すれば5行に分かれます。
2つ目は、flags を処理票の列に出せることです。 印の種類と根拠の一文が列に並ぶので、担当は処理票を印のある行から順に並べ替えて開けます。
注意が2つあります。 構造化出力でも、出力がトークンの上限で切れた場合はスキーマに合わないことがあるとされています。stop_reason を見て、max_tokens で終わったものは処理票に書かず、担当へ回します。また、enum の値は大文字小文字だけが違って返ることがあるとされているので、比べるときは大文字小文字を区別しません。
処理票の1行は次の形です。
| 列 | 中身 |
|---|---|
| 受付日時・スレッドのID | メールの受信日時と、返信に使うID |
| 予約番号・宿泊者・宿泊日 | 抜き出した値。空欄のものは担当が埋める |
| 依頼の種類 | 宛名変更/但し書き変更/再発行/分割/送付先 |
| 新しい宛名・但し書き・分割の内訳 | 書かれたとおり |
| 送付の方法と送付先 | 郵送かPDFか |
| 確かめるべき点 | flags の種類と根拠の一文 |
| 元の領収書の扱い | 担当が書く(回収・無効の記録・再発行の表示) |
| 担当・発行日・領収書の番号 | 担当が書く |
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 代表メール | Gmail の Watch emails | 依頼の候補を拾う |
| 添付 | Gmail の List email attachments and media | 添付の有無と名前 |
| Claude API | Anthropic Claude の Make an API Call(構造化出力) | 処理票の項目と印の抜き出し |
| 処理票 | Google Sheets の Search Rows / Add a Row | 過去の行を引き、1件1行を足す |
| 受付の返信 | Gmail の Create a draft email | 同じスレッドに下書きを作る |
基幹システムには、つなぎません。 予約と会計の記録を読むのも、領収書を発行するのも担当の仕事です。ワークフローから基幹システムに書き込む経路を作らないことで、誤った領収書が自動で出る道を塞ぎます。
受付の返信は、下書きまでにします。 下書きの文面は、受け付けたことと、確かめたうえで発行すること、発送の目安だけを書いた定型文に、宿泊者名と依頼の種類を差し込んだものです。 AIに文面を書かせず、Make の側で組み立てます。
処理票の行は消さずに、状態の列で管理します。 Watch New Rows は空行があるとそれ以降を処理しないとされているので、後で処理票を見るシナリオを足すときに困らないようにします。
人が確認する
処理票の全行を、担当が開きます。 発行の前に必ず基幹システムで照合するので、確認を省く行はありません。減るのは、メールを読んで項目を拾う時間と、書き写す時間です。
- 印の付いた行から開く … 金額の指定、日付の変更、一覧に無い但し書き、依頼者の違いのいずれか。根拠の一文を読み、依頼者に確かめるかを決めます
- 予約番号で宿泊を探す … 空欄なら、宿泊者と宿泊日で探します。見つかった宿泊の会計の内訳を見て、分割の内訳が実際と合うかを確かめます
- 元の領収書の扱いを決める … 宛名変更や分割で作り直すときは、元の領収書をどう扱うかを処理票に書きます
- 返信の下書きを直して送る … 応じられない依頼には、理由を担当が書きます
- 発行して、領収書の番号を処理票に書く
3番目を省かないでください。 宛名を直した領収書を出し、元の領収書がそのまま宿泊客の手元に残ると、同じ宿泊に宛名の違う領収書が2枚ある状態になります。 再発行である旨の表示、元の領収書の回収、無効にした記録のどれをとるかは、ホテルの決まりとして先に決めておきます。
印の付いた依頼に応じるかは、担当が1人で決めない運用にします。 判断に迷うものは、フロント会計の責任者に回します。
例外に対処する
| 起きること | 対応 |
|---|---|
| 領収書の依頼ではなかった | is_receipt_request が false。別のラベルを付けて人の受信箱に戻す |
| 予約番号も宿泊日も無い | 処理票には書き、「宿泊を特定できない」を印にする。担当が依頼者に問い合わせる |
| 1通に5名以上の依頼 | 宿泊者ごとに分けて書く。分け方に迷う書き方なら、元のメールのリンクを全行に付ける |
| 前回のやり取りへの返信で本文が空 | 引用を除くと本文が残らない。引用を含めた全文で1回だけやり直し、だめなら人へ |
| 英語など日本語以外の依頼 | 抜き出しはそのまま行い、返信の下書きは作らずに人へ |
| 出力が途中で切れた | stop_reason が max_tokens。処理票に書かず担当へ |
| APIが応答しない | メールに「未処理」のラベルを付けて残し、次の回で拾い直す |
| 同じ依頼が二度届いた | 同じスレッドのIDか、同じ予約番号と依頼の種類の行があれば追記として扱う |
上から3行目までが、最初の1か月の大半です。 どれもAIの抜き出しの問題ではなく、依頼の書き方の問題です。 ホテルのWebサイトや確認メールに、領収書の依頼に書いてほしい項目(予約番号、宿泊日、宛名、但し書き、送付先)を載せると、この3行は減ります。
記録を残す
- 元のメールのリンクと、受信日時・送信者
- AIに渡した本文(整形と伏せ字の後)と、返ってきたJSONの全文
- 処理票の行(抜き出した値と、担当が直した値の両方)
- 印の種類と、担当がどう対応したか(応じた/確かめて応じた/応じなかった)
- 元の領収書の扱いと、新しく発行した領収書の番号
- 受付の返信を送った日時と、発行して送った日時
5つ目が、この構成で最も大事な記録です。 1つの宿泊に、いつ、どの番号の領収書を、どの宛名で出したかが、再発行の依頼のたびに追えるようになります。 後から宿泊客の会社の経理や税務の確認があったとき、どの領収書が有効かを答える材料になります。
4つ目は、但し書きの決まりを見直す材料です。 同じ但し書きの依頼が毎月何十件も届くなら、一覧に足すか、断り方の定型文を作るかを責任者が決めます。
04実装レベルの3段階
最小構成では件数がさばけません。 1通ずつ貼るので、月300通には使えません。確かめるための段階です。 半自動化で、1件10分が5分程度になります。 読む時間と書き写す時間は減りますが、まとめての依頼を宿泊者ごとに分ける作業と、受付の返信が残ります。本格構成で3分になり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化の処理票を1か月見ると、予約番号の無い依頼の割合と、印を付けるべき書き方の傾向が分かります。そこから印の種類と但し書きの一覧を決めてから、本格構成に進みます。
05工数削減シミュレーション
導入後 300件 × 3分 ÷ 60 = 15 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 出張の利用が多いビジネスホテルやシティホテルで、チェックアウトの後に領収書の宛名や但し書きを直してほしい、なくしたので再発行してほしい、宿泊と飲食を分けてほしい、といった依頼がメールで月に数百件届き、フロントの担当が1通ずつ読んで処理票に書き写している場合。依頼のメールに予約番号が書かれていないことが多く、宿泊の記録を探すところから始まる場合。
- 依頼が月に数十件で、フロントの担当が受けたその場で処理できている場合。領収書の再発行をWebの会員画面で宿泊客自身が行える仕組みがすでにある場合。依頼を電話で受けることがほとんどで、メールで届くものが少ない場合。なお、依頼に応じてよいかの判断、印紙税の扱い、宿泊の記録と違う内容での発行を断るかの判断は、この構成では代替できません。
07最小構成で試す方法
- 先月の領収書の依頼メールから30通を選ぶ(まとめての依頼、予約番号の無いもの、金額を指定したものを混ぜる)
- 署名と過去のやり取りの引用を手で消し、カード番号らしき数字があれば伏せる
- 手元のAIサービスに1通ずつ貼り、第7章のプロンプトで処理票の項目を抜き出させる
- 当時の処理票と並べ、項目の取り違えと書き漏れを数える
- 印の付いた依頼が、当時の担当が問い合わせた依頼と重なっているかを見る
30通は必ずやってください。 シナリオを組む前に、「この依頼の書き方から、処理票の項目が拾えるのか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 当時の処理票と同じ項目が拾えた | シナリオに進む |
| 宛名の表記を整えてしまった | 指示の書き方で直る。構成は有効 |
| 予約番号も宿泊日も無い依頼が多い | 依頼の受け付け方が先。 Webサイトに書いてほしい項目を載せる |
3行目は、AIの問題ではありません。 依頼の書式を案内するほうが、抜き出しを工夫するより効きます。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 予約番号を推測で埋める | 書かれた文字列だけを写すと指示する。空欄を許す |
| 宛名の表記を整えてしまう | 書かれたとおりに写すと明記する |
| 引用した前回の依頼をもう一度抜き出す | 前処理で「>」と「〜 wrote:」以下を落とす |
| まとめての依頼の宿泊者を取り違える | requests を宿泊者ごとの配列にし、行を分ける |
| 金額の指定や日付の変更を見落とす | flags に根拠の一文を写させ、処理票を印のある行から並べる |
| 応じるかどうかをAIが書く | 判断を書かないと明記する。判断は担当と責任者 |
| 人が先に開いたメールが拾われない | 未読だけを拾う設定のため。依頼は開かずにラベルだけ付ける運用にする |
| 出力が途中で切れる | stop_reason を見て、max_tokens のものは人へ |
enum の値が大文字で返る | 大文字小文字を区別せずに比べる |
| 元の領収書が残ったまま新しいものを出す | 元の領収書の扱いの列を処理票に足し、空欄では発行しない |
| カード番号がAIに渡る | 前処理で伏せ字にする |
| 受付の返信で発行を約束してしまう | 返信は定型文に差し込むだけにし、AIに文面を書かせない |
上の3行が、この構成の失敗のほとんどです。 どれも「書かれていないことを足す」か「書かれていることを変える」かのどちらかです。抜き出しは写すことに徹させ、照合と判断は担当に残す線を、指示で守ります。
下から3行目も早く効いてきます。 元の領収書の扱いは、処理票の列で止めるのがいちばん確実です。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 宿泊者の氏名、宿泊日、勤務先の会社名、送付先の住所やメールアドレス、そして依頼者によってはカード番号の一部や全部です。
- 外部へ渡す範囲を、抜き出しに必要な本文までに限る … 署名・引用・添付を除き、カード番号らしき数字は伏せ字にしてから渡します
- 基幹システムをワークフローにつながない … 予約と会計の記録はAIにも Make にも渡さず、照合は担当が画面で行います
- 宛名と送付先の変更は、誰からの依頼かを確かめる … 予約のメールアドレスと違う送信者から、宛名と送付先を同時に変える依頼が来たら、担当が予約の連絡先に確かめます。 領収書を第三者に送る経路になりうるためです
- 宿泊の記録と違う内容の領収書を出さない … 金額・日付・但し書きを実際と違うものにする依頼には応じない、という決まりを先に作ります。AIは書き方に印を付けるだけで、判断はしません
- 印紙の扱いは担当が決まりに沿って見る … 国税庁の質疑応答事例では、再発行の受取書も第17号文書に当たり、納税義務者は再発行を求めた側ではなく作成者とされています。分割や再発行のたびに、記載金額と支払方法の記載を確かめます
- 記録の保存期間を決める … 処理票とAIの出力には、宿泊者の個人情報が入ります。宿泊の記録と同じ考え方で保存期間を決めます
誤りが起きた場合のリスクは、宿泊の記録と違う内容の領収書を出すことと、宿泊者でない人に領収書を送ることの2つです。 前者は印と担当の照合で、後者は依頼者の確認で防ぎます。どちらも基幹システムとの照合を人に残すことで守る設計です。
10まず何から始めるか
1週目:一覧を2つ作る
依頼の種類の一覧(宛名変更、但し書き変更、再発行、分割、送付先)と、ホテルとして書ける但し書きの一覧を作ります。あわせて、元の領収書の扱いと、宿泊の記録と違う依頼への応じ方を、フロント会計の責任者と決めます。
2週目:30通で試す
先月の依頼メールから30通を選び、手元のAIサービスで処理票の項目を抜き出させます。当時の処理票と並べ、予約番号を推測で埋めていないか、宛名の表記を変えていないかを最優先で見ます。
3週目:処理票の列を足す
処理票に「依頼の種類」「確かめるべき点」「元の領収書の扱い」の列を足します。ホテルのWebサイトと予約の確認メールに、領収書の依頼に書いてほしい項目を載せます。
4週目:拾い出しから処理票までをつなぐ
Make で代表メールを拾い、抜き出した項目を処理票に書くところまで作ります。この時点では印と返信の下書きを出さず、抜き出しの精度だけを見ます。
2か月目: 宿泊者ごとの分割と、flags の印、受付の返信の下書きを足します。印の付いた依頼の件数と、担当の対応を毎週数えます。3か月目以降: 1件10分が何分になったかを実測し、但し書きの一覧と依頼の書式の案内を見直します。依頼を受けてから受付の返信までが同じ日のうちに収まり、元の領収書の扱いが全件の処理票に書かれた時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 領収書が第17号文書に当たること。売上代金の受取書は記載金額5万円未満が非課税で、5万円以上の金額の区分ごとに税額が決まること。営業に関しない受取書は非課税であること | 国税庁: No.7105 金銭又は有価証券の受取書、領収書 | 2026-10-08 |
| 消費税額等が区分記載された受取書では、その額を記載金額に含めないこと(免税事業者を除く) | 国税庁: No.7124 消費税額等が区分記載された契約書等の記載金額 | 2026-10-08 |
| 再発行である旨を記載した受取書も第17号文書に当たり、納税義務者は作成者であること | 国税庁 質疑応答事例: 再発行した受取書 | 2026-10-08 |
| クレジット販売の領収書は第17号の1文書に当たらないが、クレジットカードの利用である旨を記載しないと当たること | 国税庁 質疑応答事例: クレジット販売の場合の領収書 | 2026-10-08 |
| シナリオの実行の間隔の選び方と、最小の間隔が契約のプランで決まること | Make Help: Schedule a scenario | 2026-10-08 |
| Gmail の Watch emails の絞り込みの項目(フィルターの種類、フォルダとラベル、未読・既読、送信者、件名、含む語・含まない語、既読にする設定、最大500件の上限、Content format)。List email attachments and media、Create a draft email の項目 | Make: Gmail | 2026-10-08 |
| Search Rows の絞り込みと並べ替え、Add a Row が表の一番下に行を足すこと、Watch New Rows が空行以降を処理しないこと | Make: Google Sheets | 2026-10-08 |
| Anthropic Claude アプリに Create a Prompt と Make an API Call があり、API キーで接続すること | Make: Anthropic Claude | 2026-10-08 |
構造化出力を output_config.format に type: "json_schema" で指定し、制約付きのデコードでスキーマに沿った応答を返すこと。max_tokens で切れた場合はスキーマに合わないことがあること。enum の値が大文字小文字だけ違って返ることがあること | Claude Docs: Structured outputs | 2026-10-08 |
どの依頼に応じるか、印紙をどう扱うかは、ホテルの決まりと顧問税理士の助言で決めてください。 本記事は国税庁のページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1110)についてのご相談はこちらから。
