マンション管理会社が管理員の手書きの修繕依頼票を Google Document AI で読み取り、物件・場所・内容・緊急度を修繕の台帳に登録して、同じ場所の未完了の依頼と書き漏れを拾う
管理員が手書きした修繕依頼票を読み取り、物件・場所・内容・緊急度を修繕の台帳に登録します。同じ場所で完了していない依頼に結び付け、書き漏れは本社の担当に回します。
- AIサービス
- AWS Textract/Azure AI/Google Document AI
- 連携・自動化
- Google Apps Script/Python
- 対象業界
- 不動産/建設
- 対象部門
- 総務
- 対象業務
- データ入力・転記/台帳・マスタ管理
- 主な課題
- 入力作業が多い/情報が見つからない/期限・対応漏れが起きる
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 入力漏れ削減/対応スピード向上/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 管理員が依頼票を手書きし、管理事務室の複合機から本社の受信のフォルダへ送る
- 本社の担当が受信のフォルダを開き、届いた依頼票を1枚ずつ見る
- 物件名から台帳の物件を呼び出し、部位・内容・緊急度・発見日を打ち込む
- 同じ物件の未完了の依頼を台帳で探し、同じ不具合でないかを確かめる
- 読めない字や書き漏れがあれば、管理員に電話で確かめる
- 登録した依頼を、物件の担当(フロント)に知らせ、フロントが業者を手配する
- 人管理員が依頼票を手書きし、管理事務室の複合機から送る
- 自動受信をきっかけに処理が動き、画像の品質を確かめる
- 自動Form Parser が、キーと値のペア、部位と緊急度のチェック欄、自由欄の文字と、それぞれの信頼度を返す
- 自動項目名の辞書で、読み取った項目を台帳の項目にそろえる。様式にある項目のうち返ってこなかったものを洗い出す
- 自動物件名と号棟を管理物件の一覧と照らし、同じ物件・同じ部位の未完了の依頼を台帳から探す
- 自動依頼ごとに、`new`(新しい依頼)/`linked`(未完了の依頼に結び付く候補)/`needs_review`(確かめる欄がある)を付け、台帳の登録の下書きを作る
- 自動緊急度が「至急」のものと「今週中」のものを、物件の担当(フロント)に知らせる
- 人本社の担当が、`linked` と `needs_review` の依頼を依頼票の画像と並べて確かめ、台帳に登録する
- 人フロントが登録された依頼を見て、業者を手配する
各工程の詳しい説明を読む
- 管理員が依頼票を手書きし、管理事務室の複合機から本社の受信のフォルダへ送る
- 本社の担当が受信のフォルダを開き、届いた依頼票を1枚ずつ見る
- 物件名から台帳の物件を呼び出し、部位・内容・緊急度・発見日を打ち込む
- 同じ物件の未完了の依頼を台帳で探し、同じ不具合でないかを確かめる
- 読めない字や書き漏れがあれば、管理員に電話で確かめる
- 登録した依頼を、物件の担当(フロント)に知らせ、フロントが業者を手配する
(a)同じ不具合が二重に登録される。 4番目の確認は、物件の未完了の依頼が多いほど時間がかかります。急ぐ日は省かれ、同じ照明の依頼が別の日付で2件並びます。 フロントが両方を業者に送ると、業者が同じ場所に二度来ることになります。
(b)登録が遅れるほど、手配が遅れる。 依頼票は毎日届きますが、担当は他の事務と兼ねています。月曜に届いた「今週中」の依頼が、水曜に登録されることがあり、その分だけ業者の手配が遅れます。
(c)居住者からの申し出が、誰からだったか分からなくなる。 部屋番号の欄が空いたまま届くと、業者が作業の前に居住者に声をかけられません。 管理員に電話して聞き直すことになります。
(d)未完了の依頼が埋もれる。 業者に送ったまま完了の報告が無い依頼が、台帳の中で新しい依頼に押し流されます。 管理員が同じ不具合を再び書いてきて、初めて止まっていたことに気づきます。
- 【人】 管理員が依頼票を手書きし、管理事務室の複合機から送る
- 【自動】 受信をきっかけに処理が動き、画像の品質を確かめる
- 【自動】 Form Parser が、キーと値のペア、部位と緊急度のチェック欄、自由欄の文字と、それぞれの信頼度を返す
- 【自動】 項目名の辞書で、読み取った項目を台帳の項目にそろえる。様式にある項目のうち返ってこなかったものを洗い出す
- 【自動】 物件名と号棟を管理物件の一覧と照らし、同じ物件・同じ部位の未完了の依頼を台帳から探す
- 【自動】 依頼ごとに、
new(新しい依頼)/linked(未完了の依頼に結び付く候補)/needs_review(確かめる欄がある)を付け、台帳の登録の下書きを作る - 【自動】 緊急度が「至急」のものと「今週中」のものを、物件の担当(フロント)に知らせる
- 【人】 本社の担当が、
linkedとneeds_reviewの依頼を依頼票の画像と並べて確かめ、台帳に登録する - 【人】 フロントが登録された依頼を見て、業者を手配する
5番目で未完了の依頼を探すのが、この設計の分かれ目です。 読み取りだけを自動にしても、照合を人に残せば、第3章の(a)は急ぐ日に同じように起きます。 照合の候補を機械が並べ、結び付けるかを人が決める形にします。
7番目の通知は、台帳への登録を待ちません。 担当の確認の前でも、緊急度の欄が「至急」「今週中」と読めた依頼は、フロントに先に知らせます。 読み違いで通知が出ても、フロントが依頼票の画像を見れば分かるからです。
02今回想定するシステム構成
修繕依頼票(紙・手書き。会社の様式) │ 管理事務室の複合機から送信(PDF) ▼【トリガー】Cloud Storage のバケットへの保存 Python(Cloud Run functions) ├──▶ 画像の品質の確認 ▼ Google Document AI(Form Parser) │ キーと値のペア(formFields)、チェック欄(filled_checkbox/unfilled_checkbox) │ 全文の文字、要素ごとの信頼度 ▼ Python ── 項目名の辞書、様式の項目の一覧との照合 │ 管理物件の一覧、修繕の台帳の未完了の依頼との照合 ▼ 判定(new / linked / needs_review) 緊急度の通知 ▼ 【本社の担当が linked と needs_review を確かめて台帳へ登録】 ▼ 修繕の台帳 → フロントが業者を手配
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | Google Document AI(Form Parser) | Azure AI Document Intelligence(レイアウト モデル)。AWS Textract は日本語の手書きを読めないため対象外 |
| 連携 | Python(Cloud Run functions。保存を起点に読み取りを呼び、照合と下書きを作る) | Google Apps Script |
| 差異計算 | Python(様式の項目との照合、未完了の依頼との照合) | Google Apps Script |
| 保管 | Cloud Storage(依頼票の画像と読み取りの結果) | 社内のファイルサーバー |
| 通知 | 社内のメール・チャット | 管理業務のシステムの通知 |
修繕の台帳は新しく足すものではありません。 この構成は登録の下書きと照合の候補までを作り、台帳への登録は本社の担当の操作で行います。
土台は Document AI の Form Parser です。 公式の説明では、Form Parser はキーと値のペア、表、チェック欄(選択マーク)を取り出し、チェック欄は画像や PDF から取り出してキーと値のペアとして返すとされています。依頼票の「部位」「緊急度」のチェック欄と、「物件名」「発見日」の記入欄は、この形で取れます。
日本語の手書きにも対応しています。 プロセッサの一覧の Form Parser の言語の表では、日本語(ja)に手書きに対応の印が付いています。管理員の手書きの物件名や内容を読む前提で組めます。
Form Parser は学習済みで、追加の学習はできません。 公式の説明では、事前に学習されていて追加の学習はできず、一部の言語ではキーと値のペアの品質がラテン文字の言語より下がる場合があるとされています。だから、読み取った項目をそのまま信じず、辞書と一覧で確かめる設計にします。
処理する場所に、日本のリージョンはありません。 プロセッサの一覧では、Form Parser の対応地域は us、eu のほか、asia-southeast1(シンガポール)や asia-south1 などで、日本は含まれていません。 第13章で扱います。
03どうやって実装するのか
処理の起点を決める
管理事務室の複合機から送られた PDF が、Cloud Storage のバケットに保存されたことを起点にします。 複合機の送信先を本社の受信の仕組みにし、そこからバケットに置きます。保存されると Cloud Run functions の処理が動き、1枚ずつ読み取りに回します。
夜にまとめず、届くたびに動かします。 「至急」「今週中」の依頼をフロントに知らせる通知は、届いてから数分のうちに出すことに意味があります。 まとめて動かすと、第3章の(b)の遅れが残ります。
処理が終わった PDF は処理済みのバケットへ移します。移すのは、読み取りと照合と下書きの作成が終わったときだけにします。 受信のバケットに残っている数が、未処理の数になります。
送り忘れも拾います。 物件ごとの月の依頼票の数を前の月と比べ、急に0枚になった物件を月の半ばに一覧にします。管理員の交代や複合機の故障で、送れていないことがあります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 依頼票の PDF | 1枚1ファイル。受信した日時と送信元の物件 | Cloud Storage のバケット |
| 読み取り結果 | キーと値のペア、チェック欄の状態、全文、要素ごとの信頼度、画像の品質の点数 | Google Document AI(Form Parser) |
| 項目名の辞書 | 依頼票の項目名と、台帳の項目の対応(表記ゆれを含む) | 本社の担当が作る表 |
| 様式の項目の一覧 | 依頼票に必ずある項目と、値が要る項目 | 本社の担当が作る表 |
| 管理物件の一覧 | 物件のコード、物件名、号棟、別名、担当のフロント | 管理業務のシステムの書き出し |
| 修繕の台帳 | 物件、部位、内容、登録日、状態(未手配/手配済み/完了) | 管理業務のシステムの書き出し |
質を決めるのは、項目名の辞書と様式の項目の一覧です。 Form Parser が返す項目名は、依頼票に印刷された文字そのものです。公式の説明では、キーと値のペアのキーは文書に書かれたキーの文字そのものとされています。読み取りの具合で「発見日」が「発見 日」になれば、辞書で引けません。 表記ゆれを辞書に足していきます。
管理物件の一覧には、物件の別名を持たせます。 管理員は「〇〇マンション」を「〇〇M」や号棟だけで書くことがあります。正式名だけで照らすと、物件が特定できない依頼が増えます。
データの取得方法を決める
読み取りは、Cloud Run functions から Document AI の API で Form Parser のプロセッサを呼びます。1枚ずつのオンラインの処理で足ります。 公式の一覧では、Form Parser のオンラインの処理は1回15ページまで、バッチの処理は100ページまでとされています。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 記入欄の値 | pages[].formFields[] の fieldName と fieldValue | 物件名・号棟・発見日・部屋番号 |
| チェック欄の状態 | fieldValue の valueType(filled_checkbox/unfilled_checkbox) | 部位と緊急度、写真の有無 |
| 自由欄の文字 | 全文(text)と、要素ごとの位置 | 不具合の内容 |
| 信頼度 | 要素ごとの layout の信頼度 | 確かめる欄の絞り込み |
| 画像の品質 | 画像の品質の点数(有効にしたとき) | 読み直しを頼むかの判断 |
チェック欄は valueType で見ます。 公式の説明では、チェックの入った欄は filled_checkbox、入っていない欄は unfilled_checkbox として、pages > formFields > fieldValue > valueType に入るとされています。緊急度の3つの欄のうち、filled_checkbox がどれかを数えます。
自由欄は、キーと値のペアに頼りません。 不具合の内容は何行にもわたって書かれ、キーと値の組として取れるとは限りません。「内容」の項目名の位置から下、「緊急度」の項目名の位置より上にある文字を、全文から位置で切り出します。
管理物件の一覧と修繕の台帳は、管理業務のシステムの毎晩の書き出しを Python で読みます。照合の順は、物件が先、部位が後です。
AIへ渡す前に整形する
- 画像の品質の確認 … 公式の説明では、画像の品質の点数を返すよう有効にでき、0から1の値で1が最良とされています。点数が低い依頼票は、読み取りの結果を使わずに管理員に送り直しを頼みます
- ページの数の確認 … 依頼票は1枚1ページです。2ページ以上なら、裏面のメモか別の書類が混ざっています
- 送信元の確認 … 複合機の送信元から物件を引き、依頼票の物件名と合うかを後で照らすために持っておきます
- 重複の確認 … 同じ送信元から同じ内容の PDF が短い間に2回届いたら、送り直しとみなし、二重に読み取りません
1番目は、管理事務室の複合機の事情から来ています。 送信の画質が低い設定のまま使われていることがあり、細い字の管理員の依頼票は、品質の点数がまとまって下がります。 点数で分けておけば、読み違いを台帳に入れる前に止められます。
3番目の送信元は、物件の特定の物差しになります。 依頼票の物件名が読めなくても、どの管理事務室から送られたかで物件の候補が絞れます。 ただし、管理員が近くの別の物件を兼ねている場合があるので、送信元だけで決めません。
AIに処理させる
させるのは、依頼票の記入欄・チェック欄・自由欄を読み取り、信頼度を返すことだけです。 項目のそろえ方と照合は、Python が辞書と規則で行います。
| 読むもの | 読み方 | 決められないときの扱い |
|---|---|---|
| 物件名・号棟 | 記入欄の値を文字列のまま | 管理物件の一覧で引けなければ needs_review |
| 発見日 | 記入欄の値を文字列のまま | 日付として読めなければ needs_review |
| 部位 | 8つのチェック欄のどれが filled_checkbox か | 0個、または2個以上なら needs_review |
| 不具合の内容 | 自由欄の文字をそのまま | 言い換えない。 信頼度が低い行に印を付ける |
| 緊急度 | 3つのチェック欄のどれが filled_checkbox か | 0個なら missing、2個以上なら needs_review |
| 部屋番号 | 記入欄の値 | 「居住者からの申し出」に印があるのに無ければ missing |
欠けた項目の扱いが、この構成でいちばん大事な決めごとです。 公式の説明では、Form Parser は値の書かれていないキーと値のペアを確実には取り出せないとされています。部屋番号の欄が空のとき、結果に「部屋番号」の項目そのものが出てこないことがあります。 そこで、様式の項目の一覧と照らし、返ってこなかった項目は「空欄だった」と決めつけず、not_returned として画像で確かめる対象にします。
Python が行う照合は、次の3つです。
| 照合 | 条件 | 結果 |
|---|---|---|
| 物件 | 物件名・号棟が管理物件の一覧(別名を含む)で1つに決まる | 物件のコードを付ける。決まらなければ needs_review |
| 未完了の依頼 | 同じ物件・同じ部位で、状態が「完了」でない依頼がある | linked の候補として並べる |
| 送信元 | 依頼票の物件と、送信元の物件が違う | needs_review(兼務か、送り間違い) |
linked は「同じ不具合」の判定ではなく「同じかもしれない」の候補です。 同じ廊下でも、照明と手すりは別の依頼です。部位が同じで内容の言葉も近いものを上に並べますが、結び付けるかは担当が内容を読んで決めます。
| させないこと | 理由 |
|---|---|
| 不具合の内容の言い換え・要約 | 業者が現場で見るものの手がかりが消える |
| 返ってこなかった項目を「空欄」と決める | 読み取れなかっただけのことがある |
| 緊急度を内容から推し量って付ける | 緊急度は現場を見た管理員が付けるもの |
| 未完了の依頼に自動で結び付ける | 同じ場所でも別の不具合のことがある |
| 修繕の要否や業者の選び方の判断 | フロントと管理組合が決める |
指示内容を固定する
この構成では生成AIを使わず、Form Parser は追加の学習ができないため、プロンプトの代わりに項目名の辞書と、様式の項目の一覧の作り方を示します。
【項目名の辞書(例)】
台帳の項目 依頼票の項目名(表記ゆれを含む)
property_name 物件名 / 物件名称 / マンション名
building_no 号棟 / 棟
found_date 発見日 / 発見 日 / 発見年月日
reporter_type 申出者 / 申し出
room_no 部屋番号 / 号室 / 居室番号
photo 写真 / 写真の有無
【様式の項目の一覧】
項目 値が要るか 空欄のときの扱い
property_name 必須 needs_review
found_date 必須 needs_review
parts(8欄) 1つ必須 needs_review
urgency(3欄) 1つ必須 missing
room_no 申出者が居住者のときだけ必須 missing
photo 任意 そのまま
【返ってこなかった項目の扱い】
- 様式の項目の一覧にあるのに formFields に無い項目は not_returned とする
- not_returned は空欄とみなさず、画像の該当の位置を担当が見る
- 同じ項目の not_returned が続くなら、辞書の表記ゆれを疑う
辞書は、最初の1か月で育てます。 最初は様式の項目名だけを入れ、辞書で引けなかった項目名を毎日書き出して、表記ゆれを足していきます。 公式の説明では、キーと値のペアのキーは文書に書かれた文字そのものなので、読み取りの揺れがそのまま項目名の揺れになります。
not_returned を空欄と分けるのは、公式の制限への対処です。 Form Parser の公式ページでは、空のフォームのような値の無いキーと値のペアは、確実には取り出されないとされています。項目名が見つからないという結果は、「書かれていない」の証拠になりません。
判定の基準値は、処理の側の設定として持ちます。 初期値は、画像の品質の点数の下限0.5、記入欄の信頼度の下限0.80とし、最初の1か月で、担当が直した欄の分布を見て見直します。
出力形式を固定する
依頼票1枚ごとに、次の形のJSONを作ります。
{
"request_id": "R-20261015-0412",
"source_property": "P0371",
"quality_score": 0.82,
"property": { "read": "", "code": "P0371", "check": "ok | needs_review" },
"found_date": { "value": "", "conf": 0, "check": "ok | needs_review" },
"parts": ["電気・照明"],
"description": "",
"urgency": { "value": "今週中", "check": "ok | missing | needs_review" },
"reporter": { "type": "居住者", "room_no": "", "check": "ok | missing | not_returned" },
"photo": true,
"not_returned": ["room_no"],
"linked_candidates": [
{ "ticket": "T-2026-08812", "parts": "電気・照明", "registered": "2026-10-02",
"status": "手配済み", "description": "" }
],
"verdict": "new | linked | needs_review"
}
1つ目の理由は、not_returned を独立した項目にすることです。 返ってこなかった項目の一覧を、missing と混ぜずに持ちます。担当は、not_returned の項目だけを画像の位置で見れば済みます。
2つ目は、linked_candidates に台帳の側の内容を並べることです。 候補の依頼の内容と状態が並んでいれば、担当は台帳を開かずに、同じ不具合かを判断できます。
3つ目は、verdict を規則で決めることです。 needs_review の欄が1つでもあれば needs_review、候補があれば linked、どちらも無ければ new。判定の規則を変えても、読み取りの結果はそのまま使えます。
台帳の登録の下書きには、物件のコード、部位、発見日、内容(原文)、緊急度、申出者と部屋番号、写真の有無、結び付けた依頼の番号を並べます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 複合機 → Cloud Storage | 本社の受信の仕組みからバケットに置く | 1枚1ファイルの PDF |
| Cloud Run functions | Cloud Storage への保存を起点に動く | 読み取りの呼び出し、照合、下書きの作成 |
| Google Document AI | Form Parser のプロセッサ | 読み取り |
| 管理物件の一覧・修繕の台帳 | 毎晩の書き出しを読む | 照合の元 |
| 修繕の台帳 | 登録の下書きを取り込み用のファイルで渡す | 担当が確かめて登録する |
| 社内のメール・チャット | 通知 | 「至急」「今週中」をフロントへ |
台帳への登録は、担当が確かめてから行います。 未完了の依頼への結び付けを機械が決めると、別の不具合が1つの依頼にまとめられ、片方の手配が漏れます。
通知は、読み取った緊急度と依頼票の画像へのリンクだけを送ります。 内容の文や居住者の部屋番号は送らず、フロントが画像を開いて確かめます。
人が確認する
本社の担当が見るのは、linked と needs_review の依頼だけです。 new の依頼は、物件と部位と緊急度を一覧で流し見て登録します。
needs_reviewのうち、物件が決まらないものを先に見る … 送信元と画像を見て物件を決めます。決まらなければ管理員に電話しますnot_returnedとmissingの項目を、画像の位置で見る … 書かれていれば補い、本当に空欄なら管理員に確かめますlinkedの候補を読む … 候補の依頼の内容と状態を見て、同じ不具合なら結び付け、別なら新しい依頼にします- 緊急度が付いていない依頼を確かめる … 内容から推し量らず、管理員に聞きます
- 直した内容を記録する … どの欄を、何から何に直したか、結び付けたかを残します
3番目で、手配済みのまま日が経っている候補が出たら、フロントに知らせます。 管理員が同じ不具合を再び書いてきたということは、業者の対応が止まっている可能性があります。 第3章の(d)は、ここで拾えます。
目標は、900枚をならして1枚1.2分です。 linked と needs_review が3割前後という想定で、それより多い日は、辞書の表記ゆれか、複合機の送信の画質を疑います。
例外に対処する
| 起きること | 対応 |
|---|---|
| 画像の品質の点数が低い | 読み取りの結果を使わず、管理員に送り直しを頼む |
| 項目名が辞書で引けない | needs_review。引けなかった項目名を書き出し、辞書に足す |
| 物件名が管理物件の一覧に無い | 別名の書き方か、受託の始まった新しい物件。一覧を直す |
| 依頼票が2ページ以上 | 裏面のメモか、別の書類の混在。担当が分ける |
| 至急の依頼が依頼票だけで届いた | 電話が先の決まりの抜け。フロントに即時に知らせ、管理員に決まりを伝える |
| 古い様式の依頼票 | 項目名が違うので not_returned が増える。辞書に旧様式の項目名を足す |
| Document AI が応答しない | PDF を受信のバケットに残す。処理済みへ移すのは成功したときだけ |
| 同じ依頼票が二度届く | 送信元と内容で照合し、二重に下書きを作らない |
上から2行が大半を占めます。 どちらも AI の精度の問題ではなく、送信の設定と辞書の整備の問題です。 直すほうが早く効きます。
記録を残す
- 元の依頼票の PDF と、受信した日時・送信元の物件
- Document AI が返した JSON の全文と、プロセッサのバージョン
- 項目のそろえ方の結果(辞書で引けた項目、
not_returned)と、そのとき使った辞書の版 - 照合の結果(物件のコード、
linked_candidates)と、担当が結び付けたか、新しい依頼にしたか - 通知を出した日時と、通知した相手
- 担当が直した記録 … どの欄を、何から何に直したか
3つ目で辞書の版を残すのは、辞書が毎週のように育つためです。 ある日の not_returned が辞書の不足だったのか、読み取りの問題だったのかを、後から分けられるようにします。
04実装レベルの3段階
最小構成では、依頼票の流れは変わりません。 この依頼票が Form Parser で読めるかと、空欄の項目がどう返るかを確かめる段階です。 半自動化で、1枚4分が2.5分程度になります。 読み取りと項目のそろえ方は自動になりますが、物件の呼び出しと未完了の依頼との照合が手作業で残ります。本格構成で照合と通知が自動になり、1.2分になるのがこの記事の想定です。 半自動化の一覧を1か月見ると、辞書がほぼ育ちます。 引けなかった項目名が出なくなってから照合を足すほうが、needs_review の数が落ち着いた状態で照合の候補の精度を見られます。
05工数削減シミュレーション
導入後 900件 × 1.2分 ÷ 60 = 18 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 分譲マンションの管理を多数受託し、各物件の管理員が紙の修繕依頼票を書いて管理事務室の複合機から本社へ送り、本社の担当が修繕の台帳に打ち直している管理会社。月に数百枚の依頼票が届き、同じ場所の依頼が二重に登録されたり、未完了の依頼が埋もれたりしている場合。依頼票の様式が会社で決まっている場合。
- 管理員がスマートフォンのアプリで修繕の依頼を直接登録しており、紙の依頼票が無い場合。受託している物件が数棟で、打ち直しが負担になっていない場合。依頼票の様式が物件ごとにばらばらな場合(先に様式をそろえる必要があります)。なお、修繕を行うか、どの業者に頼むか、費用を管理組合に諮るかの判断は、この構成では代替できません。
07最小構成で試す方法
- 先月届いた依頼票から50枚を選ぶ(うち10枚は、居住者からの申し出で部屋番号の欄があるものを入れる)
- その50枚の、台帳に登録した内容を書き出しておく(これを正解とする)
- Google Cloud のコンソールで Form Parser のプロセッサを作り、50枚を1枚ずつ読み取らせる
- 返ってきたキーと値のペアとチェック欄を書き出し、正解と突き合わせる
- 部屋番号が空欄の依頼票で、項目そのものが返ってこないかを見る
5番目を必ず確かめてください。 空欄の扱いはこの構成の設計を左右します。項目が消えるなら、様式の項目の一覧との照合が要ります。
| 出てきた内容 | 判断 |
|---|---|
| 記入欄とチェック欄がほぼ正しく取れた | 辞書と照合の仕組みを作る段階に進む |
| 項目名が揺れて、辞書で引けないものが多い | 辞書に表記ゆれを足す。読み取りは使える |
| 空欄の項目が返ってこない | 想定どおり。not_returned の仕組みを作る |
| 手書きの物件名がほとんど読めない | 送信の画質が先。 複合機の設定を見直す |
3行目は失敗ではありません。 公式の説明どおりの動きで、この構成はそれを前提に組んであります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 空欄の項目が返ってこず、空欄と判定できない | 様式の項目の一覧と照らし、not_returned として分ける |
| 返ってこなかった項目を「空欄」として差し戻す | 空欄とみなさず、画像で確かめる |
| 項目名が揺れて辞書で引けない | 引けなかった項目名を毎日書き出して辞書を育てる |
| 物件名の略称で物件が決まらない | 管理物件の一覧に別名を持たせる |
| 未完了の依頼に自動で結び付けたくなる | 候補を並べるだけにする。 同じ場所でも別の不具合がある |
| 緊急度を内容から推し量りたくなる | 緊急度は管理員が付けるもの。空欄なら聞く |
| 送信の画質が低く、字が潰れる | 画像の品質の点数で分け、複合機の設定を見直す |
| 不具合の内容を整えて台帳に載せたくなる | 原文のまま。 業者が現場で見る手がかりを残す |
| 日本のリージョンで処理できない | 国外での処理を、社内の決まりと管理委託の契約に照らして確かめる |
上の2行が、この構成の失敗のほとんどです。 Form Parser の空欄の扱いを知らずに組むと、「書かれていない」と判定した依頼票を管理員に差し戻し、実は書いてあったということが起きます。管理員からの信頼は、これで失われます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 物件名と号棟、居住者の部屋番号、不具合の内容、管理員の名前です。居住者からの申し出の依頼票には、部屋番号と申し出の中身が並びます。 内容に居住者どうしの事情が書かれていることもあります。
- 処理する場所を確かめる … Form Parser の対応地域に日本は含まれていません。
asia-southeast1などで処理されることを、社内の個人情報の取り扱いの決まりと、管理組合との管理委託の契約に照らして確かめます - 通知に部屋番号と内容を載せない … 通知は緊急度と画像へのリンクだけにし、閲覧の権限のある人だけが画像を開けるようにします
- 画像と JSON の閲覧を限る … Cloud Storage の閲覧は、本社の担当とフロントに限ります
- 保存の期間を決める … 依頼票の画像は修繕の経緯の記録として残す価値がありますが、部屋番号の載った画像をいつまで残すかを決めます
- 自動で業者に送らない … 台帳への登録と業者の手配は人が行います。読み違いのまま業者に連絡が飛ぶ経路を作りません
- 管理員への差し戻しを丁寧にする …
not_returnedを確かめずに差し戻さない。管理員は高齢の方も多く、差し戻しが続くと依頼票を書かなくなります
誤りが起きた場合のリスクは、同じ不具合を二重に手配することと、依頼を登録しないまま放置することの2つです。 前者は未完了の依頼との照合で、後者は届くたびの処理と緊急度の通知と送り忘れの検出で防ぎます。どちらも、居住者の暮らしに直接ひびくので、確かめる工程を省かない設計にしています。
10まず何から始めるか
1週目:様式の項目の一覧と辞書を作る
依頼票の様式を見て、項目名、値が要るか、空欄のときの扱いを表にします。台帳の項目との対応の辞書を作り、管理物件の一覧に別名の列を足します。
2週目:50枚で試す
先月の依頼票から50枚を選び、Form Parser に読ませて正解と突き合わせます。部屋番号が空欄の依頼票で項目が返ってこないかを、最優先で見ます。
3週目:受信から一覧までをつなぐ
Cloud Storage への保存を起点に Form Parser を呼び、辞書で台帳の項目にそろえて一覧に書き出すところまで作ります。担当は今までどおり打ち込みながら、一覧と見比べます。辞書で引けなかった項目名を毎日書き出します。
4週目:処理の場所を決める
Form Parser の処理の地域を決め、社内の決まりと管理委託の契約に照らして確かめます。 必要なら、管理組合への説明の要否も確かめます。
2か月目: 管理物件の一覧と未完了の依頼との照合を足し、緊急度の通知を出します。3か月目以降: 登録の下書きを足し、1枚4分が何分になったかを実測します。結び付けた件数と not_returned の件数を毎月見て、辞書と照合を見直す流れができた時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
Form Parser の言語の表で日本語(ja)が手書きに対応していること。オンラインの処理が1回15ページ、バッチの処理が100ページまでであること。対応地域が us、eu、asia-south1、asia-southeast1、australia-southeast1、europe-west2、europe-west3、northamerica-northeast1 で日本が含まれないこと | Google Cloud: Processor list | 2026-10-15 |
| Form Parser がキーと値のペア、表、チェック欄(選択マーク)を取り出し、チェック欄をキーと値のペアとして返すこと。事前に学習されていて追加の学習ができないこと。一部の言語でキーと値のペアの品質がラテン文字の言語より下がる場合があること。値の無いキーと値のペアを確実には取り出せないこと | Google Cloud: Form Parser | 2026-10-15 |
キーと値のペアが pages[].formFields[] の fieldName と fieldValue に入り、キーが文書に書かれた文字そのものであること。チェック欄の状態が fieldValue の valueType(filled_checkbox/unfilled_checkbox)に入ること。要素ごとの layout に信頼度があること。画像の品質の点数が0から1で1が最良であること | Google Cloud: Handle the processing response | 2026-10-15 |
修繕依頼票の様式、緊急度の決め方、居住者の情報の扱いは、各社の決まりと管理委託の契約に従ってください。 本記事は Google Cloud の公式ドキュメントで確認できた範囲の仕様だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1705)についてのご相談はこちらから。
