Media > AI活用ユースケース > 営業 > 毎日の新着物件を登録客の希望条件と照らして合う人を判定し、物件ごとの案内文を下書きして担当の確認に回す

毎日の新着物件を登録客の希望条件と照らして合う人を判定し、物件ごとの案内文を下書きして担当の確認に回す

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

売買仲介の会社で、その日に入った新着物件を、購入希望の登録客の希望条件と照らします。合う人を物件ごとに判定し、案内文の下書きを付けて担当の確認に回します。

サマリー
生成AI
ChatGPT/Claude/Gemini
連携・自動化
Make/n8n/Zapier
対象業界
その他/不動産
対象部門
営業
対象業務
書類作成/比較検討
主な課題
判断に時間がかかる/営業フォローが追いつかない/属人化している
AIで行う処理
判定
主な効果
対応スピード向上/工数削減/機会損失防止
導入難易度
★★★☆☆
実装レベル
半自動化
費用感
ノーコード連携(中)
人間の確認
条件付き
現在工数
100h/月
AI導入後
25h/月
想定削減
75%
年間削減
900h
モデル条件による試算値です。実在企業の実績ではありません。

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

導入前(Before)
  1. 朝、物件管理システムに新着物件が登録される
  2. 担当がそれぞれ、新着物件の一覧を開いて自分の担当エリアのものを見る
  3. 1件ずつ、登録客台帳をエリアと予算で絞り込む
  4. 絞り込んだ十数人の「その他の希望」を読み、物件の資料と見比べて、案内する人を決める
  5. 案内する人ごとに、物件の特徴と希望に合う点を書いた案内文をメールで書く
  6. 物件がまだ売りに出ているかを元の業者に確かめてから送る
  7. 送った相手を台帳のメモ欄に書く
導入後(After)
  1. 人朝、物件管理システムから新着物件のCSVを書き出し、共有のスプレッドシートに貼る(いまの登録作業の続き)
  2. 自動平日の11時に n8n のワークフローが動き、未処理の新着物件と、案内を希望している登録客を読む
  3. 自動Code ノードが、エリア・予算・面積・間取り・築年数で、物件ごとに候補の客を絞る
  4. 自動候補の客の自由記述の希望を条件に分け、物件の情報に合うかを1条件ずつAIが判定する
  5. 自動判定の結果から、`match` / `check` / `no_match` を規則で決める
  6. 自動`match` と `check` の客について、案内文の下書きを作る
  7. 自動物件ごとの結果を案内候補シートに書き、担当へ承認依頼のメールを送る
  8. 人担当が候補の客と判定の理由を確かめ、`check` の客は物件の側の情報を確かめる
  9. 人担当が承認すると、客ごとの案内文が Gmail の下書きとして作られる
  10. 人担当が物件がまだ売りに出ているかを確かめ、下書きを直して送る
各工程の詳しい説明を読む
  1. 朝、物件管理システムに新着物件が登録される
  2. 担当がそれぞれ、新着物件の一覧を開いて自分の担当エリアのものを見る
  3. 1件ずつ、登録客台帳をエリアと予算で絞り込む
  4. 絞り込んだ十数人の「その他の希望」を読み、物件の資料と見比べて、案内する人を決める
  5. 案内する人ごとに、物件の特徴と希望に合う点を書いた案内文をメールで書く
  6. 物件がまだ売りに出ているかを元の業者に確かめてから送る
  7. 送った相手を台帳のメモ欄に書く

(a)案内が翌日に回る。 1件20分で15件なら、担当6人で分けても1人50分です。来店や内見の同行がある日は、新着の案内が翌朝に回ります。

(b)自由記述の希望が読み切れない。 3番の絞り込みは表のフィルタで済みますが、4番は1人ずつ文章を読む作業です。「1階は避けたい」「坂が多い地域は困る」のような条件は、急いでいるときほど読み落とします。 読み落とした客に案内すると、内見で断られます。

(c)案内する相手が担当の記憶で決まる。 自分の客の希望は覚えていても、他の担当の客は台帳を読むまで分かりません。

(d)分からない条件は聞かれないまま落ちる。 物件の資料に学区やペットの可否が書かれていないと、担当は確かめる手間を惜しんでその客を外します。 確かめれば合っていた客が、どれだけいたかは記録に残りません。

  1. 【人】 朝、物件管理システムから新着物件のCSVを書き出し、共有のスプレッドシートに貼る(いまの登録作業の続き)
  2. 【自動】 平日の11時に n8n のワークフローが動き、未処理の新着物件と、案内を希望している登録客を読む
  3. 【自動】 Code ノードが、エリア・予算・面積・間取り・築年数で、物件ごとに候補の客を絞る
  4. 【自動】 候補の客の自由記述の希望を条件に分け、物件の情報に合うかを1条件ずつAIが判定する
  5. 【自動】 判定の結果から、match / check / no_match を規則で決める
  6. 【自動】 match と check の客について、案内文の下書きを作る
  7. 【自動】 物件ごとの結果を案内候補シートに書き、担当へ承認依頼のメールを送る
  8. 【人】 担当が候補の客と判定の理由を確かめ、check の客は物件の側の情報を確かめる
  9. 【人】 担当が承認すると、客ごとの案内文が Gmail の下書きとして作られる
  10. 【人】 担当が物件がまだ売りに出ているかを確かめ、下書きを直して送る

8番が、この設計の分かれ目です。 AIが出すのは、条件ごとの判定と、その根拠にした物件の情報までです。誰に案内するかを決めるのは担当です。 ローンの事前審査の状況や、前回の内見で口にしていた本音のように、台帳に書かれていないことを知っているのは担当だからです。

5番を規則で決めているのも意図してのことです。 条件ごとの合う・合わない・分からないはAIが付けますが、「どの条件が1つでも合わなければ外すか」は、客が必須とした条件かどうかで決まります。 その区別は台帳の側に持たせ、規則で読みます。

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

構成図
物件管理システム ── 毎朝CSVを書き出す
   ▼(人がスプレッドシートに貼る)
Google スプレッドシート
   ├── 新着物件シート(処理状態の列つき)
   ├── 登録客台帳(希望条件・必須の印・配信の可否)
   └── 案内候補シート(判定と下書きの書き出し先)
   ▼【トリガー】平日11時
n8n
   ├── Google Sheets ノード ── 未処理の物件と配信可の客を読む
   ├── Code ノード ── 表の条件で物件ごとに候補を絞る
   ├── Basic LLM Chain + Anthropic Chat Model
   │      + Structured Output Parser
   │      ── 自由記述の希望を1条件ずつ判定し、案内文を下書き
   ├── Code ノード ── match / check / no_match を規則で決める
   ├── Google Sheets ノード ── 案内候補シートへ書く
   └── Gmail ノード ── 担当へ承認依頼(Send and Wait for Approval)
          ▼ 承認
       Gmail ノード ── 客ごとの下書きを作る(Drafts の create)
   ▼
【担当が物件の確認をして送る】
役割想定する製品代替候補
ワークフローn8nMake、Zapier
処理エンジンn8n の Code ノード(JavaScript。表の条件での絞り込みと最終の振り分け)Make の関数と条件分岐
生成AIClaude API(n8n の Anthropic Chat Model ノード)OpenAI API、Gemini API
保管Google スプレッドシート(新着物件・登録客台帳・案内候補)Microsoft SharePoint のリスト
メールGmailMicrosoft Outlook

新しく足すのは、n8n のワークフローと、登録客台帳の2つの列だけです。 客が「これだけは外せない」と言った希望に付ける必須の印と、配信の可否です。物件管理システムには書き込みません。

Code ノードは JavaScript と Python で書けます。 公式のページでは、Code ノードからはファイルの読み書きや HTTP のリクエストはできません。この構成の Code ノードは読み込んだ行を比べるだけなので、その制限には当たりません。n8n Cloud では外部の npm モジュールを読み込めないため、標準の JavaScript だけで書きます。

AIを呼ぶのは Basic LLM Chain ノードです。 「Require Specific Output Format」を有効にすると出力パーサーをつなぐよう求められ、その1つが Structured Output Parser です。判定を決まった形の JSON で受け取り、後段で規則にかけるために使います。

担当への確認は、Gmail ノードの「Send and Wait for Approval」で行います。 メールを送り、受け取った人の承認を待ってから続ける操作で、承認の種類は「Approve Only」(既定)と「Approve and Disapprove」です。複雑な承認には Wait ノードを使うよう案内されています。

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

Step1

処理の起点を決める

平日の11時に1回動かします。 n8n の Schedule Trigger ノードで「Weeks」の間隔を選び、月曜から金曜を指定して11時0分にします。朝の登録が終わり、昼の休みの前に担当が承認できる時刻です。 午後に入る新着のために、16時のルールを足して1日2回にすることもできます。公式のページでは、1つのノードに複数のトリガーのルールを足せるとされています。

時刻の基準を最初に直します。 公式のページでは、Schedule Trigger はワークフローのタイムゾーン、それが無ければインスタンスのタイムゾーンに従い、自分でサーバーを立てた場合の既定は America/New York です。ワークフローの設定で Asia/Tokyo を選ばないと、11時のつもりが夜中に動きます。

ワークフローは公開しておく必要があります。 公式のページでは、Schedule Trigger を使うワークフローは保存して公開するよう書かれています。作って試しただけで公開していないと、翌朝何も動きません。

新着物件の行には処理状態の列を持たせます。 読むのは「未処理」の行だけで、処理が終わったら「処理済み」に書き換えます。書き換えるのは、案内候補シートへの書き込みまで成功したときだけにします。 途中で止まったものは、次の回にもう一度読まれます。

Step2

入力データを集める

データ中身取得元
新着物件物件番号、所在地、価格、面積、間取り、築年、階数、向き、駐車場、管理規約の要点(ペット・楽器)、最寄り駅と徒歩分数、学区、備考新着物件シート
登録客客番号、担当、エリア(複数)、予算の上限、面積の下限、間取り、築年数の上限、その他の希望(自由記述)、必須の印、配信の可否、最終の案内日登録客台帳
過去の案内客番号ごとに、案内した物件番号と日付案内候補シート
担当の一覧担当の名前とメールアドレス担当シート

質を決めるのは、物件の側の「書かれていること」の量です。 向き・学区・管理規約の要点が空欄の物件では、自由記述の希望のほとんどが「分からない」になります。AIの判定を良くするより、物件の登録のときにこの3つの欄を埋めるほうが効きます。

過去の案内を渡すのは、同じ物件を二度送らないためです。 価格を下げて再び新着に出た物件では、前に案内した客に「価格が変わりました」と書くか、送らないかを担当が決めます。

Step3

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

取るものノード設定
未処理の新着物件Google Sheets(Get Row(s))処理状態が「未処理」の行
案内する対象の客Google Sheets(Get Row(s))配信の可否が「可」で、状態が「探索中」の行
過去の案内Google Sheets(Get Row(s))直近90日の行
担当の一覧Google Sheets(Get Row(s))全行

Google Sheets ノードの操作は、公式のページでは「Get Row(s)」「Append Row」「Update Row」「Append or Update Row」などです。 この構成では、読むのに Get Row(s)、案内候補の書き出しに Append Row、処理状態の書き換えに Update Row を使います。ノードに無い操作が要るときは、Google Sheets の認証情報を使って HTTP Request ノードで API を呼べるとされています。

物件管理システムには直接つなぎません。 毎朝のCSVをスプレッドシートに貼る作業は、いまの登録の流れに1つ手順を足すだけです。システムのAPIに手を入れるより、最初はこのほうが早く動きます。

Step4

AIへ渡す前に整形する

  1. 表の条件で絞る … Code ノードで、物件ごとに客を絞ります。エリアは市区町村か沿線の駅で照らし、予算は上限の5%までの超過を残します。 価格交渉で届く物件を最初から落とさないためです
  2. 面積・間取り・築年数 … 面積は下限の95%まで、間取りは「3LDK以上」のような書き方をそろえて比べ、築年数は上限ちょうどまでを残します
  3. 候補の数を抑える … 1物件あたりの候補は最大15人にします。超えるときは、最終の案内日が古い客から順に残します
  4. 案内済みを外す … 同じ物件を案内済みの客は外し、価格が変わった物件だけは「再案内」の印を付けて残します
  5. 自由記述の希望を整える … 改行や「・」で区切られた希望を、そのまま1つの文字列で渡します。区切り直しはAIにさせ、その結果を出力に書かせます
  6. 個人を特定する情報を外す … AIに渡すのは客番号と希望条件だけです。名前、電話番号、メールアドレス、勤務先、年収は渡しません
  7. 物件の情報を1つの文字列にまとめる … 欄の名前と値の組で並べ、空欄の欄は「記載なし」と書きます

5%と95%の幅は、自社で決める数字です。 狭くすると交渉の余地のある物件が落ち、広くするとAIに渡す人数が増えます。最初の1か月は、担当が「この客にも送りたかった」と書いた件数を見て調整します。

7番の「記載なし」は、AIが「分からない」と判定するための材料です。 空欄のまま渡すと、欄そのものが無かったように扱われます。

Step5

AIに処理させる

させるのは、客ごとに自由記述の希望を条件に分け、物件の情報に合うかを1条件ずつ判定し、根拠にした物件の欄を書き出すことです。 そのうえで、合う客への案内文を下書きします。

条件の例判定の仕方判断できないときの扱い
「南向き」「日当たりがよい」物件の向きの欄と備考向きが記載なしなら unknown
「小学校まで徒歩10分以内」学区の欄と備考の徒歩分数学区だけで距離が無ければ unknown
「大型犬が飼える」管理規約の要点のペットの欄「ペット可」だけで大きさの定めが無ければ unknown
「1階は避けたい」階数の欄戸建なら条件に当たらないので not_applicable
「駐車場2台」駐車場の欄と備考台数の記載が無ければ unknown
「坂が少ない地域」物件の情報からは判断できないunknown。地図から推測しない

右端の列が、この構成でいちばん大事な区別です。 fail は物件の情報に希望と反する事実が書かれているということ、unknown はその事実が書かれていないということです。前者は案内しない理由、後者は担当が確かめる事項です。

させないこと理由
誰に案内するかの決定客の事情を知っているのは担当。AIは判定まで
物件の情報に無いことの推測「この地域なら坂は少ないはず」と書かせない
価格交渉の見込み売主の事情は物件の情報に無い
ローンが通るかの判断年収を渡していない。渡さない
物件の良い点の誇張案内文に書けるのは物件の情報にある事実だけ

2行目がいちばん起きやすい失敗です。 生成AIは地名から一般的な知識で答えを作れてしまい、「閑静な住宅街です」「坂は少ない地域です」と書きます。 物件の情報に無いことは、合っていても unknown にさせます。

Step6

指示内容を固定する

あなたは不動産の売買仲介の担当を補助する立場です。
新着物件の情報と、購入希望の客の希望条件を照らして、
条件ごとに合うかを判定し、合う客への案内文を下書きしてください。

【判定の手順】
1. 客の「その他の希望」を、条件1つずつに分けてください。
   分けた条件は、客が書いた言葉のまま condition に写してください。
2. 条件ごとに、物件の情報のどの欄が根拠になるかを探してください。
3. 次のどれかを result に入れてください。
   - pass ............ 物件の情報に、条件を満たす事実が書かれている
   - fail ............ 物件の情報に、条件と反する事実が書かれている
   - unknown ......... 判断に要る事実が物件の情報に書かれていない
   - not_applicable .. この物件の種類には当たらない条件(戸建に階数の条件など)
4. evidence には、根拠にした欄の名前と値をそのまま写してください。

【厳守事項】
- 物件の情報に書かれていないことを、地名や一般的な知識から推測しないでください。
  「記載なし」の欄に関わる条件は unknown です。
- 迷ったときに pass を選ばないでください。
- 「ペット可」とだけ書かれ、大きさや種類の定めが分からないときは、
  大きさや種類を条件にした希望を unknown にしてください。
- 誰に案内すべきか、案内すべきでないかは書かないでください。
- 価格交渉の見込み、ローン、客の資金については書かないでください。

【案内文の下書き】
- result に fail が1つも無い客についてだけ書いてください。
- 本文は200字以内。冒頭の宛名と末尾の署名は書かないでください。
- 客の希望の言葉を1つ以上引き、それに当たる物件の事実を続けて書いてください。
- 物件の情報に無い長所を書かないでください。「人気」「おすすめ」「閑静」などの
  評価の言葉を使わないでください。
- unknown の条件があるときは、「〇〇については確認のうえご連絡します」と書き、
  合うとは書かないでください。
- 価格を書くときは、物件の情報の価格の欄をそのまま写してください。

【物件の情報】{listing}
【候補の客(客番号と希望条件)】{candidates}

「迷ったときに pass を選ばない」を明記しないと、合う方に寄ります。 自由記述の希望はあいまいな書き方が多く、何も言わなければ好意的に読みます。pass が増えると、担当の確認が形だけになります。

案内文の禁止語を並べているのは、案内文が広告に近い文書だからです。 1人の客に向けたメールでも、事実と違う長所を書けば客の信頼を失います。物件の情報に無い言葉が出てきたら、それは下書きの誤りです。

Step7

出力形式を固定する

Structured Output Parser に、次の形の JSON の例を渡して受け取ります。

{
  "listing_id": "",
  "clients": [
    {
      "client_id": "",
      "checks": [
        { "condition": "", "result": "pass | fail | unknown | not_applicable",
          "evidence": "" }
      ],
      "unknown_items": [""],
      "draft": ""
    }
  ]
}

1つ目の理由は、判定と結論を別の層に置けることです。 checks はAIが埋め、match / check / no_match は後段の Code ノードが規則で決めます。

振り分け条件
no_match必須の印が付いた条件に fail が1つでもある
check必須の条件に unknown がある、または必須でない条件に fail がある
match必須の条件がすべて pass か not_applicable で、fail が無い

必須の印は台帳の側にあり、AIには渡していません。 AIは条件ごとの事実だけを返し、どれを重く見るかは客が言ったことに従います。 必須の印を付け直しても、checks を読み直すだけで振り分けをやり直せます。

2つ目は、Structured Output Parser の制約に合わせられることです。 公式のページでは、JSON の例から作った schema はすべての項目を必須として扱い、$ref を使った参照には対応していないとされています。入れ子は clients と checks の2段にとどめ、参照を使わない平らな形で書きます。 unknown_items が無い客にも空の配列を返させます。

3つ目は、evidence で担当の確認が速くなることです。 物件の資料を開く前に、どの欄を見て合うとしたかを読めます。

Step8

システムへ連携する

つなぎ先ノード・操作内容
新着物件シートGoogle Sheets(Get Row(s)/Update Row)未処理の行を読み、終わったら処理済みにする
登録客台帳Google Sheets(Get Row(s))配信可の客を読む。書き込まない
案内候補シートGoogle Sheets(Append Row)物件・客ごとの振り分け、checks、下書きを書く
Claude APIAnthropic Chat Model(Basic LLM Chain の下)条件ごとの判定と案内文の下書き
担当のメールGmail(Send and Wait for Approval)物件ごとに候補の客を並べた承認依頼
営業用のメールGmail(Drafts の create)承認されたら客ごとの下書きを作る

承認依頼のメールは、物件ごとに担当1人へ送ります。 宛先は、候補の客の担当のうち人数が多い人です。本文には物件の要点、match と check の客の一覧、check の理由、案内候補シートの該当行へのリンクを書きます。 承認の種類は「Approve and Disapprove」にし、ボタンの文字を「下書きを作る」「今回は見送る」に変えます。

承認されたら、Gmail ノードの Drafts の create で客ごとの下書きを作ります。 宛先は登録客台帳のメールアドレス、本文は宛名と署名の定型の間にAIの下書きを挟んだものです。送信はしません。 送るのは、担当が物件を確かめた後です。

登録客台帳には書き込みません。 最終の案内日を更新するのは、担当が実際に送ったときです。下書きを作っただけで更新すると、送られなかった案内が送ったことになります。

Step9

人が確認する

担当が見るのは、承認依頼のメールと案内候補シートの行だけです。 1物件あたり match と check を合わせて数人という想定です。

  1. check を先に見る … unknown_items に並んだ事項を、物件の資料か元の業者への問い合わせで確かめます。多くは学区・ペットの細則・駐車場の台数です
  2. match の根拠を確かめる … evidence を読み、物件の資料の該当欄と合っているかを見ます
  3. 台帳に無い事情を足す … 事前審査の状況、前回の内見での反応など、担当だけが知っていることで案内する相手を足し引きします
  4. 承認する … 「下書きを作る」を押します。見送るときは理由を案内候補シートに書きます
  5. 物件の確認をして送る … まだ売りに出ているかを元の業者に確かめ、下書きを直して送ります

1番を省かないでください。 unknown は「AIが分からなかった」という意味ではなく、物件の情報に書かれていなかったという意味です。 確かめれば合う客かもしれず、ここで外すと第3章の(d)に戻ります。

目標は、1物件あたり5分です。 判定の根拠を読む時間と、check の事項を確かめる時間が中心です。check が多すぎる日は、物件の登録で向き・学区・管理規約の欄が空いています。

Step10

例外に対処する

起きること対応
表の条件で候補が0人AIを呼ばず、案内候補シートに「候補なし」と書いて処理済みにする
候補が15人を超える最終の案内日が古い順に15人。残りは件数だけを承認依頼に書く
物件の情報の欄の多くが空空欄が半分を超える物件はAIに渡さず、担当へ「登録の確認」として回す
AIの出力が形に合わないStructured Output Parser でエラーになる。その物件は未処理のまま残し、次の回に回す
同じ物件が二度登録される物件番号で照らし、2行目は処理しない
価格が変わって再び新着に出た前に案内した客は「再案内」の印を付け、案内文を価格の変更の文面にする
担当が承認しないまま夕方になる翌朝にもう一度通知する。新着から2営業日を過ぎたら見送りとして閉じる
客のメールアドレスが空下書きを作らず、担当に「電話で案内」として残す
Claude API が応答しない物件を未処理のまま残す。処理済みにするのは書き込みが成功したときだけ

上の3行が大半を占めます。 どれもAIの問題ではなく、物件と客の登録のしかたの問題です。 空欄の多い物件が続くときは、判定を工夫するより登録の手順を直します。

Step11

記録を残す

  • 処理した物件番号と、そのときの物件の情報の全文
  • 表の条件で絞った候補の客番号と、そのときの希望条件と必須の印
  • AIが返した JSON の全文(checks、unknown_items、draft)
  • Code ノードが決めた振り分けと、その規則の版
  • 担当の承認・見送りと、その理由
  • 担当が足した客と外した客 … AIの振り分けと担当の判断の違い
  • 実際に送った日と、その後の内見・申込の有無

2つ目で「そのときの希望条件」を残すのは、希望が後から変わるためです。 客が予算を上げたり、エリアを広げたりすると、過去の判定の意味が変わります。当時の条件が残っていないと、判定の誤りか条件の変化かが区別できません。

6つ目は、表の条件の幅と指示の見直しの材料になります。 担当が足した客が多ければ絞り込みが狭すぎ、外した客が多ければAIが pass を出しすぎています。

04実装レベルの3段階

最小構成:物件の資料と候補の希望条件を手でAIの画面に貼り、条件ごとに判定させる / 自由記述の希望の判定
半自動化:上記+n8n で表の条件の絞り込み、判定、案内文の下書き、担当への承認依頼と Gmail の下書きまでつなぐ / 候補の絞り込みから下書きまで
本格構成:上記+物件管理システムのAPIから新着を直接取り、送った記録と内見・申込の結果を台帳に書き戻す / 新着の取り込みから結果の記録まで

最小構成は確かめるための段階です。 1件ずつ貼るので、1日15件には使えません。 半自動化で1件20分が5分になり、この段階が本記事の想定です。 本格構成で減るのは、主にCSVを貼る手間と送った記録の手入力です。その代わり、内見と申込の結果が判定とひもづき、どの判定が当たっていたかを数えられます。 段階を飛ばさないでください。 半自動化を1か月回すと、unknown が多い欄と担当が足し引きした客の傾向が分かります。登録と台帳の書き方を直してから物件管理システムにつなぎます。

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

前提値(モデル条件)
対象人数
6 名
月間件数
300 件
1件あたり現在時間
20 分
1件あたり導入後時間
5 分
現在  300件 × 20分 ÷ 60 = 100 時間/月
導入後 300件 × 5分 ÷ 60 = 25 時間/月
月間削減時間
75h
削減率
75%
年間削減時間
900h
年間金額換算(時間単価3,000円)
270万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

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

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

AI活用について相談する

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

向いている
  1. 中古マンション・戸建・土地の売買仲介で、購入希望の登録客を数百人抱え、新着物件が出るたびに担当が希望条件の一覧を見て案内する相手を探している会社。希望条件のうち、日当たり・学区・ペット・駐車場のような自由記述の部分が多く、表のフィルタだけでは合う人を拾いきれない場合。物件と登録客の情報がスプレッドシートに書き出せる場合。
向いていない
  1. 登録客が数十人で、担当が全員の希望を覚えていられる場合。物件の案内をポータルサイトの新着通知や自動配信の仕組みに任せていて、担当が文面を書いていない場合。賃貸の仲介で、物件の回転が速く、案内の前に空室の確認が間に合わない場合。なお、どの物件をどの客に勧めるか、価格交渉の見込み、ローンが通るかの判断は、この構成では代替できません。

07最小構成で試す方法

  1. 先週の新着物件から10件を選ぶ(担当が案内した物件と、案内しなかった物件を混ぜる)
  2. 1件ずつ、登録客台帳をエリアと予算で絞り込み、候補の客の希望条件を書き出す。名前と連絡先は消す
  3. 物件の資料と候補の希望条件を、手元の Claude の画面に貼る
  4. 「客ごとに、希望を条件1つずつに分け、物件の情報に合うかを pass / fail / unknown で判定し、根拠にした欄を書いてください。物件の情報に書かれていないことは推測せず unknown にしてください」と指示する
  5. 出てきた判定を、当時の担当が案内した相手と見比べる

10件は必ずやってください。 ワークフローを組む前に、「物件の情報から判定できるのか」を確かめます。

出てきた内容判断
当時の担当と同じ客が pass になったワークフローに進む
物件の情報に無いことを推測して pass にした指示の書き方で直る。構成は有効
多くの条件が unknown になった物件の登録の欄が足りない。 AIの問題ではない

3行目が出ることは珍しくありません。 その場合は、物件の登録の欄に向き・学区・管理規約の要点を足し、次の週の新着で試し直します。

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

問題対策
物件の情報に無いことを推測して pass にする「記載なし」を明示して渡し、推測を禁じる。 evidence が空の pass を後段で check に落とす
「分からない」を「合わない」として落とすfail と unknown を分け、unknown は担当の確認事項にする
Schedule Trigger が夜中に動く自分で立てたサーバーの既定は America/New York。ワークフローの設定で Asia/Tokyo にする
翌朝何も動かないワークフローを公開していない。 Schedule Trigger は保存して公開する
Structured Output Parser でエラーになる例から作った schema はすべて必須。空の値と空の配列も返させる
案内文に「閑静」「人気」が入る評価の言葉を禁じ、物件の情報に無い言葉を後段で拾う
予算の絞り込みで交渉の余地のある物件が落ちる上限の5%までを残す。幅は担当の声で調整する
候補が多すぎて承認が形だけになる1物件15人まで。match と check の合計が5人を超える日は絞り込みを見直す
同じ客に同じ物件を二度送る過去の案内を渡して外す。最終の案内日は送ったときに更新する
他の担当の客を勝手に案内する承認依頼は客の担当に送る。担当の違う客は、その担当の承認を待つ
下書きを作っただけで送ったことになる台帳の更新は送信の後。下書きの作成では更新しない
売れた物件を案内する送る前に元の業者に確かめる手順を省かない

上の2行が、この構成の失敗のほとんどです。 「書かれていない」を「合う」にも「合わない」にもせず、担当の確認事項として残せるかで、運用に乗るかが決まります。

下の3行も早く効きます。 二重の案内、担当の頭越しの案内、売れた物件の案内は、どれも1回で客の信頼を減らします。

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

この構成で扱うデータ: 登録客の名前・連絡先・希望条件、そして台帳の自由記述の欄に書かれた家族構成、子どもの学校、ペット、勤務地、資金の事情です。

  1. AIに渡すのは客番号と希望条件だけにする … 名前・電話番号・メールアドレス・勤務先・年収は渡しません。宛名と連絡先は、承認の後に n8n がスプレッドシートから差し込みます
  2. 自由記述の欄から、判定に要らない個人の事情を外す … 「離婚のため」「親の介護で」のような購入の理由は、物件の条件ではありません。台帳の欄を、希望条件と事情のメモに分けておき、AIには前者だけを渡します
  3. 案内のメールを自動で送らない … 出すのは下書きまでです。売れた物件や、条件の合わない物件を送れば、その客は次の案内を開きません
  4. 配信の可否を守る … 案内を希望しなかった客、配信の停止を申し出た客には送りません。配信の可否の列が「可」の客だけを読む設計にします
  5. この構成は営業の判断を代替しません … どの物件を誰に勧めるか、価格交渉の見込み、ローンの見通しは担当が決めます。AIが出すのは、希望条件と物件の情報が合うかという事実の照合だけです
  6. n8n の動かし場所を決める … n8n Cloud か自社のサーバーかで、実行の記録に残る個人情報の置き場所が変わります

誤りが起きた場合のリスクは、合わない客に案内することと、合う客に案内しないことの2つです。 前者は推測の pass から、後者は unknown を fail と混ぜることから起きます。どちらも「書かれていないこと」の扱いから出ているので、そこだけは設計で守ります。

10まず何から始めるか

1週目:登録客台帳に2つの列を足す

必須の印の列と配信の可否の列を足し、この3か月に来店した客から付けます。 自由記述の欄は「希望条件」と「事情のメモ」に分けます。

2週目:10件で試す

第8章の手順で試し、物件の情報に無いことで pass にしていないかを最優先で見ます。

3週目:物件の登録の欄を決める

2週目に unknown が多かった欄を数え、物件の登録のときに必ず埋める欄を決めます。 多くは向き・学区・管理規約のペットと楽器の定め・駐車場の台数です。表の条件の幅(予算の5%、面積の95%)もここで決めます。

4週目:判定までをつなぐ

n8n で新着物件シートと登録客台帳を読み、Code ノードで絞り、Basic LLM Chain で判定して案内候補シートに書くところまで作ります。この時点では承認依頼も下書きも作らず、担当が案内候補シートを見て、自分の判断と比べます。

2か月目: 振り分けの規則と、Gmail ノードの承認依頼と下書きの作成を足します。担当が足した客と外した客を毎週数えます。3か月目以降: 1件20分が何分になったかを実測し、内見と申込の結果を案内候補シートに書き足します。担当エリアの外の物件でも合う客に案内が届くようになった時点で、この構成は完成です。


11関連ユースケース

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

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

技術仕様確認日:2026-10-14/最終更新:2026-10-14
確認した内容情報源確認日
ワークフローを公開する必要があること。タイムゾーンの扱いと、自分で立てたサーバーの既定が America/New York であること。複数のルールを足せることn8n Docs: Schedule Trigger2026-10-14
Get Row(s)、Append Row、Update Row などの操作。無い操作は HTTP Request ノードで API を呼べることn8n Docs: Google Sheets node2026-10-14
JavaScript と Python が書けること。ファイルの読み書きと HTTP のリクエストができないこと。Cloud では外部の npm モジュールを読み込めないことn8n Docs: Code node2026-10-14
Require Specific Output Format で Structured Output Parser などをつなげることn8n Docs: Basic LLM Chain2026-10-14
Claude のモデルを提供するサブノードであることn8n Docs: Anthropic Chat Model2026-10-14
例から作った schema ではすべての項目が必須になること。$ref に対応していないことn8n Docs: Structured Output Parser2026-10-14
Gmail ノードに下書き(Drafts)の create の操作があることn8n Docs: Gmail node2026-10-14
Send and Wait for Approval の動きと承認の種類、ボタンの文字を変えられること。複雑な承認には Wait ノードを使うことn8n Docs: Gmail node message operations2026-10-14

どの物件をどの客に案内するかは、担当が決めてください。

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

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

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

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