保険代理店で、取扱う保険会社から毎日届くお知らせ(商品改定・事務の変更・引受の制限)をエージェントが見回り、影響する契約者と募集人を拾って対応の一覧を作る
取扱う保険会社から届くお知らせを毎日エージェントが読み、どの契約者・どの申込中の案件・どの募集人に関係するかを契約の一覧から拾います。期限と対応の案を付けた一覧にし、業務管理の担当者に渡します。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Make/n8n/Power Automate/Zapier
- 対象業界
- 保険/金融
- 対象部門
- 営業
- 対象業務
- 内容確認・チェック/情報検索
- 主な課題
- 人手が足りない/判断に時間がかかる/期限・対応漏れが起きる
- AIで行う処理
- エージェント
- 主な効果
- 対応スピード向上/工数削減/機会損失防止
- 導入難易度
- ★★★★☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 毎朝、各保険会社からの通知メールを開き、代理店システムにログインしてお知らせの本文とPDFを読む
- お知らせの種類を見分ける(商品改定、事務の変更、引受の制限、システム停止など)
- 一部の契約に関係するものは、対象の商品・特約・適用の日を読み取る
- 顧客管理の仕組みで、その条件の契約を検索する。申込の進捗の管理表でも申込中の案件を探す
- 該当した契約と案件を、担当の募集人ごとに書き出す
- 募集人へメールや社内チャットで伝え、必要な対応(契約者への案内、申込の見直し)を頼む
- 対応の期限を管理表に書き、期限が近づいたら確認する
- 自動保険会社からの通知メールが届くと、ワークフローが本文と添付のPDFを取り込む
- 人通知メールの無い保険会社のお知らせは、事務の担当者が毎朝、代理店システムからPDFを所定のアドレスへ送る
- 自動PDFから文字を取り出し、保険会社・掲載日・件名を付けて受付の台帳に1行足す
- 自動エージェントが、お知らせ1件ごとに種類と影響の条件を取り出す
- 自動エージェントが、条件に応じて道具を選び、契約の一覧、申込中の案件、募集人の一覧、過去のお知らせを引く
- 自動影響する契約・案件の件数を募集人ごとにまとめ、期限と対応の案を付けて、決まった形のJSONで返す
- 自動毎朝8時30分に、前日からのお知らせの一覧を業務管理の担当者へ通知する。申込中の案件に関係するものを先頭に出す
- 人業務管理の担当者が一覧を見て、影響の条件の読み取りと件数を確かめる
- 人確かめたものを、担当の募集人へ伝える。契約者へ案内するかどうかは、募集人と業務管理責任者で決める
- 自動期限の3営業日前に、対応が済んでいない募集人を一覧にして通知する
各工程の詳しい説明を読む
- 毎朝、各保険会社からの通知メールを開き、代理店システムにログインしてお知らせの本文とPDFを読む
- お知らせの種類を見分ける(商品改定、事務の変更、引受の制限、システム停止など)
- 一部の契約に関係するものは、対象の商品・特約・適用の日を読み取る
- 顧客管理の仕組みで、その条件の契約を検索する。申込の進捗の管理表でも申込中の案件を探す
- 該当した契約と案件を、担当の募集人ごとに書き出す
- 募集人へメールや社内チャットで伝え、必要な対応(契約者への案内、申込の見直し)を頼む
- 対応の期限を管理表に書き、期限が近づいたら確認する
(a)読み切れない。 7社から毎日届くお知らせのすべてに目を通すと、それだけで朝の1時間が終わります。忙しい日は件名だけを見て、自社に関係なさそうなものを読み飛ばします。 読み飛ばしたものの中に、関係するものが混ざります。
(b)検索の条件づくりに時間がかかる。 お知らせには「〇〇保険のうち、△△特約を付帯した契約で、保険始期が2026年11月1日以降のもの」のように書かれています。これを顧客管理の検索条件に置き換えるのは、商品の名前と社内のコードの対応を知っている担当者にしかできません。
(c)申込中の案件が漏れる。 顧客管理を検索しても、まだ契約になっていない申込中の案件は出てきません。申込の進捗の管理表を別に見る必要があり、ここを忘れると、引受の制限に掛かる申込をそのまま進めてしまいます。
(d)期限が管理表の中に埋もれる。 期限はお知らせごとに違い、管理表に書いても、見に行かなければ気づきません。
- 【自動】 保険会社からの通知メールが届くと、ワークフローが本文と添付のPDFを取り込む
- 【人】 通知メールの無い保険会社のお知らせは、事務の担当者が毎朝、代理店システムからPDFを所定のアドレスへ送る
- 【自動】 PDFから文字を取り出し、保険会社・掲載日・件名を付けて受付の台帳に1行足す
- 【自動】 エージェントが、お知らせ1件ごとに種類と影響の条件を取り出す
- 【自動】 エージェントが、条件に応じて道具を選び、契約の一覧、申込中の案件、募集人の一覧、過去のお知らせを引く
- 【自動】 影響する契約・案件の件数を募集人ごとにまとめ、期限と対応の案を付けて、決まった形のJSONで返す
- 【自動】 毎朝8時30分に、前日からのお知らせの一覧を業務管理の担当者へ通知する。申込中の案件に関係するものを先頭に出す
- 【人】 業務管理の担当者が一覧を見て、影響の条件の読み取りと件数を確かめる
- 【人】 確かめたものを、担当の募集人へ伝える。契約者へ案内するかどうかは、募集人と業務管理責任者で決める
- 【自動】 期限の3営業日前に、対応が済んでいない募集人を一覧にして通知する
8番目が、この設計の分かれ目です。 拾った件数をそのまま回さず、影響の条件をお知らせの原文と見比べてから回します。
2番目を人の作業として残すのは、意図してのことです。 代理店システムの画面の自動操作やログインの自動化は、保険会社との取り決めで認められていないことがあります。
02今回想定するシステム構成
各保険会社の代理店システム ├─ お知らせ掲載の通知メール(本文・PDF添付) └─ 【人】通知の無い会社はPDFを所定のアドレスへ送る │ ▼【トリガー】n8n の Gmail Trigger(ラベル「保険会社お知らせ」) n8n のワークフロー ├──▶ Extract From File(Extract From PDF)で文字を取り出す ├──▶ 受付の台帳へ1行(保険会社・掲載日・件名) ▼ AI Agent ノード(Tools Agent)+ Claude │ お知らせ1件ごとに、影響の条件を取り出し、道具を選んで引く │ ・商品の辞書を引く ・契約の一覧を引く(Postgres) │ ・申込中の案件を引く ・募集人の一覧を引く │ ・過去の同じ種類のお知らせと対応を引く │ Structured Output Parser で決まった形のJSONを返す ▼ 対応の一覧(スプレッドシート) ▼【トリガー】Schedule Trigger(毎朝8時30分、Asia/Tokyo) 業務管理の担当者への通知 → 【人】確認して募集人へ
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| ワークフロー | n8n | Make、Zapier、Power Automate |
| 生成AI | Claude API(n8n の Anthropic Chat Model ノード) | OpenAI API、Gemini API |
| 連携 | PostgreSQL(契約の一覧と申込中の案件の写し) | MySQL |
| 保管 | Google スプレッドシート(受付の台帳と対応の一覧) | SharePoint リスト |
| 通知 | 社内チャット | メール |
顧客管理の仕組みそのものには、つなぎません。 毎晩書き出している契約の一覧のCSVを、エージェントが引くための PostgreSQL のデータベースに読み込みます。 写しにしておけば、エージェントの検索が本番の顧客管理に負荷をかけることも、誤って書き換えることもありません。
n8n を選ぶ理由は、道具を選ばせるエージェントをワークフローの中に組めることです。 AI Agent ノードは、つないだ道具の中から何を呼ぶかをエージェントが決める作りで、少なくとも1つの道具をつなぐ必要があるとされています。お知らせの種類ごとの分かれ方を固定の分岐で書くと、種類の数だけ枝が増えます。
PostgreSQL のノードは、AIの道具として使えます。 公式の説明では、エージェントの道具として使うとき、多くのパラメーターを自動で、またはAIの指示した情報で設定できるとされています。操作は Delete、Execute Query、Insert、Insert or Update、Select、Update の6つです。この構成では Select と、パラメーター付きの Execute Query だけを使い、書き込みの操作は道具にしません。
PDFの文字は、Extract From File ノードで取り出します。 このノードには Extract From PDF のほか、CSV、HTML、XLSX などから取り出す操作があります。お知らせのPDFが画像だけのもの(スキャンしたもの)だと、文字が取り出せません。 その場合は例外処理に回します。
03どうやって実装するのか
処理の起点を決める
トリガーは2つです。お知らせが届いたときに動くものと、毎朝の通知です。
届いたときに動く側は、n8n の Gmail Trigger です。ノードのフィルタに、ラベル、Gmail の検索式、既読・未読、送り主の指定があります。保険会社の通知メールの送り主と、事務の担当者がPDFを送るアドレスに、Gmail の側でラベル「保険会社お知らせ」を付け、そのラベルで絞ります。 既読の状態は「未読のみ」にし、処理が終わったら既読にします。
毎朝の通知は、Schedule Trigger で営業日の8時30分に動かします。cron 式は (秒) 分 時 日 月 曜日 の欄で書け、秒の欄は省略できるとされています。月曜から金曜の8時30分なら 30 8 * * 1-5 です。ワークフローのタイムゾーンを Asia/Tokyo にします。 設定が無いとインスタンスのタイムゾーンが使われ、自分でホストする場合の既定は America/New York とされています。Schedule Trigger を使うワークフローは、保存して公開しないと動きません。
引受の制限で申込中の案件に関係するものは、毎朝を待たずにすぐ知らせます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| お知らせの本文 | 通知メールの本文、PDFから取り出した文字 | Gmail、Extract From File |
| 受付の台帳 | 保険会社、掲載日、件名、処理の状態 | スプレッドシート |
| 契約の一覧 | 証券番号、保険会社、商品コード、特約、始期・満期、払込方法、契約者の所在地の都道府県、担当の募集人 | 顧客管理のCSVを読み込んだ PostgreSQL |
| 申込中の案件 | 申込日、保険会社、商品、始期の予定、進捗の段階、担当の募集人 | 申込の進捗の管理表を読み込んだもの |
| 商品の辞書 | 保険会社ごとの商品名・特約名の表記と、社内の商品コードの対応 | スプレッドシート |
| 募集人の一覧 | 氏名、所属、取扱える保険会社と商品 | スプレッドシート |
| 過去のお知らせ | 過去のお知らせの要旨、影響の条件、拾った件数、行った対応 | 対応の一覧 |
質を決めるのは、商品の辞書です。 お知らせには「〇〇保険(家庭総合)」「△△特約」のような保険会社の正式な名前が書かれ、契約の一覧には社内のコードが入っています。この対応が無いと、エージェントは条件を検索の言葉に置き換えられません。 契約の一覧には、氏名や連絡先を入れません。 どの契約者に連絡するかは、証券番号から募集人が顧客管理で引きます。
データの取得方法を決める
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 通知メールと添付 | Gmail Trigger(ラベルで絞る) | お知らせの本文とPDF |
| PDFの文字 | Extract From File の Extract From PDF | お知らせの全文 |
| 契約・申込中の案件 | PostgreSQL のノード(道具。Select とパラメーター付きの Execute Query) | 影響する件数と担当の募集人 |
| 商品の辞書・募集人・過去のお知らせ | スプレッドシートの読み取り(道具) | 条件の置き換え、伝える相手、前例 |
契約の一覧と申込中の案件は、毎晩別のワークフローで読み込み直します。 一覧にいつ時点のものかを持たせ、対応の一覧にも書きます。
検索は、パラメーター付きのクエリにします。 PostgreSQL のノードは $1、$2 のような記号で値を渡すクエリに対応し、公式の説明では、パラメーターの値は n8n が無害化するため SQL インジェクションを防げるとされています。エージェントにSQLの文を組み立てさせず、決めておいた検索の形に値だけを渡させます。
AIへ渡す前に整形する
- 送り主の確認 … ラベルの付いたメールが、登録した保険会社か事務の担当者から届いたものかを確かめます
- 文字の取り出し … 本文と、添付のPDFから文字を取り出します。取り出せた文字が極端に少なければ、画像だけのPDFと見なして人へ回します
- 定型の部分の除去 … 通知メールの定型のあいさつ、配信停止の案内、代理店システムへのリンクの説明を外します
- 重複の確認 … 同じ保険会社・同じ件名・同じ掲載日のものが台帳にあれば、二重に処理しません。訂正版は件名に「訂正」とあることが多いので、元のものに結び付けます
- 受付の台帳への記録 … 保険会社、掲載日、件名、処理の状態を1行足します
4番目の訂正版は、見落とすと危険です。 保険料の改定のお知らせに訂正が出たとき、元のお知らせの件数で募集人に伝えたままになることがあります。訂正版が届いたら、元のお知らせの対応の一覧の行に「訂正あり」と出し、件数を引き直させます。
AIに処理させる
させるのは、お知らせ1件ごとに、影響の条件を取り出し、必要な道具を選んで引き、次の4つを組み立てることです。
| 組み立てるもの | 中身 |
|---|---|
| お知らせの要旨 | 種類(商品改定・保険料改定・事務の変更・引受の制限・システム停止・その他)と、何が変わるかを2〜3文で |
| 影響の条件 | 保険会社、商品、特約、適用の日、対象の地域・職業などを、お知らせの原文の箇所付きで |
| 影響する件数 | 契約と申込中の案件の件数を、募集人ごとに |
| 期限と対応の案 | 募集人が確かめること、契約者への案内の要否を検討すること、申込の見直し |
| 道具 | 中身 | 呼ぶ場面 |
|---|---|---|
lookup_product_code | 保険会社の商品名・特約名から社内の商品コードを引く | 影響の条件に商品・特約があるとき |
count_policies | 商品コード・特約・始期の範囲・都道府県で契約を数え、募集人ごとに返す | 既存の契約に影響するとき |
find_pending_applications | 商品コード・始期の予定の範囲で申込中の案件を返す | 引受の制限、改定の適用日があるとき |
get_agents | 募集人の一覧と、取扱える商品 | 全募集人向けか一部向けかを決めるとき |
get_past_notices | 同じ保険会社・同じ種類の過去のお知らせと、行った対応 | すべてのお知らせ |
どの道具を呼ぶかを決めるのが、エージェントの仕事です。 システム停止なら get_agents だけで足り、引受の制限なら find_pending_applications を先に、保険料の改定なら lookup_product_code から count_policies へ進みます。
| させないこと | 理由 |
|---|---|
| 契約者へ案内するかどうかの判断 | 募集人と業務管理責任者が決める |
| 引受の可否の判断 | 保険会社が決めること。代理店が推し量らない |
| 辞書に無い商品名の推定 | 似た名前の商品で数えると、関係の無い契約者に連絡が行く |
| 契約の一覧への書き込み | 道具に書き込みの操作を持たせない |
| お知らせに書かれていない条件の補完 | 「おそらく既存契約にも適用」のように広げない |
3行目がいちばん起きやすい失敗です。 「家庭総合保険」と「家庭総合保険(2024年版)」のように、名前の近い商品は少なくありません。辞書に無い名前を、似た名前の商品として数えると、件数はそれらしく出ます。 間違っていても、人の確認では気づきにくい形です。
指示内容を固定する
AI Agent ノードの System Message に次を入れます。
あなたは保険代理店の業務管理の担当として、保険会社から届いたお知らせを読み、
自社のどの契約・どの申込中の案件・どの募集人に関係するかを調べる立場です。
【お知らせの読み方】
- 種類を、商品改定・保険料改定・事務の変更・引受の制限・システム停止・その他
から1つ選んでください
- 影響の条件(保険会社、商品、特約、適用の日、対象の地域・職業など)を取り出し、
それぞれに、根拠にしたお知らせの原文をそのまま quote として付けてください
- お知らせに書かれていない条件を補わないでください。
適用の範囲が書かれていないときは、scope_unclear を true にしてください
【道具の使い方】
- まず get_past_notices で、同じ保険会社の同じ種類のお知らせを見てください
- 商品や特約が条件にあるときは、lookup_product_code で社内の商品コードを引いてください。
辞書に無い名前は、似た名前の商品に置き換えないでください。
unmapped_products に書き、その商品については数えないでください
- 適用の日や引受の制限があるときは、find_pending_applications を
count_policies より先に呼んでください
- 同じ道具を同じ条件で2回呼ばないでください
【書かないこと】
- 契約者へ案内すべきかどうかを、結論として書かないでください。
「案内の要否を検討する」の形にしてください
- 引受できるかどうかを書かないでください
- 件数は道具が返した値だけを書いてください。推定した件数を書かないでください
【お知らせ】
保険会社:{insurer} / 掲載日:{posted_on} / 件名:{subject}
本文:{notice_text}
【契約の一覧の時点】{snapshot_at}
「辞書に無い名前を置き換えない」と「その商品は数えない」を両方書くのは、片方だけだと抜け道があるからです。 置き換えを禁じても、「おそらくこの商品のことと思われるため」と書いて数えることがあります。数えることまで禁じて、初めて止まります。
「申込中の案件を先に引く」は、途中で止まったときのためです。 Tools Agent の呼び出しには上限(Max Iterations、既定は10)があり、上限で止まっても申込中の案件の検索が済んでいれば、取りこぼしの痛手が小さく済みます。
出力形式を固定する
Tools Agent の「Require Specific Output Format」を有効にし、Structured Output Parser をつなぎます。 次の形のJSONで受け取ります。
{
"notice_id": "",
"insurer": "",
"notice_type": "product_revision | premium_revision | procedure_change | underwriting_restriction | system_outage | other",
"summary": "",
"conditions": [
{ "field": "product | rider | effective_date | region | occupation | other", "value": "", "quote": "" }
],
"scope_unclear": false,
"unmapped_products": [],
"impact": {
"all_agents": false,
"policies_by_agent": [ { "agent_id": "", "count": 0 } ],
"pending_by_agent": [ { "agent_id": "", "application_ids": [] } ]
},
"deadline": "",
"actions": [ "" ],
"tools_called": [ "" ]
}
1つ目の理由は、quote で条件の読み違いを人が確かめられることです。 業務管理の担当者は、条件ごとに原文の箇所を見て、エージェントの読み取りが原文どおりかを短い時間で確かめられます。 原文の全体を読み直す必要がありません。
2つ目は、unmapped_products と scope_unclear で、分からなかったことが一覧に出ることです。 件数が0件のとき、本当に関係する契約が無いのか、辞書に無くて数えられなかったのかを区別できます。0件のお知らせを読み飛ばす前に、この2つを見ます。
3つ目は、件数を道具の返した値に限れることです。 ワークフローの側で、policies_by_agent の合計が count_policies の戻り値と一致するかを確かめます。一致しなければ、エージェントが数字を書き換えたということなので、その行は差し戻します。 途中の手順は Tools Agent の Return Intermediate Steps を有効にして受け取ります。
Structured Output Parser には注意があります。JSON スキーマで $ref による参照に対応していないとされ、例から作る方式ではすべての項目が必須として扱われます。 上のJSONは参照を使わない形にしてあります。
| 一覧の優先度 | 付ける条件(ワークフローの規則) |
|---|---|
| 至急 | 引受の制限・改定で、申込中の案件が1件以上ある |
| 高 | 既存の契約に影響し、期限が10日以内 |
| 通常 | 既存の契約に影響し、期限が10日より先。または全募集人への周知だけのもの |
| 要確認 | scope_unclear が true、または unmapped_products がある |
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| Gmail(代理店の登録アドレス) | Gmail Trigger(ラベル・未読で絞る) | 通知メールと、事務の担当者が送ったPDF |
| お知らせのPDF | Extract From File(Extract From PDF) | 文字の取り出し |
| 契約の一覧・申込中の案件 | PostgreSQL のノード(道具。読み取りのみ) | 件数と担当の募集人 |
| 商品の辞書・募集人・過去のお知らせ | スプレッドシートの読み取り(道具) | 条件の置き換え、伝える相手、前例 |
| 受付の台帳・対応の一覧 | スプレッドシートへの書き込み | お知らせごとの行と、優先度・期限 |
| 社内チャット | 通知 | 毎朝の一覧と、至急の即時通知、期限前の未対応の通知 |
契約の一覧には書き込みません。 データベースの接続に使う利用者は読み取りの権限だけにし、道具に Insert や Update をつながないことで守ります。指示で禁じるより確実です。
募集人への連絡も、自動では送りません。 業務管理の担当者が確かめた行だけを、担当者が募集人に送ります。条件の読み違いのまま全員に送ると、取り消しの連絡をもう一度送ることになり、次からお知らせが読まれなくなります。
人が確認する
業務管理の担当者が見るのは、毎朝の一覧です。
- 「至急」を最初に見る … 申込中の案件のある引受の制限と改定。担当の募集人に、その日の午前のうちに伝えます
- 「要確認」を見る …
unmapped_productsは辞書に足し、件数を引き直させます。scope_unclearは保険会社の担当者に問い合わせます - 条件と原文を見比べる …
quoteを読み、条件の読み取りが原文どおりかを確かめます。適用の日と対象の範囲は必ず見ます - 募集人へ伝える … 件数と対象の証券番号を、担当の募集人ごとに送ります
- 案内の要否を決める … 契約者へ案内するかどうかは、募集人と業務管理責任者で決めます。案内の文面は、保険会社が用意したものを使います
- 対応の結果を記録する … 募集人が何をしたかを対応の一覧に残します。これが次の
get_past_noticesの中身になります
3番目の適用の日は、いちばん読み違いの起きやすい項目です。 「始期が11月1日以降の契約」と「11月1日以降に申込を受けた契約」では、対象がまったく違います。原文の言い回しをそのまま見ることが、確認の中心です。
6番目を続けると、前回の対応の手順を案として出せるようになります。
例外に対処する
| 起きること | 対応 |
|---|---|
| PDFが画像だけで文字が取り出せない | 「文字なし」として人へ。担当者が本文を読んで要旨を台帳に書く |
| 辞書に無い商品名が出た | unmapped_products に出し、その商品は数えない。辞書に足してから引き直す |
| 適用の範囲が書かれていない | scope_unclear を立て、保険会社に問い合わせる |
| 訂正版が届いた | 元のお知らせの行に「訂正あり」を出し、件数を引き直させる |
| 契約の一覧の読み込みが前の晩に失敗した | 一覧の時点が古いことを、毎朝の通知の先頭に出す |
| エージェントが上限の回数に達した | 「途中で停止」として人へ。申込中の案件の検索が済んでいるかを示す |
| 件数の合計が道具の戻り値と合わない | その行を差し戻し、人が件数を確かめる |
| 通知メールの無い保険会社のPDFが届かない | 事務の担当者の送付が無い日は、毎朝の通知で知らせる |
5行目は、気づかれにくい失敗です。 前の晩の読み込みが失敗すると、前々日の時点の一覧で、それらしい件数が出ます。 時点の表示が無いと誰も気づきません。
記録を残す
- 届いたメールとPDFの原本、取り出した文字
- エージェントの入力、呼んだ道具とその結果(Return Intermediate Steps で取得)、出力のJSON
- そのとき使った契約の一覧の時点と、商品の辞書の版
- 業務管理の担当者が直した条件と件数、直す前の値
- 募集人へ伝えた日時と、募集人が行った対応
- 契約者へ案内したかどうかと、その判断をした人
3つ目の「一覧の時点と辞書の版」は、後から件数を説明するために残します。 「なぜこの契約者に連絡が来なかったのか」と聞かれたとき、その日の一覧に契約が載っていたか、辞書に商品があったかを確かめられます。
最後の行は、どのお知らせを、いつ、誰に伝え、どう対応したかを後から確かめられるように残します。
04実装レベルの3段階
半自動化で、1件20分が12分ほどになります。 読む時間は要旨と条件の一覧で短くなりますが、検索の条件づくりと検索は人に残ります。 本格構成で6分になり、この段階が本記事の想定です。 差が大きいのは、②の検索が1件ごとの手作業だからです。 段階を飛ばさないでください。 半自動化を1か月回すと、辞書に無い商品名と、範囲の書き方があいまいな保険会社が一通り見えます。辞書を埋めてから道具をつながないと、エージェントは「辞書に無い」を返し続けます。
05工数削減シミュレーション
導入後 150件 × 6分 ÷ 60 = 15 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 損害保険・生命保険の複数の保険会社を取扱う乗合の保険代理店で、各社から毎日届くお知らせ(商品改定、事務手続きの変更、引受の制限)を、業務管理の担当者が読んで募集人へ回している場合。どのお知らせがどの契約者に関係するかを、担当者の記憶と顧客管理の検索で調べている場合。顧客管理の仕組みから、契約の一覧を毎日書き出せる場合。
- 取扱う保険会社が1社で、お知らせの量が少なく、毎朝数分で読み終わる場合。契約の情報を電子の形で持っておらず、紙の申込書の控えだけで管理している場合。保険会社との取り決めや社内の規程で、お知らせの文書や契約の情報を外部の生成AIへ渡すことが認められていない場合。なお、契約者へ案内するかどうかの判断や、引受の可否の判断は、この構成では代替できません。
07最小構成で試す方法
- 先月届いたお知らせの中から、20件を選ぶ(引受の制限、保険料の改定、事務の変更、システム停止を混ぜる)
- その20件について、業務管理の担当者が当時どの条件で検索し、何件を誰に伝えたかを聞き取る
- 手元の生成AIの画面に、お知らせの本文を1件ずつ貼る
- 「このお知らせの種類と、影響の条件(商品、特約、適用の日、対象の範囲)を、根拠の原文付きで取り出してください。書かれていない条件は補わないでください」と指示する
- 出てきた条件を、当時の担当者の検索条件と突き合わせる
この段階では、件数は数えません。 確かめたいのは、お知らせから検索の条件を正しく取り出せるかです。数えるのは道具をつないだ後の仕事です。
| 出てきた内容 | 判断 |
|---|---|
| 当時の担当者と同じ条件が取り出せた | 商品の辞書づくりと、道具の組み立てに進む |
| 書かれていない範囲まで条件を広げた | 指示の書き方で直る。構成は有効 |
| 商品名と社内のコードの対応が分からず、条件を検索に使えない | 商品の辞書づくりが先。 AIの問題ではない |
3行目は、ほぼ必ず出ます。 20件の中に出てきた商品から辞書を作り始めると、最初の版ができます。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 似た名前の商品で数えてしまう | 辞書に無い名前は数えない。指示と道具の作りの両方で止める |
| 適用の日を取り違える | quote に原文を付けさせ、始期の基準か申込日の基準かを人が見る |
| 申込中の案件が漏れる | find_pending_applications を先に呼ばせる。申込の管理表も毎晩読み込む |
| 範囲が書かれていないのに広げる | scope_unclear を立てさせ、保険会社に問い合わせる |
| 件数をエージェントが書き換える | 道具の戻り値と合計を照合し、合わなければ差し戻す |
| 画像だけのPDFで何も読めない | 文字の量で見分け、人へ回す |
| 訂正版を見落とす | 件名の「訂正」で元のお知らせに結び付け、件数を引き直す |
| 契約の一覧が古いまま | 一覧の時点を毎朝の通知に必ず出す |
| エージェントにSQLを書かせてしまう | 検索の形を決め、値だけを渡させる |
| 代理店システムに自動でログインしようとする | 人がPDFを送る運用にする。 保険会社との取り決めを先に確かめる |
上の2行が、この構成の失敗のほとんどです。 どちらも、件数と条件がそれらしく見えるのに間違っている形で、エラーにならないので確認をすり抜けます。
最後の行は、作り始めの段階で決めておきます。 見回りを自動にしたくなると、代理店システムの画面も自動で操作したくなります。入口は、届いたメールと人が送ったPDFだけにします。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 保険会社のお知らせ(代理店向けの非公開の情報を含む)、契約の一覧(証券番号、商品、特約、始期・満期、所在地の都道府県、担当の募集人)、申込中の案件の情報です。
- 外部へ渡す範囲を絞る … 生成AIに渡すのは、お知らせの本文と、道具が返す件数と証券番号までです。契約者の氏名・連絡先・保険金額は、データベースの写しに入れません
- お知らせの扱いを保険会社と確かめる … 代理店向けのお知らせには、外部に出さない前提の情報が含まれることがあります。生成AIのサービスに渡してよいかを、保険会社との取り決めと社内の規程で先に確かめてください
- 代理店システムを自動で操作しない … ログインや画面の自動操作は、保険会社との取り決めで認められていないことがあります。この構成の入口は、届いたメールと人が送ったPDFだけです
- 道具を読み取りだけにする … データベースの接続の権限を読み取りに絞り、書き込みの操作を道具にしません
- 契約者への案内を自動にしない … 案内するかどうか、どの文面で案内するかは、募集人と業務管理責任者が決めます。文面は保険会社が用意したものを使います
- 引受の可否を判断させない … 引受の制限のお知らせで拾うのは、関係しそうな申込中の案件までです。引き受けられるかは保険会社が決めます
誤りが起きた場合のリスクは、影響する契約者を取りこぼすことと、関係の無い契約者に連絡してしまうことの2つです。 前者は辞書に無い商品を黙って落とすと起き、後者は似た名前の商品で数えると起きます。どちらも unmapped_products を一覧に出すことで、人の目に届く形にしています。
10まず何から始めるか
1週目:お知らせの入口を決める
保険会社7社について、通知メールが届くか、PDFが添付されるかを確かめます。通知の無い会社は、事務の担当者が毎朝PDFを送る手順を決めます。あわせて、お知らせを生成AIへ渡してよいかを保険会社との取り決めと社内の規程で確かめます。
2週目:20件で試す
先月のお知らせから20件を選び、手元の生成AIに種類と影響の条件を取り出させます。当時の担当者の検索条件と突き合わせ、書かれていない範囲まで広げていないかを最優先で見ます。
3週目:商品の辞書を作り始める
20件に出てきた商品と特約の名前から、社内のコードとの対応の辞書を作り始めます。件数の多い保険会社の主力の商品から埋めます。
4週目:n8n で取り込みと条件の一覧までをつなぐ
Gmail Trigger、PDFの文字の取り出し、受付の台帳、エージェントによる要旨と条件の取り出しまでを作ります。この時点では道具をつながず、検索は担当者が行います。
2か月目: 契約の一覧と申込中の案件をデータベースに毎晩読み込み、道具をつないで件数を出します。unmapped_products の件数を毎週数えます。3か月目以降: 1件20分が何分になったかを実測します。unmapped_products がほとんど出なくなり、毎朝の一覧から募集人へそのまま伝えられるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| Gmail Trigger のフィルタに、ラベル、Gmail の検索式、既読・未読(既定は未読のみ)、送り主の指定、迷惑メールとごみ箱を含めるかの設定があること | n8n Docs: Gmail Trigger node | 2026-10-06 |
Schedule Trigger の cron 式が (秒) 分 時 日 月 曜日 で秒は省略できること。タイムゾーンはワークフロー、無ければインスタンスの設定を使い、自分でホストする場合の既定が America/New York であること。保存して公開する必要があること | n8n Docs: Schedule Trigger node | 2026-10-06 |
| Extract From File ノードに Extract From PDF、CSV、HTML、XLSX などの操作があること | n8n Docs: Extract From File | 2026-10-06 |
| Tools Agent に System Message、Max Iterations(既定10)、Return Intermediate Steps、Require Specific Output Format があり、少なくとも1つの道具の接続が必要なこと | n8n Docs: Tools AI Agent node | 2026-10-06 |
Postgres ノードの操作が Delete、Execute Query、Insert、Insert or Update、Select、Update であること。$1 などのクエリパラメーターの値を n8n が無害化し SQL インジェクションを防ぐこと。AIの道具として使え、パラメーターをAIが設定できること | n8n Docs: Postgres node | 2026-10-06 |
Structured Output Parser に、例から作る方式と JSON スキーマで定義する方式があること。$ref による参照に対応しないこと。例から作るとすべての項目が必須になること | n8n Docs: Structured Output Parser node | 2026-10-06 |
お知らせや契約の情報を生成AIへ渡してよいか、契約者へどう案内するかは、取扱う保険会社との取り決めと社内の規程に従ってください。 本記事は上記のページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0488)についてのご相談はこちらから。
