賃貸管理会社が空室の募集の掲載を、管理台帳と各ポータルの一覧で確かめるエージェントを動かし、止め忘れと載せ漏れを拾う
管理台帳の空室と、各ポータルに出している掲載の一覧を週2回突き合わせ、食い違いのある部屋ごとにエージェントが申込・契約・退去予定の記録を引いて原因を調べます。結果は「掲載を止める」「載せる」「条件を直す」「人が確かめる」に分けて担当へ返します。
- 生成AI
- ChatGPT/Claude
- 連携・自動化
- Make/n8n/Power Automate/Zapier
- 対象業界
- 不動産
- 対象部門
- 営業
- 対象業務
- 内容確認・チェック/比較検討
- 主な課題
- 人手が足りない/期限・対応漏れが起きる/確認ミスが多い
- AIで行う処理
- エージェント
- 主な効果
- 入力漏れ削減/工数削減/機会損失防止
- 導入難易度
- ★★★★☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 週に1回、募集担当が台帳から空室の一覧を出す
- 4つの入稿の管理画面を開き、掲載中の部屋を1件ずつ確かめる
- 台帳で空室なのに載っていない部屋、載っているのに台帳で空室でない部屋に印を付ける
- 印の付いた部屋について、申込・契約の管理の仕組みと退去の受付の表を開いて原因を調べる
- 掲載を止めるもの、載せるもの、賃料などの条件を直すものに分け、各サイトの管理画面で直す
- 原因が分からないものは、店舗の担当に聞く
- 人週2回、募集担当が4つの入稿の管理画面から掲載中の一覧を出力し、決まったフォルダに置く
- 自動決まった時刻にワークフローが動き、台帳の空室と4つの一覧を読み込む
- 自動照合のノードが、部屋の番号で台帳と各一覧を突き合わせ、「台帳だけ」「一覧だけ」「条件が違う」を出す
- 自動食い違いのある部屋ごとに、エージェントが申込・契約・退去予定・広告の可否の記録を引いて原因を調べる
- 自動エージェントが対応の区分(掲載を止める/載せる/条件を直す/人が確かめる)と根拠と依頼の下書きを返す
- 人募集担当が Slack で区分と根拠を見て、承認すれば依頼が作業一覧に載る
- 人募集担当が各サイトの管理画面で掲載を直す
- 自動次の照合で、直したはずの部屋の食い違いが消えたかを確かめる
各工程の詳しい説明を読む
- 週に1回、募集担当が台帳から空室の一覧を出す
- 4つの入稿の管理画面を開き、掲載中の部屋を1件ずつ確かめる
- 台帳で空室なのに載っていない部屋、載っているのに台帳で空室でない部屋に印を付ける
- 印の付いた部屋について、申込・契約の管理の仕組みと退去の受付の表を開いて原因を調べる
- 掲載を止めるもの、載せるもの、賃料などの条件を直すものに分け、各サイトの管理画面で直す
- 原因が分からないものは、店舗の担当に聞く
(a)照合が週1回では間に合わない。 公正取引協議会連合会のおとり広告のガイドラインでは、インターネットの広告の情報の更新の期間を最長でも2週間とし、その間に契約済みと分かった物件は期間が来る前でもすみやかに削除することを徹底する必要があるとしています。週1回の照合では、月曜に成約した部屋の掲載が次の照合まで残ります。
(b)原因を調べる先が3か所ある。 「載っているのに台帳で空室でない」部屋は、成約して止め忘れたのか、申込のあと取り消されて台帳だけ戻し忘れたのか、どちらもありえます。どちらかで対応が逆になるので、申込・契約の記録と退去の受付の表を両方開くことになります。
(c)載せ漏れは誰も困らないように見える。 止め忘れは問い合わせが来て気づきますが、空いたのに載っていない部屋からは何の連絡も来ません。 気づくのは、オーナーから「まだ決まらないのか」と聞かれたときです。
(d)サイトごとに条件がずれる。 賃料の見直しを1つのサイトでだけ直し、残りが古い賃料のまま、ということが起きます。4か所の掲載を同じ目で見ないと、ずれに気づきません。
- 【人】 週2回、募集担当が4つの入稿の管理画面から掲載中の一覧を出力し、決まったフォルダに置く
- 【自動】 決まった時刻にワークフローが動き、台帳の空室と4つの一覧を読み込む
- 【自動】 照合のノードが、部屋の番号で台帳と各一覧を突き合わせ、「台帳だけ」「一覧だけ」「条件が違う」を出す
- 【自動】 食い違いのある部屋ごとに、エージェントが申込・契約・退去予定・広告の可否の記録を引いて原因を調べる
- 【自動】 エージェントが対応の区分(掲載を止める/載せる/条件を直す/人が確かめる)と根拠と依頼の下書きを返す
- 【人】 募集担当が Slack で区分と根拠を見て、承認すれば依頼が作業一覧に載る
- 【人】 募集担当が各サイトの管理画面で掲載を直す
- 【自動】 次の照合で、直したはずの部屋の食い違いが消えたかを確かめる
3番目と4番目を分けているのが、この設計の分かれ目です。 食い違いの有無はノードが決め、エージェントは食い違いの無い部屋には呼ばれません。 150戸の全部をエージェントに見させると、呼び出しが増えるだけでなく、食い違いの無い部屋に「念のため止める」と書く余地が生まれます。
8番目で、直したことを機械が確かめます。 担当が止めたつもりで別の部屋を止めていても、次の照合で同じ食い違いが出ます。2回続けて出た食い違いは、区分にかかわらず「人が確かめる」に上げます。
02今回想定するシステム構成
管理台帳 / 4つの掲載の一覧(入稿の管理画面から出力) ▼【トリガー】Schedule Trigger(火・金の朝) n8n ├──▶ 一覧の読み込みと部屋の番号のそろえ ▼ Compare Datasets ── 台帳だけ / 一覧だけ / 条件が違う ▼(食い違いのある部屋だけ) AI Agent(Claude:Anthropic Chat Model) │ ツール(Call n8n Workflow Tool) │ ① 部屋の状態 ② 申込・契約 ③ 退去予定 │ ④ 広告の可否 ⑤ 依頼の下書きの登録(人の承認つき) ▼ Structured Output Parser ── 区分・根拠・下書き ▼ 【人が確認】Slack で承認 → 作業一覧 ▼ 募集担当が各サイトの管理画面で直す
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| ワークフロー | n8n(Schedule Trigger、Compare Datasets、AI Agent、Call n8n Workflow Tool、Structured Output Parser) | Make、Zapier、Power Automate |
| 生成AI | Claude(n8n の Anthropic Chat Model ノード) | OpenAI API |
| 保管 | 共有フォルダ(掲載の一覧)、作業一覧と照合の記録(スプレッドシート) | PostgreSQL |
| 通知 | Slack(n8n の Slack ノード) | Microsoft Teams |
新しく足すのは n8n と、ツールに当たる小さなワークフロー5本です。 台帳と申込・契約の管理の仕組みには読みに行くだけで、書き込みません。
各サイトの公開ページを機械で巡回する形にはしません。 掲載の一覧は、担当が入稿の管理画面から出力したものを使います。出力できる項目と形式はサイトとの契約や管理画面の機能によるので、最初に4か所それぞれで確かめます。 公開ページを巡回すると、サイトの利用の条件に触れるおそれがあるうえ、画面の作りが変わるたびに読み取りが壊れます。
03どうやって実装するのか
処理の起点を決める
起点は Schedule Trigger です。 火曜と金曜の朝9時に動かします。週2回にするのは、成約から掲載の削除までを長くても数日に収めるためです。 ガイドラインの最長2週間は上限で、目標ではありません。
ワークフローのタイムゾーンを必ず設定します。 公式のページでは、ワークフローにタイムゾーンが無ければインスタンスのタイムゾーンを使い、自社で動かすインスタンスの既定は America/New York とされています。設定しないと、朝9時のつもりが夜に動きます。
Schedule Trigger は、ワークフローを保存して公開しないと動きません。 公式のページにそう書かれています。作って試しただけで止まっていた、ということが起きやすいので、公開の状態を最初に確かめます。
一覧の置き忘れに備えます。 動いた時点で4つの一覧のどれかが当日の日付でなければ、照合をせずに担当へ「一覧が古い」と知らせて止まります。 古い一覧で照合すると、すでに止めた掲載を「止め忘れ」と出します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 管理台帳 | 部屋の番号、物件名、部屋の状態(空室/申込/契約済み/退去予定)、賃料・管理費・敷金・礼金、状態を変えた日 | 管理台帳の出力 |
| 掲載の一覧 | サイトごとの掲載の番号、物件名、部屋、賃料などの条件、掲載の状態、更新日 | 4つの入稿の管理画面から出力 |
| 部屋の番号の対応表 | 台帳の部屋の番号と、各サイトの掲載の番号の対応 | 自社で用意する表 |
| 申込・契約の記録 | 申込日、申込の状態(審査中/取消)、契約日 | 申込・契約の管理の仕組み |
| 退去の受付 | 退去予定日、先行募集の可否 | 退去の受付の表 |
| 広告の可否 | オーナーが広告を承諾しているか、掲載してよいサイト | 物件の契約の情報 |
質を決めるのは、部屋の番号の対応表です。 各サイトの掲載の番号は台帳の部屋の番号と別で、物件名の書き方もサイトごとに違います(「〇〇ハイツ 201」「〇〇ハイツ201号室」)。物件名で突き合わせると、表記ゆれのたびに「台帳だけ」と「一覧だけ」が対で出ます。 掲載を入稿するときに、対応表へ1行足す決まりにします。
広告の可否を持たせるのは、載せ漏れの判定のためです。 オーナーが特定のサイトへの掲載を断っている部屋は、そのサイトに載っていなくて正しいからです。
データの取得方法を決める
照合は Compare Datasets ノードで行います。 入力 A に台帳の空室(と申込・退去予定)、入力 B にサイトごとの掲載の一覧をつなぎ、Fields to Match に部屋の番号を指定します。出力は4つの枝に分かれます。
| 枝 | 意味 | 次に何をするか |
|---|---|---|
| In A only | 台帳では募集中なのに、そのサイトに載っていない | エージェントへ(載せ漏れの候補) |
| In B only | そのサイトに載っているのに、台帳では募集中でない | エージェントへ(止め忘れの候補) |
| Different | 両方にあるが条件が違う | エージェントへ(条件のずれ) |
| Same | 一致 | 何もしない |
Fields to Skip Comparing に、更新日や掲載の番号のような比べる意味の無い項目を入れます。 入れないと、すべての部屋が Different に出ます。数字と文字の違いで食い違いを出さないよう、Fuzzy Compare をオンにします。 公式のページでは、オンのときだけ数値の3と文字列の"3"が一致するとされています。
1つの部屋が同じサイトに2件載っている(重複の掲載)は、Multiple Matches の既定の「Include All Matches」のまま拾います。 重複は、それ自体を担当に知らせる対象です。
照合はサイトごとに4回行います。 台帳1つに対して一覧を4つまとめてつなぐと、どのサイトの食い違いかが分からなくなるからです。同じ部屋が4つのサイトすべてで In B only に出たら、台帳の側の更新が先に進んだ(成約した)可能性が高い、という手がかりにもなります。 この「何サイトで出たか」の数は、エージェントに渡す diff_detail に入れます。
先行募集の部屋は、退去予定日と先行募集の可否で入力 A に入れるかを決めます。 退去の受付の表で先行募集が「不可」の部屋は、退去予定でも入力 A に入れません。入れてしまうと、オーナーが退去後の内装の工事を終えてから募集したいと言っている部屋を、載せ漏れとして毎回出します。
エージェントのツールは、Call n8n Workflow Tool で小さなワークフローを呼ぶ形にします。 部屋の状態、申込・契約、退去予定、広告の可否、依頼の下書きの登録の5本で、どれも部屋の番号を1つ受け取って決まった項目だけを返します。 申込・契約の仕組みの全部をエージェントに渡しません。
AIへ渡す前に整形する
- 一覧の日付の確認 … 4つの一覧が当日に出力されたものかを確かめます。古ければ止まります
- 部屋の番号のそろえ … 対応表で各サイトの掲載の番号を台帳の部屋の番号に置き換えます。対応表に無い掲載は「対応表に無い」として別に出します
- 金額のそろえ … 「6.5万円」「65,000円」「65000」を円の整数にそろえます
- 台帳の状態の絞り込み … 入力 A に入れるのは、空室と、先行募集ができる退去予定だけにします
- 件数の上限の確認 … 食い違いが普段の数倍あれば、一覧の出力の誤りを疑い、エージェントに回す前に担当へ知らせます
2番目で対応表に無い掲載を別に出すのは、それが最も危ない掲載だからです。 台帳とつながっていない掲載は、誰も止めない掲載です。 過去の担当が入れたまま、管理を外れた部屋が載り続けていることがあります。
5番目は、エージェントの暴走ではなく、入力の誤りを止めるためです。 あるサイトの一覧が途中で切れて出力されると、そのサイトの全部屋が「載っていない」と出ます。100件の誤った食い違いをエージェントに調べさせる前に止めます。
AIに処理させる
させるのは、食い違いのある部屋1つごとに、ツールで記録を引いて原因を確かめ、対応の区分と根拠を返すことです。
| 食い違い | エージェントが引く記録 | 主な区分 |
|---|---|---|
| 載っているのに募集中でない | 申込・契約、部屋の状態を変えた日 | 掲載を止める/人が確かめる(申込の取消で台帳の戻し忘れ) |
| 募集中なのに載っていない | 広告の可否、退去予定、部屋の状態を変えた日 | 載せる/載せなくて正しい(広告不可) |
| 条件が違う | 部屋の状態(台帳の条件と変えた日) | 条件を直す |
| 対応表に無い | 部屋の状態 | 人が確かめる |
エージェントにするのは、食い違いの種類ごとに引くべき記録が違い、引いた結果でさらに引く先が変わるからです。 「載っているのに募集中でない」部屋で申込の記録が取消になっていれば、台帳の戻し忘れを疑って部屋の状態を変えた日を引きます。この分かれを固定の枝で全部書くと、枝が組み合わせの数だけ増えます。
| させないこと | 理由 |
|---|---|
| 掲載を止める・載せる操作 | 各サイトの管理画面で担当が行う |
| 台帳を直すこと | 台帳の持ち主は事務。ずれは人に返す |
| おとり広告に当たるかの判断 | 協議会の規約の判断で、事業者の責任者が行う |
| 賃料を決めること | 条件のずれは台帳の値に合わせるだけ |
| 記録に無い事情を推し量ること | 「おそらく成約した」と書かせない |
指示内容を固定する
AI Agent ノードの System Message に次の文を入れます。
あなたは賃貸管理会社の募集担当の補助で、空室の募集の掲載と
管理台帳の食い違いの原因を調べる立場です。
渡された1つの部屋の食い違いについて、ツールで記録を引いて確かめ、
決まった形で返してください。
【使えるツール】
- get_unit_status:部屋の状態、条件、状態を変えた日
- get_application:申込・契約の記録(申込日、状態、契約日)
- get_moveout:退去予定日と先行募集の可否
- get_ad_permission:広告の承諾と、掲載してよいサイト
- register_request:対応の依頼の下書きを作業一覧に登録する(人の承認が要る)
【区分】
- stop_listing ... 掲載を止める
- add_listing .... 載せる
- fix_terms ...... 条件を台帳に合わせて直す
- no_action ...... 食い違いに正当な理由がある(広告不可など)
- needs_human .... 記録どうしが食い違う、または記録が足りない
【厳守事項】
- 区分の根拠には、ツールが返した記録の項目と値をそのまま書いてください。
- 記録に無いことを推測しないでください。「おそらく成約」「たぶん空室」と
書かず、記録が足りなければ needs_human にしてください。
- 申込が取消になっているのに台帳が「申込」のままなど、記録どうしが
食い違うときは、どちらが正しいかを決めずに needs_human にしてください。
- 条件のずれは、台帳の値を正としてください。賃料を提案しないでください。
- 表示が規約に違反するかどうかを書かないでください。
- register_request は、区分が stop_listing・add_listing・fix_terms の
ときだけ、1つの部屋につき1回だけ呼んでください。
- 同じツールを同じ引数で2回呼ばないでください。
【部屋の番号】{unit_id}
【サイト】{site}
【食い違いの種類】{diff_type}
【照合で出た値】{diff_detail}
「記録どうしが食い違うときは決めない」をいちばん強く書きます。 申込が取消なのに台帳が「申込」のままの部屋は、台帳の戻し忘れかもしれないし、取消の記録の誤りかもしれません。 エージェントがどちらかに決めると、空いていない部屋を載せるか、空いている部屋を載せないかのどちらかが起きます。
「同じツールを2回呼ばない」は、繰り返しの上限のためです。 公式のページでは、Max Iterations の既定は10です。記録が見つからないとき、エージェントは同じツールを呼び直して上限に当たることがあります。
出力形式を固定する
Require Specific Output Format をオンにして Structured Output Parser をつなぎ、次の形で受け取ります。
{
"unit_id": "H0123-201",
"site": "site_b",
"diff_type": "listed_not_vacant",
"action": "stop_listing | add_listing | fix_terms | no_action | needs_human",
"evidence": [
{ "tool": "get_application", "field": "contract_date", "value": "2026-10-24" }
],
"request_draft": "サイトBの掲載(H0123-201)を停止してください。10/24に契約済み。",
"notes_for_staff": ""
}
1つ目の理由は、evidence にツールの名前と項目と値を並べられることです。 担当は Slack の通知で「どの記録の、どの値を見て、止めると言っているのか」を読めます。根拠の無い区分は、この形では返せません。
2つ目は、action が5つに決まっていることです。 承認のあとの流れは action で分かれ、no_action は作業一覧に載らず、照合の記録にだけ残ります。
スキーマは $ref を使わずに書きます。 公式のページでは、Structured Output Parser の JSON Schema で参照($ref)を使えないとされています。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 共有フォルダ | 読み取り | 4つの掲載の一覧と台帳の出力 |
| 照合 | Compare Datasets | 食い違いを4つの枝に分ける |
| Claude | AI Agent + Anthropic Chat Model | 原因の調べと区分 |
| 記録の引き当て | Call n8n Workflow Tool(4本) | 部屋の状態・申込・退去・広告の可否 |
| 作業一覧 | Call n8n Workflow Tool(人の承認つき) | 依頼の下書きを登録する |
| Slack | Send and Wait for Response(Approval) | 区分と根拠の承認 |
依頼の下書きの登録のツールには、人の承認を挟みます。 公式のページでは、AI Agent のツールのうち承認の要るものを Human review の段階につなぐと、エージェントがそのツールを使おうとした時点でワークフローが止まり、選んだ経路で承認の依頼が送られ、承認すればツールが動き、却下すれば取りやめになるとされています。経路に Slack を選び、募集担当が承認します。
呼ぶ側のワークフローを公開していると、呼ばれる側も公開が要ります。 公式のページでは、本番で動くエージェントから呼ぶ小さなワークフローが公開されていないと「Workflow is not active and cannot be executed」で失敗し、その文がツールの結果としてエージェントに渡るとされています。エージェントはそれを記録として読もうとするので、5本とも公開の状態を確かめます。
人が確認する
- Slack の承認の通知で、区分と根拠を読む …
evidenceの値が記録と合っているかを見ます needs_humanを先に見る … 記録どうしの食い違いは、店舗の担当と事務に確かめて台帳を直します- 承認したら各サイトの管理画面で直す … 掲載を止める・載せるのは担当の手です
- 却下したら理由を残す … どの区分を、なぜ却下したかを記録します
stop_listing は当日中に直します。 成約した部屋の掲載を止めるのが、この構成のいちばんの目的だからです。add_listing と fix_terms は、写真と図面がそろっているかを見てからでよいとします。
承認の通知は、部屋ごとではなくサイトごとにまとめます。 1つの照合で20件の通知が別々に届くと、担当は上から順に承認ボタンを押すだけになります。サイトごとに stop_listing を先頭に並べた1通にし、evidence の値を見比べやすい表にします。
目標は、600件をならして1件1分です。 食い違いの無い部屋は担当が見る必要が無く、見るのは通知が来た部屋だけです。
例外に対処する
| 起きること | 対応 |
|---|---|
| 一覧が当日の出力でない | 照合をせずに担当へ知らせて止まる |
| 一覧が途中で切れている | 食い違いが普段の数倍なら止まって知らせる |
| 対応表に無い掲載 | 「対応表に無い」として人へ。エージェントに推測させない |
| ツールの結果が空 | 記録が無いとして needs_human |
| 呼ぶワークフローが非公開 | エラーの文が結果として返る。その文を含む結果は needs_human に倒す |
| Max Iterations に当たる | 途中の結果を捨て、needs_human で人へ |
| 同じ食い違いが2回続けて出る | 区分にかかわらず needs_human に上げる |
| 承認が付かないまま次の照合 | 同じ部屋の通知をまとめ直し、古い通知は閉じる |
5行目と6行目は、エージェントの失敗を正常な結果に見せないための行です。 どちらもエージェントは何かしらの文を返すので、形の上では区分が付いて見えます。 Code ノードで結果の文と繰り返しの回数を見て、当たれば区分を上書きします。
記録を残す
- 照合に使った4つの一覧と台帳の出力(日付つき)
- Compare Datasets の4つの枝の結果
- 部屋ごとのエージェントの結果(区分、
evidence、下書き)と、呼んだツールの順序(Return Intermediate Steps をオンにして残す) - Slack での承認・却下と、答えた人、時刻
- 各サイトの管理画面で直した日時(担当が作業一覧に付ける)
- 成約日から掲載を止めた日までの日数
最後の行が、この構成の成績表です。 成約から削除までの日数が、照合の回数を増やしたことでどれだけ縮んだかを、月ごとに見ます。ガイドラインの2週間に近い部屋が出ていれば、どこで止まっているかを調べます。
04実装レベルの3段階
半自動化で、1件6分が3分程度になります。 4つの管理画面を開いて見比べる作業はなくなりますが、食い違いごとに3か所の記録を開いて原因を調べる作業が残ります。 本格構成で1分になり、この段階が本記事の想定です。 半自動化を1か月回してから進みます。 照合だけを回すと、対応表の抜けと表記ゆれが先に出てきます。 そこを直さずにエージェントをつなぐと、表記ゆれの食い違いを1件ずつエージェントが調べることになります。
05工数削減シミュレーション
導入後 600件 × 1分 ÷ 60 = 10 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 数千戸の賃貸住宅を管理し、空室の募集を複数の不動産情報サイトと自社サイトに同時に出している管理会社。申込・契約・退去予定の記録が管理台帳と別の仕組みに分かれていて、成約した部屋の掲載の止め忘れや、空いた部屋の載せ漏れが起きている場合。各サイトの入稿の管理画面から掲載中の一覧を出力できる場合。
- 管理戸数が数百戸で、空室が常に数件にとどまる場合。掲載を1つのサイトの入稿の仕組みにまとめていて、台帳の変更が自動で各サイトに反映される場合。各サイトの掲載中の一覧を出力する手段が無い場合。なお、表示が公正競争規約に違反するかの判断は、この構成では代替できません。
07最小構成で試す方法
- 先月の照合で印を付けた食い違いから20件を選ぶ(止め忘れ・載せ漏れ・条件のずれ・台帳の戻し忘れを混ぜる)
- その20件について、当時どの記録を見て、どう対応したかを書き出す
- 部屋ごとに、台帳・申込と契約・退去予定・広告の可否の記録の写しを作り、個人の名前を消す
- 手元のAIサービスの画面に、食い違いの種類と記録の写しを1件ずつ貼り付ける
- 「この部屋の掲載を、止める/載せる/条件を直す/何もしない/人が確かめる のどれにするかを、記録の値を根拠に答えてください。記録が足りないか、記録どうしが食い違うときは、人が確かめるとしてください」と指示する
- 出てきた区分を、当時の対応と比べる
20件は必ずやってください。 エージェントを組む前に、「記録がそろっていれば区分が付くのか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 当時の対応と同じ区分が出た | 対応表とツールのワークフローの準備に進む |
| 記録が足りないのに区分を決めた | 指示の書き方で直る。構成は有効 |
| 当時の担当も記録だけでは決められなかった | 記録の付け方を直すのが先。 AIの問題ではない |
3行目が多ければ、申込の取消と台帳の戻しの手順が決まっていないということです。 エージェントより先に、その手順を決めます。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 表記ゆれで「台帳だけ」と「一覧だけ」が対で出る | 部屋の番号の対応表で突き合わせる。 物件名で突き合わせない |
| すべての部屋が Different に出る | 更新日などを Fields to Skip Comparing に入れる |
| 数字と文字の違いで食い違いが出る | Fuzzy Compare をオンにする |
| 朝9時のつもりが夜に動く | ワークフローのタイムゾーンを設定する。自社のインスタンスの既定は America/New York |
| 作ったのに動かない | Schedule Trigger は保存して公開しないと動かない |
| 呼んだツールのエラーの文を記録として読む | 呼ばれるワークフローを公開する。エラーの文は needs_human に倒す |
| 繰り返しの上限に当たる | 同じツールを同じ引数で呼ばないと指示し、上限に当たったら人へ |
| 記録どうしの食い違いをエージェントが決める | 決めずに needs_human と指示に書く |
| 古い一覧で照合して止めた掲載を止め忘れと出す | 一覧の日付を確かめて、古ければ止まる |
上の2行が、この構成の失敗のほとんどです。 照合の段階で誤った食い違いが出ると、エージェントはそれを本物として調べ、もっともらしい根拠を付けて返してきます。 エージェントの質より、照合に入れる前の部屋の番号のそろえ方で決まります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 部屋の番号と条件、申込と契約の日付と状態、退去予定日、オーナーの広告の承諾です。申込者・入居者の名前や連絡先は扱いません。
- ツールが返す項目を絞る … 申込・契約の記録からは、日付と状態だけを返します。申込者の名前・勤務先・年収などは、ツールのワークフローの側で落とします
- エージェントに書き込みの手段を持たせない … 台帳も各サイトも読み取りだけで、書き込みは人の承認を挟んだ作業一覧への登録だけです
- この構成は規約の判断を代替しません … 公正取引協議会連合会のガイドラインでは、成約済みの物件の表示は「実際には取引の対象となり得ない物件」の例とされ、インターネットの広告も表示に当たるとされています。表示が規約に違反するかの判断と社内の是正は、事業者の責任者が行います
- 責任者の確認を残す … 同じガイドラインは、おとり広告となった事案の原因として、管理をアルバイト等に任せきりにして責任者の確認を怠っていたことを挙げています。エージェントに任せきりにせず、成約から削除までの日数を責任者が月ごとに見ます
- オーナーの情報を外へ出さない … 広告の承諾の有無は、オーナーとの契約の内容です
誤りが起きた場合のリスクは、成約した部屋の掲載が残ることと、空いた部屋が載らないことの2つです。 前者は照合が遅れるかエージェントが記録の食い違いを決めつけると起き、後者は広告の可否の記録が古いと起きます。どちらも記録の付け方の問題なので、手順を決めてから自動化します。
10まず何から始めるか
1週目:部屋の番号の対応表を作る
4つのサイトの掲載の一覧を出力し、台帳の部屋の番号と各サイトの掲載の番号の対応表を作ります。 対応の付かない掲載が見つかったら、それが最初の止め忘れの候補です。あわせて、各サイトの管理画面で出力できる項目と形式を確かめます。
2週目:20件で試す
先月の食い違いから20件を選び、手元のAIサービスで区分させます。記録が足りないときに needs_human にできているかを最優先で見ます。
3週目:照合だけを回す
n8n で一覧の読み込みと Compare Datasets までを作り、食い違いの一覧を担当に渡すだけにします。 表記ゆれと対応表の抜けをここで直します。
4週目:ツールのワークフローを作る
部屋の状態・申込と契約・退去予定・広告の可否の4本を作り、部屋の番号を渡して決まった項目だけが返るかを1本ずつ確かめます。 公開の状態も確かめます。
2か月目: エージェントをつなぎ、依頼の下書きの登録に Slack の承認を挟みます。3か月目以降: 照合を週2回にし、成約から削除までの日数を月ごとに数えます。その日数が安定して数日に収まった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 表示規約第21条のおとり広告の3類型。成約済みの不動産が「実際には取引の対象となり得ない」場合の例であること。インターネットの広告も表示に当たること。更新の期間を最長でも2週間とし、契約済みと分かった物件はすみやかに削除すること。管理をアルバイト等に任せきりにし責任者の確認を怠っていたことが発生原因に挙げられていること | 不動産公正取引協議会連合会: おとり広告ガイドライン | 2026-10-28 |
| AI Agent の Max Iterations の既定が10であること。Require Specific Output Format で Structured Output Parser をつなげること。Return Intermediate Steps。承認の要るツールを Human review につなぐと、使う時点で止まって承認の依頼が送られ、承認で動き却下で取りやめになること | n8n Docs: Tools Agent | 2026-10-28 |
| Call n8n Workflow Tool の Description と Workflow Inputs。本番で呼ぶワークフローが公開されていないと「Workflow is not active and cannot be executed」で失敗し、その文がツールの結果としてエージェントに渡ること | n8n Docs: Call n8n Workflow Tool | 2026-10-28 |
Structured Output Parser の JSON Schema で $ref を使えないこと | n8n Docs: Structured Output Parser | 2026-10-28 |
| Compare Datasets の Fields to Match、4つの出力の枝、Fuzzy Compare、Fields to Skip Comparing、Multiple Matches の既定 | n8n Docs: Compare Datasets | 2026-10-28 |
| Schedule Trigger はワークフローを保存して公開しないと動かないこと。タイムゾーンの扱いと、自社で動かすインスタンスの既定が America/New York であること | n8n Docs: Schedule Trigger | 2026-10-28 |
| Anthropic Chat Model のノードで Claude を使えること | n8n Docs: Anthropic Chat Model | 2026-10-28 |
| Slack の Send and Wait for Response の Approval、Capture Who Responded | n8n Docs: Slack の承認 | 2026-10-28 |
表示が規約に違反するかの判断は、所属する公正取引協議会の規約と運用基準に照らして事業者の責任者が行ってください。 各サイトの入稿の管理画面で出力できる項目は、本記事では確かめていません。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-2207)についてのご相談はこちらから。
