見直しの相談で預かる他社の保険証券を読み取り、保障・期間・保険料を比較表にそろえて、重複と不足の候補を募集人に渡す
見直しの相談で顧客から預かった他社の保険証券を読み取り、保障の種類・金額・期間・保険料を家族単位の比較表にそろえます。同じ人に重なる保障と、保障の無い分野を候補として募集人に渡します。
- 生成AI
- ChatGPT/Claude
- AIサービス
- Azure AI/Google Document AI
- 連携・自動化
- Google Apps Script/Python
- 対象業界
- 保険/金融
- 対象部門
- 営業
- 対象業務
- データ入力・転記/比較検討
- 主な課題
- 入力作業が多い/判断に時間がかかる/属人化している
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 判断支援/品質標準化/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 1回目の面談で証券を預かり、複合機でコピーまたはスキャンを取り、原本は顧客に返す
- 相談シートに、家族構成・収入・顧客の意向(何を心配しているか、保険料の上限)を書く
- 担当が証券を1通ずつ見て、主契約と特約ごとに保障の名前・金額・保険期間・払込期間を探す
- 保険料の払い方(月払・年払・半年払)を見て、比較表の雛形に合わせて月額にそろえる
- 比較表の雛形に、被保険者ごと・保障の分野ごとに転記する
- 同じ人に同じ分野の保障が2つ以上ないか、相談シートの意向に対して保障の無い分野がないかを見る
- 気づいた点を比較表の欄外にメモし、2回目の面談の話の順番を考える
- 人1回目の面談で証券をスキャンし、相談の番号を付けて店舗の受付フォルダに保存する。原本はその場で返す
- 自動ファイルの保存をきっかけに処理が動き、形式・ページ数・解像度を確かめる
- 自動Google Document AI の Form Parser が、欄のキーと値・表・チェックボックス・信頼度を返す
- 自動Claude API が、読み取り結果を比較表の共通の項目(分野・金額・単位・期間・保険料)にそろえる
- 自動プログラムが保険料を月額に換算し、被保険者ごと・分野ごとに比較表を組み立てる
- 自動プログラムが、同じ被保険者の同じ分野に2つ以上の保障がある箇所と、相談シートの意向に対して保障の無い分野・期間の切れ目に印を付ける
- 自動Claude API が、印の付いた箇所を2回目の面談で確かめる論点の下書きにする
- 人担当が比較表と証券の画像を並べて、印の付いた行と読めなかった欄を確かめる
- 人担当が論点を直し、話の順番を決めて2回目の面談に使う
各工程の詳しい説明を読む
- 1回目の面談で証券を預かり、複合機でコピーまたはスキャンを取り、原本は顧客に返す
- 相談シートに、家族構成・収入・顧客の意向(何を心配しているか、保険料の上限)を書く
- 担当が証券を1通ずつ見て、主契約と特約ごとに保障の名前・金額・保険期間・払込期間を探す
- 保険料の払い方(月払・年払・半年払)を見て、比較表の雛形に合わせて月額にそろえる
- 比較表の雛形に、被保険者ごと・保障の分野ごとに転記する
- 同じ人に同じ分野の保障が2つ以上ないか、相談シートの意向に対して保障の無い分野がないかを見る
- 気づいた点を比較表の欄外にメモし、2回目の面談の話の順番を考える
(a)書式が保険会社ごとに違う。 主契約と特約が1つの表にまとまっている証券もあれば、特約が別のページに続く証券もあります。保障の名前も保険会社ごとに違い、同じ中身の特約が「入院特約」「医療特約」「入院総合保障特約」と呼ばれます。 担当は、名前から分野を判断しながら転記しています。
(b)単位がそろっていない。 入院の保障は日額で書く証券と一時金で書く証券があり、保険料は月払と年払が混ざります。比較表の上で「同じ列に並んでいるのに単位が違う」という誤りが、いちばん起きやすい誤りです。
(c)期間の切れ目が見えにくい。 10年ごとに更新する特約は、次の更新で保険料が上がることが証券の別の欄に小さく書かれていることがあります。主契約は終身でも、特約は80歳で終わる、という組み合わせも珍しくありません。転記のときに見落とすと、比較表から期間の切れ目が消えます。
(d)重複と不足の拾い方が担当で違う。 同じ家族の証券でも、経験の長い担当は特約の重なりまで拾い、経験の浅い担当は主契約しか見ません。顧客から見ると、同じ代理店でも担当によって指摘の内容が変わります。
- 【人】 1回目の面談で証券をスキャンし、相談の番号を付けて店舗の受付フォルダに保存する。原本はその場で返す
- 【自動】 ファイルの保存をきっかけに処理が動き、形式・ページ数・解像度を確かめる
- 【自動】 Google Document AI の Form Parser が、欄のキーと値・表・チェックボックス・信頼度を返す
- 【自動】 Claude API が、読み取り結果を比較表の共通の項目(分野・金額・単位・期間・保険料)にそろえる
- 【自動】 プログラムが保険料を月額に換算し、被保険者ごと・分野ごとに比較表を組み立てる
- 【自動】 プログラムが、同じ被保険者の同じ分野に2つ以上の保障がある箇所と、相談シートの意向に対して保障の無い分野・期間の切れ目に印を付ける
- 【自動】 Claude API が、印の付いた箇所を2回目の面談で確かめる論点の下書きにする
- 【人】 担当が比較表と証券の画像を並べて、印の付いた行と読めなかった欄を確かめる
- 【人】 担当が論点を直し、話の順番を決めて2回目の面談に使う
8番目が、この設計の分かれ目です。 比較表は顧客に見せる資料なので、全部の行を自動で確定させることはしません。 ただし担当が見るのは、印の付いた行と信頼度の低い欄が中心で、証券を1行目から読み直すことはしません。
5番目と6番目をプログラムに置いているのも、意図してのことです。 月額への換算や、同じ分野に2つあるかの判定は、決まった計算と照合で答えが出ます。 AIにさせるのは、保険会社ごとに違う書き方を共通の項目に当てはめるところまでです。
02今回想定するシステム構成
他社の保険証券・契約内容のお知らせ(面談の場でスキャンし原本は返却) │ 店舗の複合機から受付フォルダへ(相談の番号をファイル名に付ける) ▼【トリガー】受付フォルダへの保存 Cloud Run functions ── 形式・ページ数・解像度の確認 ▼ Google Document AI(Form Parser) │ 欄のキーと値、表、チェックボックス、信頼度、位置 ▼ Claude API ── 構造化出力で比較表の共通の項目にそろえる ▼ Python ── 月額への換算、家族単位の比較表、重複と不足の印 ▼ Claude API ── 印の付いた箇所を面談の論点の下書きにする ▼ 比較表(スプレッドシート)「確認待ち」+証券の画像へのリンク ▼ 【担当が印の行と読めなかった欄を確かめ、論点を直す】 ▼ 2回目の面談で顧客と見る
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | Google Document AI(Form Parser) | Azure AI Document Intelligence |
| 生成AI | Claude API(証券の欄を共通の項目にそろえ、論点を下書きする) | OpenAI API |
| 連携 | Cloud Run functions(フォルダの確認、OCRとAIの呼び出し、比較表への書き込み) | Google Apps Script |
| 差異計算 | Python(月額への換算、同じ分野の重なりと意向に対する不足の照合) | Google Apps Script |
| 保管 | Cloud Storage(証券の画像と読み取り結果) | 代理店のファイルサーバー |
新しく足すのは、「分野の対応表」と「意向の項目」の2つです。 分野の対応表には、保険会社ごとの特約の名前と、比較表のどの分野(死亡、医療の入院、手術、がん、三大疾病、就業不能、介護、年金、学資など)に当てはめるかを書きます。最初は空でかまいません。 AIが当てはめた結果を担当が直したものを、業務課が少しずつ表に足します。意向の項目は、相談シートの欄を「心配していること」「保険料の上限」「保障が要る期間」にそろえる作業です。
土台は Document AI の Form Parser です。 公式のプロセッサ一覧では、OCRのテキストに加えてキーと値のペア(項目とチェックボックス)、表、11種類の一般的なエンティティを抽出するとされ、言語の一覧で日本語(ja)は手書きにも対応する言語として示されています。証券の「被保険者」「契約日」はキーと値のペアとして、主契約・特約の一覧は表として読めます。推奨の版は pretrained-form-parser-v2.0-2022-11-10 です。
Form Parser の注意書きのうち、この題材で効くのは2つです。 1つ目は、値が空のキーと値のペアは確実には読み取れないとされていること。証券には「特約なし」の行を空欄で印刷するものがあり、空欄の行が表から落ちる前提で設計します。 2つ目は、キーと値のペアの読み取りは、言語によってはラテン文字の言語より質が下がることがあるとされていることです。項目名の取りこぼしは、表と全文のテキストから補います(第7章)。
処理する場所は、リージョンの一覧から選びます。 マルチリージョンの us と eu、シンガポール(asia-southeast1)などの単一リージョンがあり、Form Parser の対応リージョンに日本はありません。 証券には顧客と家族の氏名・生年月日・保障の内容が載っています。国外で処理してよいかを、代理店の決まりと保険会社との委託契約に照らして導入前に確かめます(第13章)。
03どうやって実装するのか
処理の起点を決める
受付フォルダに証券のファイルが保存されたことを起点にします。 2回目の面談までの期間が短いので、夜にまとめて処理する形にはしません。 1回目の面談が終わった直後にスキャンすれば、その日のうちに比較表の下書きが出ます。
ファイル名には相談の番号を付けます。 同じ家族の証券は同じ番号でまとめ、比較表はこの番号ごとに1枚作ります。番号が無いファイルは処理せず、受付の担当に戻します。 家族の単位が分からないまま読み取ると、重複の判定ができないからです。
あとから証券が足されたときは、その証券だけを読み取り、比較表を組み立て直します。 処理が終わったファイルは処理済みフォルダへ移し、移すのは成功したときだけにします。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 証券のファイル | PDFまたは画像。相談の番号、スキャンした日時、店舗 | 受付フォルダ |
| 読み取り結果 | キーと値のペア、表、チェックボックス、信頼度、位置 | Google Document AI |
| 相談シート | 家族構成と生年月日、顧客の意向(心配していること・保険料の上限・保障が要る期間) | 相談シート(スプレッドシート) |
| 分野の対応表 | 保険会社ごとの特約の名前と、比較表の分野の対応 | 業務課が育てる対応表 |
| 比較表の雛形 | 分野の並び、列(金額・単位・期間・払込・月額の保険料) | 業務課の雛形 |
質を決めるのは、相談シートと分野の対応表です。 相談シートに家族の生年月日が無ければ、「特約が何歳で終わるか」を年齢に直せません。意向の欄が空なら、不足の候補は出しません。 何が足りないかは、顧客が何を心配しているかと照らして初めて言えることだからです。
分野の対応表は、AIの当てはめを人が直した記録から育てます。 AIに推測させる範囲を、月を追うごとに狭めていく設計です。
データの取得方法を決める
読み取りは、Form Parser のプロセッサを1通ずつ呼びます。オンラインの処理は1回15ページまでとされており、証券は数ページなので足ります。契約内容のお知らせが長い場合は、バッチの処理(100ページまで)に回します。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| キーと値のペア | pages[].formFields(fieldName/fieldValue) | 被保険者、契約日、払込方法など1つずつの欄 |
| 表 | pages[].tables(headerRows/bodyRows) | 主契約・特約の一覧(名前・金額・保険期間・払込期間) |
| チェックボックス | formFields[].fieldValue.valueType(filled_checkbox/unfilled_checkbox) | 払込方法や付帯の有無の□ |
| 全文のテキストと位置 | text と各要素の textAnchor・boundingPoly | 表の外に書かれた更新の注記や満了の年齢 |
| 信頼度 | 各要素の layout.confidence | 読めた欄と読めなかった欄の区別 |
表の読み取りを主にします。 保障の一覧はほとんどの証券で表になっており、1行が1つの保障に当たります。キーと値のペアから組み立てると、行の対応が崩れます。
表の外の注記も拾います。 更新や満了の注記は表の下や欄外に小さく書かれています。全文のテキストから「更新」「満了」「歳」を含む段落を取り出し、表と一緒に渡します。 相談シートからは、家族の生年月日と意向の欄だけを取ります。
AIへ渡す前に整形する
- 形式の確認 … PDF、TIFF、JPEG、PNG などの対応形式であることを確かめます。TIFF は JPEG 圧縮を使ったものに対応しないとされているため、複合機の保存形式は PDF にそろえます
- 解像度の確認 … 公式には最低200dpi、300dpi以上が良い結果を出しやすいとされています。証券の特約の表は文字が小さいので、複合機の既定を300dpiに変えます
- ページの向きと順番 … 横向きに入ったページを直し、表が次のページに続く証券はページの順番を保ったまま1ファイルにします
- 書類の種類の判定 … 保険証券、契約内容のお知らせ、共済の証書、団体保険の加入者証、それ以外(パンフレット、設計書)に分けます。設計書は契約ではないので比較表に入れません
- 同じ証券の重複 … 同じ相談の番号で証券番号と契約日が同じものがあれば、新しいスキャンだけを使います
- 相談の番号の照合 … 相談シートに番号が無ければ処理を止め、受付の担当に戻します
4番目を軽く見ないでください。 顧客は証券と一緒に設計書を持ってくることがあり、読み取ると、入っていない保障が比較表に載ります。
AIに処理させる
させるのは、読み取り結果を比較表の共通の項目に当てはめ、根拠にした文字列を書き出すことです。 分野の当てはめが主で、計算と判定はさせません。
| 見るもの | させること | 判断できないときの扱い |
|---|---|---|
| 保障の名前 | 比較表の分野に当てはめる。分野の対応表にあればそれに従う | 当てはまる分野が決まらなければ unmapped |
| 金額 | 数値と単位(日額・一時金・月額・年額)を分けて写す | 単位が書かれていなければ unit_unknown |
| 保険期間 | 終身・年数・満了の年齢・満了日のどれで書かれているかを写す | 書かれていなければ not_on_document |
| 更新 | 更新型か、更新の間隔、次の更新日が書かれていれば写す | 注記が無ければ not_on_document |
| 払込 | 払込期間と払込方法(月払・年払など) | □の読み取りが割れれば ambiguous |
| 保険料 | 書かれている額と払込方法をそのまま写す | 主契約と特約の合計しか無ければ合計だけ写す |
| 被保険者 | 証券に書かれた被保険者の名前を写す | 家族のだれか決まらなければ ambiguous |
not_on_document と unreadable を分けるのが、右端の列の役目です。 前者は証券に載っていない、後者は載っているが読めない、ということです。読めない欄は信頼度で決めます。 Form Parser の信頼度が低い欄は、AIが値を写していても unreadable として扱います。
| させないこと | 理由 |
|---|---|
| 保険料の月額への換算 | 計算はプログラムで行う。年払を12で割る処理をAIに任せない |
| 重複・不足の判定 | 同じ分野に2つあるかは照合で決まる。プログラムで印を付ける |
| 保障の良し悪しや乗換えの勧め | 比べ方の言葉は募集人が決める。誤解させる比較になりうる |
| 証券に無い給付の条件の補足 | 約款の内容を知識で補わない。照会に回す |
| 解約返戻金の見込み | 証券に載らないことが多い。保険会社への照会で確かめる |
4行目がいちばん起きやすい失敗です。 「入院特約」と読むと、AIは一般的な入院保障の条件を書き足そうとします。条件は約款で決まるもので、証券に無ければ比較表に載せません。
指示内容を固定する
あなたは保険代理店の業務課で、顧客から預かった他社の保険証券を
比較表の項目にそろえる係です。
Document AI が返した読み取り結果だけを見て、項目に写してください。
推測で埋めないでください。
【やること】
1. 書類の種類を判定する(policy / notice / kyosai / group_certificate / other)
設計書・パンフレット・見積は other とし、保障を写さない
2. 主契約と特約を1行ずつ coverages に写す
3. 各行について、比較表の分野(category)を選ぶ
【分野の対応表】に同じ保険会社・同じ名前があれば、必ずそれに従う
無ければ名前から選び、category_source を "inferred" にする
決められなければ "unmapped"
4. 金額は数値(amount)と単位(unit)を分けて写す
unit は daily / lump_sum / monthly / annual / unknown のどれか
【status の選び方】
- ok .............. 値が読み取れている
- not_on_document . 証券にその欄が無い、または記載が無い
- unreadable ...... 欄はあるが、文字が読めない(信頼度が低い)
- ambiguous ....... 値の候補が複数あり、1つに決められない
迷ったときに ok を選ばないでください。
【厳守事項】
- 金額の計算をしないでください。年払の保険料を月額に直さないでください。
合計から特約ごとの保険料を割り出さないでください。
- 単位が書かれていない金額に、単位を補わないでください。unit は unknown です。
- 証券に書かれていない給付の条件(支払の日数、免責、対象の病気の範囲)を、
一般的な知識で書き足さないでください。
- 解約したときの返戻金の額は、証券に数値が書かれている場合だけ写してください。
書かれていなければ not_on_document です。
- 更新や満了の注記は、表の外の文から拾ってください。evidence に原文を写してください。
- どの保険が良い、乗り換えるべき、解約すべきといった判断を書かないでください。
- 被保険者の名前は、証券に書かれたとおりに写してください。
相談シートの家族の名前と照らすのはプログラムが行います。
- evidence には、根拠にした文字列をそのまま写してください。
【読み取り結果(表・キーと値・注記の段落・信頼度)】{docai_result}
【分野の対応表(この保険会社の分)】{category_map}
【比較表の分野の一覧】{category_list}
「年払を月額に直さない」を明記しないと、AIは親切に換算します。 換算そのものは正しくても、どの欄が元の値で、どの欄が換算した値かが分からなくなります。 換算はプログラムで行い、元の値と払込方法を残します。
「一般的な知識で書き足さない」も同じです。 生成AIは欄が足りないと知識で埋めます。 顧客がそれを自分の契約の条件と受け取れば、誤った説明になります。
出力形式を固定する
構造化出力で、次の形のJSONを受け取ります。 Claude API の構造化出力は output_config.format に type: "json_schema" とスキーマを渡す形で、公式にはスキーマに沿ったJSONが返るとされています。オブジェクトには additionalProperties: false が要ります。
{
"consult_id": "",
"file_id": "",
"document_type": "policy | notice | kyosai | group_certificate | other",
"insurer": "",
"policy_no": "",
"contract_date": "",
"insured_name": { "value": "", "status": "ok | not_on_document | unreadable | ambiguous" },
"premium": { "amount": 0, "mode": "monthly | semiannual | annual | single | unknown",
"scope": "total | main_only", "status": "", "evidence": "" },
"coverages": [
{ "name": "", "is_main": true, "category": "", "category_source": "map | inferred | unmapped",
"amount": 0, "unit": "daily | lump_sum | monthly | annual | unknown",
"term": { "type": "whole_life | years | to_age | to_date | unknown", "value": "" },
"renewal": { "is_renewable": "yes | no | not_on_document", "interval_years": 0, "next_date": "" },
"pay_term": "", "status": "", "confidence": 0, "evidence": "" }
]
}
1つ目の理由は、元の値と比較表の値を別の層に置けることです。 AIが写すのは証券の値と単位までで、月額への換算と、被保険者ごと・分野ごとの並べ替えはプログラムが行います。比較表の列の並びを変えても、AIの出力は変わりません。
2つ目は、category_source で当てはめの確かさを分けられることです。 担当が確かめるべき inferred と unmapped の行が一目で分かり、直した結果はそのまま対応表に足せます。
3つ目は、重複と不足の判定を規則で書けることです。 プログラムは次の規則で印を付けます。
| 印 | 付ける条件 |
|---|---|
overlap | 同じ被保険者の同じ分野に、status が ok の保障が2つ以上ある |
gap | 相談シートの意向にある分野に、その被保険者の保障が1つも無い |
term_gap | 意向にある「保障が要る期間」より前に、保険期間が終わる |
renewal_soon | 更新型で、次の更新日が2回目の面談から1年以内 |
needs_check | unreadable・ambiguous・unmapped・unit_unknown を含む |
overlap は悪いという意味ではありません。 入院の保障を2つ持つのは、顧客が意図して選んだ結果かもしれません。印は「話題にする候補」で、論点の下書きもその前提で書かせます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 受付フォルダ | Cloud Storage への保存の通知 | 証券のファイルの保存を検知する |
| Google Document AI | API呼び出し(オンライン/バッチ) | キーと値、表、チェックボックス、信頼度を返す |
| Claude API | API呼び出し(構造化出力) | 共通の項目への当てはめと、論点の下書き |
| 相談シート | スプレッドシートの読み取り | 家族の生年月日と意向の欄を引く |
| 比較表 | スプレッドシートへの書き込み | 相談の番号ごとに1枚、「確認待ち」で作る |
| 顧客管理の仕組み | 既存の入力経路 | 担当が確定した比較表のリンクを相談の記録に付ける |
比較表は「確認待ち」で作り、担当が確定するまで顧客には出しません。 顧客管理の仕組みへは書き込みません。 他社の契約の内容を顧客の記録として持つかは、顧客の同意の範囲と代理店の決まりで変わるためです。
人が確認する
担当が見るのは、印の付いた行と needs_check の欄が中心です。 印の無い行は、証券の画像と金額・単位だけを流し見ます。
needs_checkを先に見る … 読めなかった欄と、分野の決まらなかった特約です。画像で該当の欄を見て、比較表を直します- 単位を確かめる … 入院の保障の日額と一時金、保険料の月払と年払。ここだけは全行を見ます
- 印の行を確かめる …
overlapとgapが本当にそうかを、証券の画像と相談シートで確かめます - 論点の下書きを直す … 顧客の意向に沿った言葉に直し、どの保険が良いといった言葉が入っていないかを見ます
- 確定する … 確定の操作で「確認済み」にします
2番目を省かないでください。 単位の取り違えは、比較表の上で金額が10倍、30倍に見える誤りになります。顧客の前でその表を開けば、その場で説明がつかなくなります。
直した結果は、分野の対応表の候補として業務課に回ります。 inferred の当てはめを担当が直したものは、業務課が週に1回まとめて見て、正しいと確かめたものだけを対応表に足します。
例外に対処する
| 起きること | 対応 |
|---|---|
| 設計書・パンフレットが混ざる | document_type が other。比較表に入れず、担当に「契約の書類ではない」と知らせる |
| 共済の証書や団体保険の加入者証 | 種類を分けて読む。分野の対応表は別に持ち、当てはめは inferred から始める |
| 外貨建ての保険 | 金額と通貨をそのまま写す。円への換算はしない。比較表では別の欄に置く |
| 契約内容のお知らせが証券より新しい | 同じ証券番号ならお知らせの内容を優先し、どちらを使ったかを記録する |
| 途中で減額・特約の解約をしている | 証券とお知らせで金額が違う。ambiguous にして担当に回す |
| 15ページを超える | バッチの処理に回す |
| 解像度が足りない・傾いている | unreadable が多ければ、次の面談の前に撮り直しを頼むかを担当が決める |
| 被保険者が相談シートの家族と合わない | 名前の表記ゆれか、家族以外の契約か。照合できない証券は比較表の別の欄に置く |
| OCRまたはAIが応答しない | 受付フォルダに残す。処理済みへ移すのは成功時だけ |
上の3行が、月に何通かは必ず起きます。 とくに設計書は、証券と同じ封筒に入っていることが多く、顧客自身が証券だと思って持ってきます。 種類の判定を前処理とAIの両方に置いているのは、このためです。
外貨建ての保険を円にしないのは、為替の前提が入るからです。 どの日の為替で換算したかで金額が変わり、比較表の上で円建ての保険と並べると、誤解させる比較になりかねません。
記録を残す
- 証券のファイルと、相談の番号・店舗・スキャンした日時
- Document AI が返したJSONの全文(キーと値、表、信頼度、位置)
- Claude API の出力(
coveragesとevidence)と、そのとき使った分野の対応表の版 - プログラムが付けた印(
overlap・gap・term_gap・renewal_soon・needs_check) - 担当が直した記録 … どの行の、どの項目を、何から何に変えたか
- 比較表を確定した担当と日時、2回目の面談で使った版
- 証券の画像を消した日(保存の期間を過ぎたもの)
分野の対応表の版を残すのは、表が育つからです。 当時の当てはめの根拠が分からないと、過去の比較表を説明の記録として使えません。
04実装レベルの3段階
最小構成では、相談の数がさばけません。 1通ずつ貼り付けるので、月480通には使えません。読み取れば比較表になるのかを確かめる段階です。 半自動化で、1通15分が8分程度になります。 読み取りと当てはめは自動になりますが、月額への換算、家族単位の並べ替え、重複と不足の洗い出しが手作業で残ります。本格構成で5分になり、この段階が本記事の想定です。 差が大きいのは、比較表の組み立てと印付けが、家族の証券をすべて並べてからでないとできない作業だからです。 段階を飛ばさないでください。 半自動化の一覧を1か月使うと、inferred の多い保険会社と特約が分かります。そこを分野の対応表に入れてから本格構成に進むほうが、担当の確認が減ります。
05工数削減シミュレーション
導入後 480件 × 5分 ÷ 60 = 40 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 複数の保険会社の商品を扱う乗合の保険代理店や、銀行・証券会社の窓口で保険の見直しの相談を受けていて、顧客が持ち込む他社の保険証券・契約内容のお知らせが月に数百通ある場合。募集人ごとに証券の読み方と比較表の作り方が違い、同じ家族の相談でも担当によって重複や不足の拾い方が変わっている場合。相談の2回目までに比較表を用意する決まりがあり、その作成が夜や週末に回っている場合。
- 見直しの相談が月に数件で、募集人が証券を見ながら話せば足りる場合。顧客の保険証券の画像を国外のリージョンで処理することが、代理店の決まりや保険会社との委託契約で認められない場合。損害保険(自動車・火災)の更新の比較が中心で、生命保険・医療保険の証券を扱わない場合。なお、どの保険を残し、どれを解約し、何に入り直すかの判断と、その説明は募集人と顧客が行うことで、この構成では代替できません。
07最小構成で試す方法
- 先月の相談から10組(約30通)を選ぶ(うち数組は、特約の多い古い証券と、契約内容のお知らせを含める)
- その10組について、担当が作った比較表を手元に用意する
- 証券の画像から顧客と家族の氏名・証券番号を隠し、手元のAIサービスに1通ずつ貼り付ける
- 「この証券の主契約と特約を1行ずつ、保障の名前・金額・単位(日額か一時金か)・保険期間・払込期間・保険料と払込方法に分けて表にしてください。書かれていない項目は『記載なし』とし、計算や一般的な知識で埋めないでください」と指示する
- 出てきた表を、担当が作った比較表と突き合わせる
単位と期間を最優先で見てください。 金額の数字が合っていても、日額と一時金を取り違えていれば比較表としては使えません。
| 出てきた内容 | 判断 |
|---|---|
| 担当の比較表と同じ行と単位が出た | OCRのAPIと分野の対応表の作成に進む |
| 書かれていない条件を知識で書き足した | 指示の書き方で直る。構成は有効 |
| 特約の表が崩れて行がずれた | スキャンの解像度とページの順番が先。 AIの問題ではない |
3行目は、古い証券で起きやすい結果です。 細かい表が複数のページにまたがると、手元のAIサービスでも行の対応が崩れます。300dpiでスキャンし直した同じ証券で、どこまで変わるかを見てください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 日額と一時金、月払と年払が混ざる | 単位は必ず別の項目で写させる。 換算はプログラムで行い、確認では全行を見る |
| 設計書・パンフレットが証券として読まれる | 種類の判定を前処理とAIの両方に置き、other は比較表に入れない |
| 書かれていない給付の条件をAIが書き足す | 一般的な知識で埋めないことを指示に明記し、evidence の無い値を比較表に載せない |
| 「特約なし」の空欄の行が落ちる | 値が空の項目は確実には読めないとされる。表の行数と全文のテキストで照らす |
| 更新の注記が拾えない | 表の外の段落から「更新」「満了」「歳」を含む文を取り出して渡す |
| 特約の名前が保険会社ごとに違う | 分野の対応表を育てる。AIの推測は inferred として区別する |
| 被保険者の家族の照合がずれる | 名前の表記ゆれ(旧姓・漢字の違い)を生年月日で補う。合わなければ別の欄に置く |
| 外貨建ての金額が円と並ぶ | 換算せず別の欄に置く |
| 論点に「乗り換えたほうが良い」が入る | 優劣の言葉を禁じ、担当が直す。比べ方の言葉は募集人が決める |
| 古い証券の文字が小さい | 300dpi以上でスキャンする。 複合機の既定を見直す |
| 国外のリージョンで処理することの扱い | 導入前に、代理店の決まりと保険会社との委託契約を確かめる |
上の3行が、この構成の失敗のほとんどです。 どれも「それらしい値が比較表に入る」という同じ形をしています。単位、書類の種類、書かれていない条件の3つを、AIではなく規則と人の確認で押さえられるかどうかで、顧客に見せられる表になるかが決まります。
下から3行目は、言葉の問題です。 生成AIは比較を頼まれると結論を書きたがります。論点の下書きは「確かめたいこと」と「顧客の意向との関係」だけに絞らせてください。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 顧客と家族の氏名・生年月日、他社の保険の契約の内容(保障・金額・保険料)、証券番号、相談シートの意向です。証券によっては、特定の部位を保障しない条件など、健康に関わる記載が載っています。
- 預かる前に、何に使うかを顧客に伝える … 他社の証券を読み取って比較表を作ること、そのために外部のサービスで処理することを、1回目の面談で伝えます。家族が被保険者の証券も含まれるので、その点も合わせて伝えます
- 処理する場所を確かめる … Form Parser の対応リージョンに日本はありません。国外で処理してよいかを、代理店の決まりと保険会社との委託契約に照らして導入前に確かめます
- 渡す範囲を絞る … 生成AIに渡すのは証券の読み取り結果と家族の生年月日・意向までにします。収入や資産、顧客管理の他の記録は渡しません
- 比較の言葉を募集人が決める … 保険業法第300条第1項第6号は、保険契約の内容を他の保険契約の内容と比べて誤解させるおそれのあることを告げ、又は表示する行為を禁じています。比較表に優劣の言葉を入れず、証券に書かれた事実と、意向に対する印だけを載せます
- 乗換えの説明は人が行う … 同じ条の第4号は、不利益となるべき事実を告げずに、既に成立している保険契約を消滅させて新たな申込みをさせる行為を禁じています。比較表は乗換えを勧める資料ではなく、解約したときの不利益(返戻金、年齢による保険料、告知のやり直しなど)の説明は、募集人が保険会社の資料で確かめて行います
- 意向に沿った提案の材料にする … 第294条の2は、顧客の意向を把握し、これに沿った提案と説明を行うことを求めています。不足の候補を相談シートの意向にひもづけて出すのは、この流れに沿わせるためです
- 証券の画像を持ち続けない … 相談が終わったものは、決めた期間で消し、消した日を記録します
誤りが起きた場合のリスクは、誤った比較表で顧客が判断することです。 単位の取り違えや、証券に無い条件の書き足しは、顧客の前で誤った説明として現れます。どちらもAIに計算と補足をさせない設計と、担当の確認で押さえます。
10まず何から始めるか
1週目:比較表の分野と相談シートの意向をそろえる
比較表の分野の一覧(死亡、医療の入院、手術、がん、三大疾病、就業不能、介護、年金、学資など)を決め、相談シートの意向の欄を同じ分野で選べる形に直します。この2つがそろわないと、不足の印が付けられません。
2週目:10組で試す
先月の相談から10組を選び、氏名を隠した証券を手元のAIサービスに貼って保障の一覧を作らせます。担当の比較表と突き合わせ、単位の取り違えと、書かれていない条件の書き足しが無いかを最優先で見ます。
3週目:顧客への説明と処理する場所を決める
1回目の面談で顧客に何を伝えるかの文面と、国外のリージョンで処理してよいかを、代理店の責任者と決めます。 保険会社との委託契約で確かめる点があれば、ここで問い合わせます。
4週目:受付フォルダから一覧までをつなぐ
受付フォルダを起点に Form Parser と構造化出力を呼び、相談ごとの保障の一覧をスプレッドシートに書き出すところまで作ります。この時点では印を付けず、当てはめと単位だけを見ます。
2か月目: 月額への換算、家族単位の比較表、重複と不足の印を足します。inferred の当てはめを担当が直した結果を、業務課が毎週対応表に足します。3か月目以降: 論点の下書きを足し、1通15分が何分になったかを実測します。inferred と unmapped の割合が下がり、担当が単位と印の行だけを見れば済むようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
Form Parser がOCRのテキストに加えてキーと値のペア(項目とチェックボックス)・表・11種類の一般的なエンティティを抽出し、200以上の言語に対応すること。日本語(ja)が手書きに対応する言語として示されていること。推奨の版が pretrained-form-parser-v2.0-2022-11-10 であること。オンラインの処理が15ページ、バッチが100ページまでであること。対応リージョンに日本が無いこと | Google Cloud: Processor list | 2026-10-09 |
| 値が空のキーと値のペアは確実には読み取れないこと。ラジオボタンに対応せず、キーの無いチェックボックスがありうること。言語によってはキーと値のペアの質がラテン文字の言語より下がりうること | Google Cloud: Form Parser | 2026-10-09 |
formFields の fieldName/fieldValue、tables の headerRows/bodyRows、チェックボックスの filled_checkbox/unfilled_checkbox、textAnchor による全文のテキストへの対応 | Google Cloud: Handle the processing response | 2026-10-09 |
| 対応するファイル形式(PDF、TIFF、JPEG、PNG など)、JPEG 圧縮の TIFF に対応しないこと、スキャンは最低200dpi・300dpi以上が良い結果を出しやすいこと | Google Cloud: Supported files | 2026-10-09 |
マルチリージョン(us・eu)と単一リージョン(asia-southeast1 など)の一覧 | Google Cloud: Regions | 2026-10-09 |
構造化出力が output_config.format に type: "json_schema" を渡す形であること、オブジェクトに additionalProperties: false が要ること | Claude Docs: Structured outputs | 2026-10-09 |
| 保険業法第300条第1項第4号(不利益となるべき事実を告げずに既契約を消滅させて新たな申込みをさせる行為)・第6号(他の保険契約と比較して誤解させるおそれのあることを告げ又は表示する行為)、第294条の2(顧客の意向の把握等) | e-Gov 法令API: 保険業法 | 2026-10-09 |
比較表の見せ方と乗換えの説明の仕方は、所属する保険会社の募集の手引きと代理店の決まりに従ってください。 本記事は公式ページと法令の条文で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1222)についてのご相談はこちらから。
