Media > AI活用ユースケース > マーケティング > 予約サイトに載っている自館の施設情報・プランの説明・写真の説明文をエージェントが毎週見回り、館内の正本と食い違う営業時間・設備・料金の条件を拾って修正の依頼を作る

予約サイトに載っている自館の施設情報・プランの説明・写真の説明文をエージェントが毎週見回り、館内の正本と食い違う営業時間・設備・料金の条件を拾って修正の依頼を作る

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

6館が載っている4つの予約サイトの掲載内容を毎週集め、館内の施設情報の正本と照らします。エージェントが営業時間・設備・料金の条件の食い違いと古い記載を拾い、修正の依頼の下書きを作ります。

サマリー
生成AI
ChatGPT/Claude/Gemini
連携・自動化
Make/n8n/Power Automate/Zapier
対象業界
不動産/宿泊/飲食
対象部門
マーケティング
対象業務
内容確認・チェック/比較検討
主な課題
人手が足りない/期限・対応漏れが起きる/確認ミスが多い
AIで行う処理
エージェント
主な効果
入力漏れ削減/工数削減/機会損失防止
導入難易度
★★★☆☆
実装レベル
本格構成
費用感
API連携(中)
人間の確認
条件付き
現在工数
48h/月
AI導入後
16h/月
想定削減
67%
年間削減
384h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. 毎週、担当者が受け持ちの館の各サイトのページを開く
  2. 施設の説明、館内の設備、プランの説明、写真の説明文を順に読む
  3. 館の施設情報のスプレッドシートを横に開き、営業時間・設備・駐車場・料金の条件を見比べる
  4. 違う記載があれば、メモに書き出す
  5. 館に「どちらが正しいか」をチャットで確かめる
  6. 各サイトの管理画面で直す
  7. 直したことを館に伝える
導入後(After)
  1. 自動毎週月曜の朝、ワークフローが館と予約サイトの一覧を読む
  2. 自動楽天トラベルは、公式のAPIで施設の情報とプランの説明を取得する
  3. 自動取得してよいと確かめたサイトは、自館のページを取得して本文を取り出す
  4. 【人/自動】 取得しないサイトは、担当者が前の週末までにページをPDFで保存し、ワークフローが文字を取り出す
  5. 自動前の週の掲載と比べ、変わったところと、変わっていないところを分ける
  6. 自動エージェントが、掲載の記載を正本と変更の履歴に項目ごとに照らし、食い違いと古い記載を拾う
  7. 自動エージェントが、サイトごとに修正の依頼の下書きを作る
  8. 人担当者が拾われた項目を確かめ、必要なら館に聞いてから、各サイトの管理画面で直す
各工程の詳しい説明を読む
  1. 毎週、担当者が受け持ちの館の各サイトのページを開く
  2. 施設の説明、館内の設備、プランの説明、写真の説明文を順に読む
  3. 館の施設情報のスプレッドシートを横に開き、営業時間・設備・駐車場・料金の条件を見比べる
  4. 違う記載があれば、メモに書き出す
  5. 館に「どちらが正しいか」をチャットで確かめる
  6. 各サイトの管理画面で直す
  7. 直したことを館に伝える

(a)24の掲載を毎週全部は読み切れない。 1つのサイトでも、施設の説明、設備の一覧、プランごとの説明、写真の説明文と、見るところが何十もあります。忙しい週は、変更のあった館だけを見ることになり、変更の無い館の古い記載は残ります。

(b)変更の反映漏れがサイトごとに残る。 館から「大浴場を23時までにした」と届くと、担当者は思いつくサイトから直します。4つ目のサイトや、プランの説明の中に書いた営業時間は、直し忘れます。

(c)予約客の指摘で初めて気づく。 「サイトに24時までと書いてあったのに入れなかった」と言われて初めて、そのサイトの記載が古いと分かります。館は謝り、場合によっては補償を考えることになります。

(d)何が古い記載かが分からない。 正本に変更の履歴が無いので、掲載の「24時まで」が誤入力なのか以前の値なのかを、館に聞くまで判断できません。

  1. 【自動】 毎週月曜の朝、ワークフローが館と予約サイトの一覧を読む
  2. 【自動】 楽天トラベルは、公式のAPIで施設の情報とプランの説明を取得する
  3. 【自動】 取得してよいと確かめたサイトは、自館のページを取得して本文を取り出す
  4. 【人/自動】 取得しないサイトは、担当者が前の週末までにページをPDFで保存し、ワークフローが文字を取り出す
  5. 【自動】 前の週の掲載と比べ、変わったところと、変わっていないところを分ける
  6. 【自動】 エージェントが、掲載の記載を正本と変更の履歴に項目ごとに照らし、食い違いと古い記載を拾う
  7. 【自動】 エージェントが、サイトごとに修正の依頼の下書きを作る
  8. 【人】 担当者が拾われた項目を確かめ、必要なら館に聞いてから、各サイトの管理画面で直す

8番目が、この設計の分かれ目です。 エージェントは管理画面に触れません。直すのは担当者で、エージェントが作るのは「どのサイトの、どこを、何から何に直すか」の下書きまでです。

6番目で変更の履歴を引かせるので、第3章の(d)の「館に聞くまで判断できない」が減ります。 掲載の値が正本の以前の値と一致すれば「古い記載」で、館に聞かずに直せます。館に聞くのは、正本のどの時点の値とも一致しないものだけです。

5番目で前の週と比べているのも、意図してのことです。 予約サイトの側が、掲載の文章を変えることがあります。担当者が直していないのに文章が変わったところは、別に知らせます。

02今回想定するシステム構成

構成図
館と予約サイトの一覧(スプレッドシート:館・サイト・施設番号やURL・取得の方法)
施設情報の正本(スプレッドシート:項目・現在の値・変更の履歴・適用日)
   │
   ▼【トリガー】Schedule Trigger(毎週月曜 8時、Asia/Tokyo)
n8n のワークフロー
   ├──▶ HTTP Request(楽天ウェブサービス:施設情報API・空室検索API)
   ├──▶ HTTP Request + HTML(取得してよいと確かめたサイトの自館のページ)
   ├──▶ 保存フォルダのPDF → Extract From File(Extract From PDF)
   ├──▶ 前の週の掲載との比較
   ▼
AI Agent ノード(Tools Agent)+ Anthropic Chat Model
   │  掲載ごとに、道具を選んで使う
   │   ・正本の現在の値を引く ・正本の変更の履歴を引く
   │   ・表記の言い換えの一覧を引く
   │  Structured Output Parser で決まった形のJSONを返す
   ▼
点検の表(スプレッドシート)→ Web販売課のチャットへ通知
   ▼【人】確認・館への問い合わせ・各サイトの管理画面での修正
役割想定する製品代替候補
ワークフローn8nMake、Zapier、Power Automate
生成AIClaude API(n8n の Anthropic Chat Model ノード)OpenAI API、Gemini API
連携楽天ウェブサービスの楽天トラベル施設情報API・空室検索API楽天トラベルのページを担当者が保存する

新しく足すのは、n8n のワークフローと、正本の変更の履歴の列だけです。 館ごとの施設情報のスプレッドシートを、項目、現在の値、以前の値、変わった日の形に作り直します。

楽天トラベルは、楽天ウェブサービスの楽天トラベル施設情報API(HotelDetailSearch)で取ります。 公式のページでは、版は2026-07-31で、applicationId と accessKey の両方が要り、accessKey はヘッダかクエリで渡します。施設番号の hotelNo を渡し、responseType で返す量を small、middle(既定)、large から選びます。

返る項目は、点検の対象とよく重なります。 施設の特色(hotelSpecial)、アクセス、駐車場の情報(parkingInformation)、チェックインとチェックアウトの時刻(checkinTime、checkoutTime、lastCheckinTime)、客室と館内の設備、朝食と夕食の会場、お風呂の種類と泉質と効能(aboutBath)、注意事項(note)、キャンセルの規定(cancelPolicy)などです。詳細の情報や設備・規定の情報が返るのは large と読めるので、responseType は large にし、取れた項目を初回に目で確かめます。

プランの説明は、空室検索API(VacantHotelSearch)で取ります。 公式のページでは、hotelNo は1回に15件まで渡せ、プラン名(planName)、夕食・朝食の有無、プランの内容(planContents)などが返ります。planContents は販売の形によって返らないことがあり、中の項目はページに書かれていません。 初回に自館のプランで返り方を確かめます。

03どうやって実装するのか

Step1

処理の起点を決める

毎週月曜の朝8時に、Schedule Trigger で動かします。 Schedule Trigger はワークフローのタイムゾーンを使い、無ければインスタンスのタイムゾーンを使います。セルフホストの既定は America/New York なので、ワークフローのタイムゾーンを Asia/Tokyo にします。 保存して公開しないと動きません。

月曜にしているのは、館の変更が週末の運営の振り返りで決まることが多いからです。 金曜までに館から届いた変更を正本に入れておけば、月曜の点検で、まだ直していないサイトが拾われます。 担当者が保存するサイトのPDFは、前の週の金曜までに保存フォルダに入れます。

正本を変えたときにも動かします。 正本の値を直した担当者が、その館だけを対象にした実行を手で起こします。変更から次の月曜まで待つと、その間の予約客に古い記載を見せることになるからです。

Step2

入力データを集める

データ中身取得元
館と予約サイトの一覧館、サイト、施設番号またはURL、取得の方法(API/取得/保存)、確認日スプレッドシート
楽天トラベルの掲載施設の特色、アクセス、駐車場、チェックイン・アウト、設備、お風呂、注意事項、キャンセルの規定、プラン名とプランの内容施設情報API・空室検索API
ほかのサイトの掲載施設の説明、設備、プランの説明、写真の説明文の文字取得したページ/保存したPDF
施設情報の正本項目(大浴場の営業時間、朝食の時間、駐車場の台数と料金、子供料金、添い寝など)、現在の値、以前の値、変わった日スプレッドシート
表記の言い換えの一覧「23:00」「23時」「午後11時」のような同じ意味の書き方Web販売課が作る

質を決めるのは、正本の「以前の値」と「変わった日」の列です。 これが無いと、掲載の値が正本と違うときに、誤入力なのか直し忘れなのかが分かりません。 直し忘れなら担当者がすぐ直せ、誤入力なら館に確かめます。

正本の項目は、予約客が困るものから並べます。 営業時間、休止中の設備、駐車場、子供料金と添い寝、チェックインの最終時刻、キャンセルの規定です。眺望や客室の広さのような、めったに変わらない項目は後回しにします。

写真の説明文は、文字だけを見ます。 画像そのものが今の館と合っているかは、この構成では見ません。「露天風呂付き客室」の写真の説明文に、休止中の設備が書かれていないかを見ます。

Step3

データの取得方法を決める

サイトごとに、取得の方法を3つに分けます。

取得の方法使うサイト取り方
API楽天トラベルHTTP Request で施設情報API・空室検索APIを呼ぶ
取得利用条件と robots.txt で自館のページの取得が断られていないと確かめたサイトHTTP Request で自館のページを取り、HTML ノードで本文を取り出す
保存それ以外のサイト担当者がブラウザで自館のページをPDFで保存し、Extract From File の Extract From PDF で文字を取り出す

2行目の「取得」は、担当者が利用条件を読んで決めます。 robots.txt は RFC 9309 が定めるクローラーへの依頼の書き方で、RFC 9309 自身が、これはアクセスの許可ではないと書いています。 robots.txt が許していても、サイトの利用条件が自動の取得を断っていれば「保存」にします。一覧の「確認日」の列に、利用条件を読んだ日を残します。

APIの呼び方には、2つの注意があります。 公式のページでは、短い時間に同じリクエストのURLへ大量にアクセスすると一定時間利用できなくなる場合があるとされ、上限を超えると HTTP 429 が返ります。6館の呼び出しは HTTP Request の Batching で間をあけて送ります。 空室検索APIは hotelNo を15件までまとめて渡せるので、6館なら1回で足ります。

取得するページは自館のページだけです。 他の館のページや検索結果の一覧は取りません。HTTP Request の Timeout と、Include Response Headers and Status を設定し、ステータスコードが200でないときは、その掲載を「未取得」にします。

Step4

AIへ渡す前に整形する

  1. 項目ごとに分ける … APIの応答は項目名ごとに、ページとPDFの文字は見出し(設備、駐車場、お風呂、プランの説明など)ごとに分けます
  2. 前の週と比べる … 同じ掲載の前の週の文字と比べ、変わった項目に印を付けます
  3. 表記をそろえる … 全角と半角、時刻の書き方(「23:00」「23時」)をそろえます。意味の言い換えはそろえず、エージェントに任せます
  4. プランを絞る … プランの説明は長いので、営業時間・食事の時間・子供・駐車場・キャンセルに触れる文だけを残します
  5. 正本を付ける … その館の正本の現在の値を、項目ごとに付けます

2番目で、担当者が直していないのに変わった項目は、エージェントに渡す前に別の一覧に出します。 予約サイトの側の変更か、館の誰かが管理画面で直したかのどちらかです。どちらにしても、Web販売課が知らないまま掲載が変わったことになります。

4番目で文を絞るのは、プランの説明に宣伝の文が多いからです。 全部を渡すと、エージェントが「贅沢なひととき」のような文まで正本と照らそうとします。

Step5

AIに処理させる

させるのは、掲載の項目ごとに正本と照らし、食い違いと古い記載を拾って、サイトごとの修正の依頼の下書きを作ることです。

手順エージェントがすること使う道具
1掲載の項目ごとに、対応する正本の項目を選ぶget_master
2値が同じか、言い換えで同じかを見るget_aliases
3違う値なら、正本の以前の値と一致するかを見るget_history
4項目ごとに区分を付けるなし
5サイトごとに、修正の依頼の下書きを作るなし

区分は、次の5つです。

区分意味次の作業
match正本と同じ(言い換えを含む)なし
outdated正本の以前の値と一致する担当者がすぐ直す
mismatch正本のどの時点の値とも違う館に確かめてから直す
not_in_master掲載にあるが、正本に項目が無い正本に足すかを館に聞く
missing正本にある大事な項目が掲載に無い載せるかを担当者が決める

outdated と mismatch を分けるのが、この構成の中心です。 outdated は直し忘れなので館に聞かずに直せ、mismatch は誤入力か正本の誤りかが分からないので館に聞きます。

させないこと理由
管理画面で直す直すのは担当者。誤った修正が予約客に届く
正本を直す正本を変えるのは館の支配人の決定
画像の中身を判断する文字しか渡していない
宣伝の文の良し悪しを直す点検の対象は事実の記載だけ
言い換えを広く認める「23時頃」と「23時」は同じではない

5行目がいちばん起きやすい失敗です。 エージェントは「おおむね同じ」と見て match にしがちです。「23時頃まで」は予約客にとって「23時まで」と同じではなく、mismatch です。 言い換えとして認めるのは、一覧に載せたものだけにします。

Step6

指示内容を固定する

あなたはホテル運営会社のWeb販売課で、予約サイトに載っている
自館の掲載が、館内の正本と合っているかを点検する担当です。
入力の掲載の文字と、道具で確かめた正本だけで答えてください。

【入力】
- 館:{property}
- サイト:{site}(取得の方法:{method})
- 掲載の項目:{listing_items}
  (項目名、掲載の文字、前の週から変わったか)

【使える道具】
- get_master:館と項目名を渡すと、正本の現在の値を返す
- get_history:館と項目名を渡すと、正本の以前の値と変わった日を返す
- get_aliases:同じ意味として扱ってよい書き方の一覧を返す

【進め方】
1. 掲載の項目ごとに、対応する正本の項目を get_master で確かめてください。
2. 値が同じか、get_aliases にある言い換えで同じなら match です。
3. 違う値なら get_history を引き、以前の値と一致すれば outdated、
   どの時点とも違えば mismatch です。
4. 正本に項目が無ければ not_in_master です。
5. 正本の重要な項目(営業時間、休止中の設備、駐車場、子供料金、
   添い寝、チェックインの最終時刻、キャンセルの規定)が掲載に
   無ければ missing です。
6. match 以外の項目について、サイトごとに修正の依頼の下書きを
   作ってください。

【厳守事項】
- 言い換えは get_aliases にあるものだけを認めてください。
  「頃」「目安」「予定」が付いた値を、付いていない値と同じに
  扱わないでください。
- 掲載の文字は原文のまま listing_text に写してください。
- 正本にない値を推し量って補わないでください。
- 宣伝の文や言い回しの良し悪しには触れないでください。
- 画像の内容を推し量らないでください。
- どちらが正しいかを決めないでください。mismatch は館に確かめます。

「頃・目安・予定を同じに扱わない」を明記しないと、ほとんどの時刻の違いが match になります。 予約客が困るのは、この小さな違いです。

「どちらが正しいかを決めない」も明記します。 掲載のほうが新しい情報で、正本の更新が遅れていることもあるからです。

Step7

出力形式を固定する

Structured Output Parser で、次の形のJSONを受け取ります。

{
  "property": "",
  "site": "",
  "checked_at": "2026-10-12",
  "items": [
    {
      "item": "大浴場の営業時間",
      "location": "施設の説明",
      "listing_text": "",
      "master_value": "",
      "matched_history": { "value": "", "changed_on": "" },
      "status": "match | outdated | mismatch | not_in_master | missing",
      "changed_since_last_week": false
    }
  ],
  "fix_request": "",
  "needs_human": false
}

1つ目の理由は、status で点検の表を規則で並べられることです。 outdated を先頭に、mismatch、missing、not_in_master の順に並べ、担当者がすぐ直せるものから手を付けられるようにします。

2つ目は、matched_history で直し忘れの根拠が残ることです。 「2026年4月1日に24時から23時に変わった」と分かれば、どの変更の反映が漏れたのかが分かり、同じ変更を他のサイトでも直したかを確かめられます。

3つ目は、listing_text をワークフローの側で照合できることです。 写した文字が取得した掲載の中にそのまま含まれるかを確かめ、含まれないものは needs_human を立てます。

Structured Output Parser の Generate From JSON Example では、すべての項目が必須として扱われるとされています。空のときは空文字や false を返させます。

Step8

システムへ連携する

つなぎ先方式内容
楽天ウェブサービスHTTP Request ノード施設情報APIと空室検索APIで掲載を取る
取得してよいサイトHTTP Request ノード+HTML ノード自館のページの本文を取る
保存フォルダファイルの読み取り+Extract From File担当者が保存したPDFの文字を取り出す
正本・言い換えの一覧Google Sheets ノード(道具のサブワークフロー)現在の値、以前の値、言い換えを返す
Claude APIAnthropic Chat Model ノード照合、区分、修正の依頼の下書き
点検の表Google Sheets ノード項目ごとに1行ずつ書く
Web販売課のチャットn8n のチャットのノード館とサイトごとの outdated・mismatch の件数を知らせる

道具は、Call n8n Workflow Tool でサブワークフローとして持たせます。 公式のページでは、道具の Description がいつ呼ぶかをエージェントに伝え、本番ではサブワークフローを公開しておく必要があるとされています。

予約サイトの管理画面には、つなぎません。 修正は担当者が行い、直したら点検の表の「直した日」の列を埋めます。翌週の点検で match になれば、直しが反映されたことが確かめられます。

Step9

人が確認する

人が見るのは、match 以外の項目と、needs_human が立った掲載です。

  1. outdated を直す … matched_history を見て、直し忘れだと確かめたら、管理画面で直します
  2. mismatch を館に聞く … 下書きの文面を使って館に確かめ、正しい値で直します。正本の誤りなら、館に正本を直してもらいます
  3. missing を決める … 載せるかどうかを決めます。休止中の設備は載せる方向で考えます
  4. 前の週から変わった項目を見る … 担当者が直していないのに変わったものは、誰が変えたかを確かめます

2番目で、館の返事を待つ間に忘れないように、点検の表に「館に確認中」の印を付けます。 印の付いたまま1週間が過ぎた項目は、翌週の通知の先頭に出します。

目標は、96件をならして1件10分です。 変更の多い館の掲載は長く、変わっていない掲載は数分で終わります。保存のサイトのPDFを保存する時間は、この10分に含めています。

Step10

例外に対処する

起きること対応
APIが429を返す間をあけて取り直す。続けば翌日に回す
APIの鍵の不備で取れない実行を止め、担当者へ知らせる
planContents が返らないプランプラン名だけで点検し、プランの説明は保存のPDFで見る
取得したページの本文が空スクリプトで描かれたページ。そのサイトを「保存」に切り替える
保存のPDFが届いていないその掲載を「未点検」にし、担当者へ知らせる
写した文字が掲載に無い区分を採らず、needs_human にする
正本の項目が見つからないnot_in_master。正本に足すかを館に聞く
Claude API が応答しない前の週から変わった項目の一覧だけを出し、照合は次の実行で行う

4行目は、最初の1か月でよく起きます。 取得のつもりだったサイトの多くが、ページの中身をスクリプトで描いています。取れないサイトを早めに「保存」に分けると、運用が安定します。

Step11

記録を残す

  • 実行の日時、サイトごとの取得の方法と結果
  • 掲載ごとの、取得した文字の全文と、前の週との差
  • エージェントの入力、道具の呼び出しの記録、結果のJSONの全文、写しの照合の結果
  • 担当者が直した日、館に確かめた結果、正本を直した記録
  • 各サイトの利用条件を確かめた日

取得した文字の全文を残すのは、予約客から「サイトにこう書いてあった」と言われたときに、その日の掲載を確かめるためです。 Tools Agent の Return Intermediate Steps を有効にすると、どの道具を引いて区分を決めたかも残ります。

04実装レベルの3段階

最小構成:ページを手で保存し、AIの画面で正本と照らさせる / 1つの掲載ずつの照合
半自動化:上記+n8n で楽天トラベルのAPIと取得できるサイトを毎週取り、前の週から変わった項目を表に書き出す / 掲載の取得と変化の検知
本格構成:上記+エージェントが正本と変更の履歴に照らして区分を付け、修正の依頼の下書きを作る / 取得から修正の依頼の下書きまで

半自動化で、第4章の①が大きく減ります。 担当者はページを開かずに、取得した文字と前の週からの変化を表で読めます。本格構成で②と③が確認の作業に変わり、この段階が本記事の想定です。 差が大きいのは、②の正本と見比べる作業が、項目の数だけ繰り返される手作業だからです。 段階を飛ばさないでください。 半自動化を1か月回すと、取得できないサイトと、正本に項目の無い記載が分かります。そこを片付けてからエージェントを足します。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
3 名
月間件数
96 件
1件あたり現在時間
30 分
1件あたり導入後時間
10 分
現在  96件 × 30分 ÷ 60 = 48 時間/月
導入後 96件 × 10分 ÷ 60 = 16 時間/月
月間削減時間
32h
削減率
67%
年間削減時間
384h
年間金額換算(時間単価3,500円)
134万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 複数の館を運営するホテル・旅館の会社で、各館が3〜5の予約サイトに載っており、大浴場やレストランの営業時間、駐車場、子供料金などの変更がサイトごとの管理画面への手入力で反映されている場合。改装や人手の事情で設備の休止や時間の変更が多い場合。予約客から「サイトの記載と違う」と言われることがある場合。
向いていない
  1. 1館だけで、載っている予約サイトが1〜2つの場合(担当者が見れば足りる)。施設情報の正本が館内で決まっておらず、どれが正しいかを誰も言えない場合(先に正本を作る)。予約サイトの掲載をサイトコントローラーなどで一括して配信できていて、手入力の経路が無い場合。なお、予約サイトの管理画面での修正そのものと、予約客への説明・補償の判断は、この構成では代替できません。

07最小構成で試す方法

  1. 館を1つ選び、正本の重要な項目(営業時間、休止中の設備、駐車場、子供料金、添い寝、チェックインの最終時刻、キャンセルの規定)に以前の値と変わった日を書き足す
  2. その館の4つのサイトのページをPDFで保存する
  3. 手元のAIサービスに、正本とPDFを貼る
  4. 「掲載の項目ごとに正本と照らし、match・outdated・mismatch・not_in_master・missing に分けてください。『頃』『目安』の付いた値を同じに扱わないでください」と指示する
  5. 担当者が同じ4つのページを見て拾った違いと見比べる

1館は必ず試してください。 ワークフローを組む前に、「正本の書き方で、直し忘れと誤入力を分けられるか」を確かめます。

出てきた内容判断
担当者と同じ違いが拾われたワークフローの構築に進む
正本の以前の値が分からず outdated が出ない館に過去の変更を聞いて履歴を作る。構成は有効
「23時頃」を match にした指示の書き方で直る。言い換えの一覧を作る

2行目が出ることは珍しくありません。 失敗ではなく、どちらが正しいかを毎回館に聞いていた理由が分かったということです。

あわせて、楽天ウェブサービスでアプリを登録し、施設情報APIで自館の情報がどの項目まで返るかを確かめます。 返らない項目は、楽天トラベルでも保存のPDFで補います。

08実装時につまずきやすいポイント

問題対策
直し忘れと誤入力が分からない正本に以前の値と変わった日を持たせる
「23時頃」が「23時」と同じ扱いになる言い換えは一覧にあるものだけを認める
設備や規定の項目が返らないresponseType を large にし、返る項目を初回に確かめる
プランの説明が返らないplanContents は販売の形で返らないことがある。保存のPDFで補う
APIが429を返す間をあけて送り、空室検索は hotelNo をまとめる
取得したページの本文が空スクリプトで描かれたページ。「保存」に切り替える
自動の取得を断っているサイトを取る利用条件を読み、取得の方法の列で止める
宣伝の文まで照合するプランの説明は、関わりのある文だけに絞る
誰も直していないのに掲載が変わる前の週との差を別の一覧に出す
館への確認が返ってこない「館に確認中」の印を付け、1週間で通知の先頭に出す

上の2行が、この構成の中心です。 どちらも正本の書き方と言い換えの決め方の問題で、エージェントの賢さとは関係がありません。

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 予約サイトに公開されている自館の掲載と、館内の施設情報の正本、変更の履歴、館とのやりとり、楽天ウェブサービスの鍵です。予約客の個人情報は扱いません。

  1. 予約客の情報を混ぜない … 点検に使うのは掲載と正本だけです。口コミや問い合わせの文は入力に入れません
  2. 各サイトの利用条件を守る … 取得の方法をサイトごとに決め、自動の取得を断っているサイトは担当者が保存します。 取得するのは自館のページだけです
  3. APIの鍵を守る … accessKey は n8n の認証情報に置き、ワークフローの中に書き込みません
  4. 管理画面の操作は人が行う … エージェントの下書きをそのまま入力しません。誤った修正は、予約客に直接届きます
  5. 正本を変える権限を分ける … 正本はWeb販売課が勝手に直さず、館の支配人の決定で直します

誤りが起きた場合のリスクは、古い記載を見落とすことと、正しい掲載を誤った値に直すことの2つです。 前者は毎週の全件の点検で、後者は mismatch を館に確かめてから直すことで防ぎます。

10まず何から始めるか

1週目:正本の作り直しを始める

1館を選び、重要な項目に以前の値と変わった日を書き足します。この1年の変更から書きます。

2週目:1館で試す

その館の4つのサイトのページをPDFで保存し、手元のAIサービスで正本と照らさせます。「頃」「目安」の付いた値を同じに扱っていないかを最優先で見ます。

3週目:取得の方法を決める

4つのサイトの利用条件を読み、取得の方法(API/取得/保存)を一覧に書きます。楽天ウェブサービスでアプリを登録し、施設情報APIと空室検索APIで返る項目を確かめます。

4週目:取得と前の週との比較をつなぐ

n8n で掲載を取り、前の週から変わった項目を表に書き出すところまで作ります。この時点ではエージェントを入れず、取れない掲載が無いかを見ます。

2か月目: エージェントを足し、区分と修正の依頼の下書きを表に書きます。残りの5館の正本を順に作り直します。3か月目以降: 1件30分が何分になったかを実測し、outdated の件数が0の週が続いた時点で、この構成は完成です。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-10-12/最終更新:2026-10-13
確認した内容情報源確認日
施設情報APIの版(2026-07-31)とURL、applicationId と accessKey が要ること、hotelNo、responseType(small/middle/large)、返る項目(施設の特色、アクセス、駐車場、チェックイン・アウトの時刻、設備、お風呂、注意事項、キャンセルの規定)、短時間の大量アクセスと429楽天ウェブサービス: 楽天トラベル施設情報API2026-10-12
空室検索APIの hotelNo が15件まで、プラン名・食事の有無・planContents(販売の形で返らないことがある)、429楽天ウェブサービス: 楽天トラベル空室検索API2026-10-12
robots.txt の位置づけと、アクセスの許可ではないことRFC 9309: Robots Exclusion Protocol2026-10-12
Batching、Timeout、Include Response Headers and Statusn8n Docs: HTTP Request2026-10-12
Extract HTML Content の CSS Selector と Return Valuen8n Docs: HTML2026-10-12
Extract From PDF の操作があることn8n Docs: Extract From File2026-10-12
タイムゾーンの扱いとセルフホストの既定、保存と公開が要ることn8n Docs: Schedule Trigger2026-10-12
Return Intermediate Stepsn8n Docs: Tools Agent2026-10-12
道具の Description の役割と、サブワークフローの公開が要ることn8n Docs: Call n8n Workflow Tool2026-10-12
例から作ったスキーマは全項目が必須n8n Docs: Structured Output Parser2026-10-12

予約サイトの掲載の修正と、予約客への説明や補償の判断は、Web販売課と館で行ってください。 本記事は上記の公式ページで確認できた範囲だけを扱っています。楽天トラベル以外の予約サイトの利用条件は、サイトごとに確かめてください。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-1269)についてのご相談はこちらから。

AI活用について相談する
目次