神社の社務所で受け付けた手書きのご祈祷の申込書を読み取り、願意・氏名・住所・人数を受付台帳とお札の送付リストにそろえる
社務所で受け付けたご祈祷の申込書を、閉門後にまとめてスキャンして読み取ります。願意・氏名とふりがな・住所・人数・お札の受け取り方を受付台帳の項目にそろえ、郵送を希望した分はお札の送付リストにします。
- 生成AI
- ChatGPT/Claude
- AIサービス
- Azure AI/Google Document AI
- 連携・自動化
- Google Apps Script/Python
- 対象業界
- その他
- 対象部門
- 総務
- 対象業務
- データ入力・転記/台帳・マスタ管理
- 主な課題
- 人手が足りない/入力作業が多い/確認ミスが多い
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 入力漏れ削減/品質標準化/工数削減
- 導入難易度
- ★☆☆☆☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 参拝者が窓口で申込書を書き、職員が初穂料を受けて申込書を神職に渡す
- 神職が申込書を見て、祝詞に読み上げる氏名・住所を確かめ、ご祈祷を行う
- ご祈祷の済んだ申込書を、社務所の箱に1日分ためる
- 閉門後、職員が申込書を1枚ずつ見て、受付台帳に願意・氏名・ふりがな・住所・人数を打ち込む
- 郵送を希望した申込書を抜き出し、送付リストに住所と宛名を打ち込み、宛名ラベルを印刷する
- 崇敬者の名簿を開き、以前にも申し込んだ人かを探して、住所が変わっていれば直す
- 申込書の束を月ごとに綴じて保管する
- 人窓口での受付とご祈祷は、いまと同じに行う
- 人閉門後、1日分の申込書を複合機でまとめてスキャンし、Google ドライブの受付フォルダに保存する
- 自動Apps Script が1枚ずつのファイルに分け、Form Parser に送る
- 自動Form Parser が、見出しの欄(氏名・住所など)、チェック欄の状態、読み取りの信頼度を返す
- 自動生成AIが、読み取った欄を受付台帳の項目にそろえる。字は書き換えない
- 自動郵便番号と住所を郵便番号のデータと照らし、人数と連名の数を比べ、崇敬者の名簿で以前の申込を探す
- 自動確認の要る欄に印を付けて、確認用のシートに並べる
- 人職員が、印の付いた申込書だけを画像と並べて直す
- 人確認の済んだ行を受付台帳に移し、郵送の分を送付リストに移して宛名ラベルを印刷する
各工程の詳しい説明を読む
- 参拝者が窓口で申込書を書き、職員が初穂料を受けて申込書を神職に渡す
- 神職が申込書を見て、祝詞に読み上げる氏名・住所を確かめ、ご祈祷を行う
- ご祈祷の済んだ申込書を、社務所の箱に1日分ためる
- 閉門後、職員が申込書を1枚ずつ見て、受付台帳に願意・氏名・ふりがな・住所・人数を打ち込む
- 郵送を希望した申込書を抜き出し、送付リストに住所と宛名を打ち込み、宛名ラベルを印刷する
- 崇敬者の名簿を開き、以前にも申し込んだ人かを探して、住所が変わっていれば直す
- 申込書の束を月ごとに綴じて保管する
(a)閉門後の打ち直しが毎日ある。 年初や秋の土日は1日に数十枚がたまり、打ち込みが翌日に回ると、郵送のお札の発送が1日ずつ遅れます。
(b)名前の字とふりがなを写し間違える。 申込書の氏名は、旧字体や異体字で書かれることがあります。急いで打ち込むと、入力しやすい字に置き換わります。 ふりがなの欄が空いている申込書も多く、職員が「たぶんこう読む」で台帳に入れたものが、翌年の案内状の宛名の読みになります。
(c)郵送の宛名を、台帳と送付リストに二度打っている。 同じ住所を受付台帳と送付リストの両方に打ち込み、片方だけ直して食い違うことがあります。 郵便番号と住所が合っていないことに気づくのは、お札が戻ってきたときです。
(d)連名と人数の数え違い。 家内安全で家族5人の連名を書いた申込書でも、人数の欄に「1」と書かれていることがあります。人数は神饌やお下がりの用意の数にもかかわるので、合わないものは職員が見て決めています。
- 【人】 窓口での受付とご祈祷は、いまと同じに行う
- 【人】 閉門後、1日分の申込書を複合機でまとめてスキャンし、Google ドライブの受付フォルダに保存する
- 【自動】 Apps Script が1枚ずつのファイルに分け、Form Parser に送る
- 【自動】 Form Parser が、見出しの欄(氏名・住所など)、チェック欄の状態、読み取りの信頼度を返す
- 【自動】 生成AIが、読み取った欄を受付台帳の項目にそろえる。字は書き換えない
- 【自動】 郵便番号と住所を郵便番号のデータと照らし、人数と連名の数を比べ、崇敬者の名簿で以前の申込を探す
- 【自動】 確認の要る欄に印を付けて、確認用のシートに並べる
- 【人】 職員が、印の付いた申込書だけを画像と並べて直す
- 【人】 確認の済んだ行を受付台帳に移し、郵送の分を送付リストに移して宛名ラベルを印刷する
8番目で人が見るのは、印の付いた欄だけです。 異体字の疑い、ふりがなの空欄、願意が取れなかったもの、郵便番号と住所の食い違い、人数と連名の数の違いに印が付き、それ以外の行は一覧で流し見て終わります。
9番目の台帳への移しは、人が行います。 受付台帳は翌年の案内状の名簿になるので、確かめていない行が入ると、誤った字の宛名が何年も残ります。 確認用のシートと台帳を分け、移す操作を人の手に残します。
02今回想定するシステム構成
ご祈祷の申込書(手書き。窓口と郵送) │ 閉門後に複合機でまとめてスキャン ▼【トリガー】受付フォルダへの保存(Google ドライブ) Google Apps Script(つなぎ) ├──▶ 1枚1ファイルに分ける・向きと解像度の確認 ▼ Google Document AI(Form Parser) │ 見出しの欄、チェック欄の状態、表、読み取りの信頼度 ▼ Claude API(構造化出力)── 欄を台帳の項目にそろえる(字は書き換えない) ▼ Apps Script ── 郵便番号と住所の照合、人数と連名の数、崇敬者の名簿の検索 ▼ 確認用のシート(印の付いた欄だけ職員が直す) ▼ 受付台帳・お札の送付リスト(移すのは人)→ 宛名ラベルの印刷
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | Google Document AI(Form Parser) | Azure AI Document Intelligence |
| 生成AI | Claude API(欄の対応づけと、確認の要る欄の印) | OpenAI API |
| 連携 | Google Apps Script(フォルダの監視、API の呼び出し、照合、シートへの書き出し) | Python |
| 保管 | Google ドライブ(申込書の画像)と受付台帳のシート | 社内のファイルサーバー |
受付台帳と崇敬者の名簿は、新しく足すものではありません。 いまの Google スプレッドシートに、確認用のシートを1枚足すのが最初の準備です。 AIの出力はこの確認用のシートにだけ書き、受付台帳には書きません。
土台は Document AI の Form Parser です。 公式のプロセッサ一覧では、OCR のテキストに加えてキーと値のペア(項目とチェックボックス)、表、一般的な項目を取り出すとされ、言語の一覧で日本語(ja)は手書きに対応する言語として示されています。申込書の「氏名」「住所」の欄はキーと値のペアとして、願意の□はチェックボックスとして読めます。
Form Parser は学習済みで、追加の学習はできないとされています。 申込書の書式に合わせて精度を上げるのではなく、申込書のほうを読みやすい書式に寄せ、読んだ結果を後段の照合で補います。 申込書は神社で作っているので、書式を変えられるのがこの題材の強みです。
処理する場所に、日本のリージョンはありません。 プロセッサ一覧では、Form Parser の対応リージョンは us・eu と、シンガポール(asia-southeast1)などの単一リージョンです。申込書には氏名・住所・生年月日と、安産や病気平癒のような願意が書かれるので、国外で処理されることを神社の取り扱いの決まりに照らして確かめます(第13章)。
03どうやって実装するのか
処理の起点を決める
閉門後に1日分をまとめてスキャンし、受付フォルダに保存したことを起点にします。 窓口で1枚ずつスキャンする形にはしません。受付の最中は、初穂料の受け取りと授与で手が空かないからです。 ご祈祷が済んだ申込書は神職から社務所に戻ってくるので、箱にたまった分を閉門後に複合機の自動給紙でまとめて読み込みます。
郵送で届いた申込書は、ご祈祷を行った日の分と一緒にスキャンします。ファイル名には日付と「窓口」「郵送」の別を入れます。 郵送の分は全件がお札の郵送になるので、後段で送付リストに回す目印になります。
Apps Script は時間主導のトリガーで、閉門後の決まった時刻から数回、受付フォルダを見に行きます。処理が終わったファイルは処理済みのフォルダへ移し、移すのは成功したときだけにします。 受付フォルダに残っているファイルが、そのまま読み取りの済んでいない分です。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 申込書の画像 | 1日分をまとめたPDF。日付と、窓口・郵送の別 | 受付フォルダ(Google ドライブ) |
| 読み取りの結果 | テキスト、見出しの欄、チェック欄の状態、表、信頼度 | Google Document AI |
| 願意の一覧 | 申込書のチェック欄の並びと、台帳での願意の名前 | 社務所で作る一覧 |
| 郵便番号のデータ | 郵便番号と都道府県・市区町村・町域の対応 | 日本郵便が公開する郵便番号のデータ |
| 崇敬者の名簿 | 過去に申し込んだ人の氏名・ふりがな・住所・申込の履歴 | 社務所のスプレッドシート |
| 異体字の一覧 | 普段使う字と、旧字体・異体字の組み合わせ | 社務所で作る一覧 |
質を決めるのは、願意の一覧と異体字の一覧です。 願意の一覧は、申込書の□の並びと台帳の願意の名前を1対1で結びます。申込書の書式を変えたら、この一覧も同じ日に直します。
異体字の一覧は、字を直すためではなく、印を付けるために持ちます。 「髙」「﨑」「邊」「澤」のように、氏名でよく使われる旧字体や異体字を並べ、読み取った氏名にこれらの字が含まれるか、逆に普段の字で読まれた可能性がある氏名かを見分けます。 崇敬者の名簿で、同じ人が以前に旧字体で書いていたことが分かることもあります。
郵便番号のデータは、日本郵便が公開している住所の郵便番号のCSVを使います。1レコード1行・UTF-8の形式があり、スプレッドシートに読み込みやすい形です。 月に一度、新しいものに入れ替えます。
データの取得方法を決める
読み取りは、Apps Script から Form Parser のプロセッサを呼んで行います。返ってくる Document から、見出しの欄・チェック欄・信頼度を取り出します。 Apps Script から Google Cloud の API を呼ぶ認証の設定は、利用環境に応じて個別に用意します。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 全テキスト | text | ほかの欄が startIndex・endIndex で指す原文 |
| 見出しの欄 | pages[].formFields(fieldName と fieldValue) | 氏名・ふりがな・生年月日・住所・電話・人数・車両番号 |
| チェック欄 | formFields の値の種類(filled_checkbox / unfilled_checkbox) | 願意、お札の受け取り方 |
| 連名の表 | pages[].tables(headerRows と bodyRows) | 連名の氏名とふりがな |
| 信頼度 | 各要素の信頼度 | 確認の要る欄の印 |
チェック欄は、キーと値のペアとして返ってきます。 公式の説明では、チェックの付いた欄は filled_checkbox、付いていない欄は unfilled_checkbox という値の種類で示されます。願意の欄の名前(「家内安全」など)がキーに、チェックの状態が値に入るので、願意の一覧と名前で突き合わせます。
ただし、Form Parser の説明では、ラジオボタンは読まず、見つかったチェックボックスに対応するキーが無いこともあるとされています。願意の□の横の文字が小さかったり、□と文字が離れていたりすると、チェックは取れても何の願意かが分かりません。キーの無いチェックは、ページ上の位置から願意の一覧の並びに当てはめ、当てはめられなければ印を付けます。
連名の欄は、申込書の下に罫線で区切った表にしておくと、表として返ってきます。公式の説明では、Form Parser の表は行や列をまたぐセルを認識しないとされています。 罫線の表を、結合したセルの無い単純な形にしておきます。
崇敬者の名簿の検索は、ふりがなと電話番号を先に使い、氏名の字はその後に使います。 字で探すと、旧字体と普段の字で別の人に見えます。
AIへ渡す前に整形する
- 1枚1ファイルに分ける … 1日分をまとめたPDFを、申込書1枚ずつに分けます。公式のプロセッサ一覧では、同期の要求のページ数の上限は15です。 1枚ずつ送れば、上限を気にせずに済みます
- 向きと傾き … 自動給紙で斜めに入ったものの傾きを直します
- 解像度 … ふりがなの欄は字が小さいので、複合機の既定より高い解像度でスキャンします
- 白紙と裏面の除去 … 両面で読み込んだときの白紙の裏面を除きます
- 重複の検知 … 同じ日付で、同じ画像に近いものが二度入ったら印を付けて止めます
- 書式の確認 … 古い書式の申込書や、ほかの用紙(お守りの郵送の申込など)が混ざったら、読み取りの前に分けます
3番目を軽く見ないでください。 ふりがなは小さな字で書かれ、濁点と半濁点が潰れやすい欄です。「はら」と「ばら」の区別が付かないまま台帳に入ると、祝詞で読み上げる読みが変わります。
AIに処理させる
生成AIにさせるのは、読み取った欄を台帳の項目にそろえることと、確認の要る欄に理由を付けることです。 字を書き換えることはさせません。
| 見るもの | させること | 判断できないときの扱い |
|---|---|---|
| 見出しの欄 | 氏名・ふりがな・生年月日・住所・電話・人数・車両番号のどれかに当てる | 当てられない欄は unknown |
| 氏名とふりがな | 書かれた字をそのまま写す | 読めない字は空にし unreadable |
| 願意 | チェックの付いた欄の名前を、願意の一覧の名前で返す | 1つも取れなければ no_wish_detected |
| 連名 | 表の行ごとに氏名とふりがなを写す | 行の数と人数が違えば印 |
| 住所 | 郵便番号、都道府県から番地、建物名を分けて写す | 分けられなければ全体を1つの欄に |
| 異体字の疑い | 異体字の一覧に当たる字を含む氏名に印を付ける | 字の正誤は判断しない |
住所を分けて写させるのは、郵便番号のデータと照らすためです。 郵便番号から引いた市区町村・町域と、書かれた住所の頭が合っているかを、Apps Script が比べます。照合はプログラムで行い、生成AIには分けるところまでをさせます。
| させないこと | 理由 |
|---|---|
| 異体字を普段の字に直す | 祝詞とお札の宛名は、書かれた字が正しい |
| ふりがなの補い | 名前の読みは本人にしか分からない。空なら空 |
| 住所の補い・直し | 郵便番号から町名を埋めると、書き漏れが消える |
| 人数の数え直し | 人数と連名の数が違うときは、印までにして職員が決める |
| 願意の推測 | 丸で囲んだ文字や余白の書き込みから、願意を決めない |
2行目がいちばん起きやすい失敗です。 氏名の字から一般的な読みを付けたくなりますが、「たぶんこう読む」は、まさに第3章の(b)で人が起こしていた誤りです。 空のふりがなは空のまま残し、職員が崇敬者の名簿を見るか、本人に確かめます。
指示内容を固定する
あなたは神社の社務所で、ご祈祷の申込書の読み取り結果を受付台帳の形にそろえる担当です。
OCRが返した欄だけを見てください。推測で埋めないでください。
【台帳の項目】
name(代表者の氏名)、name_kana(ふりがな)、birth_date(生年月日)、
postal_code(郵便番号)、address_pref_city(都道府県と市区町村)、
address_rest(町域・番地)、address_building(建物名・部屋番号)、
phone(電話番号)、headcount(人数の欄)、vehicle_no(車両番号)、
wishes(願意)、delivery(お札の受け取り方:持ち帰り/郵送)、
companions(連名の氏名とふりがな)
【厳守事項】
- 氏名・ふりがな・住所は、OCRが返した字をそのまま写してください。
旧字体や異体字を普段の字に直さないでください。
- ふりがなが空なら空にしてください。氏名から読みを推測しないでください。
- 読めない字は空にし、その欄を unreadable_fields に入れてください。
- 住所は、郵便番号から町名を補わないでください。
書かれていない部分は空にしてください。
- 願意は、チェックが付いた欄(filled_checkbox)だけを、
【願意の一覧】の名前で wishes に入れてください。
チェックの無い欄、丸で囲んだ文字、余白の書き込みから願意を決めないでください。
1つも無ければ wishes を空にし、flags に no_wish_detected を入れてください。
- 人数の欄の数字はそのまま headcount に写してください。
連名の行の数と違っても、数え直さないでください。
- 【異体字の一覧】の字を含む氏名には、flags に variant_kanji を入れ、
該当する字を variant_chars に書いてください。字の正誤は判断しないでください。
- どの項目にも当てられない欄は unknown_fields に入れてください。
【OCRの見出しの欄】{form_fields}
【OCRのチェック欄】{checkboxes}
【OCRの連名の表】{tables}
【願意の一覧(この版の申込書)】{wish_list}
【異体字の一覧】{variant_list}
「字を普段の字に直さない」を明記しないと、生成AIは親切に直します。 読み取った「髙橋」を「高橋」として返すのは、一般の文章では正しい振る舞いだからです。この題材では、直した瞬間に祝詞とお札の宛名が誤ります。 直さないことと、異体字に印を付けることを、別々の指示として書きます。
「丸で囲んだ文字から願意を決めない」も同じ理由です。 OCRのテキストには丸の有無は残らず、願意の名前の文字だけが並びます。何も言わないと、申込書に印刷された願意の名前をすべて願意として拾います。
出力形式を固定する
次の形のJSONで受け取ります。
{
"form_id": "",
"form_version": "",
"received_date": "",
"channel": "counter | mail",
"name": "",
"name_kana": "",
"birth_date": "",
"postal_code": "",
"address_pref_city": "",
"address_rest": "",
"address_building": "",
"phone": "",
"headcount": "",
"vehicle_no": "",
"wishes": [""],
"delivery": "pickup | mail | unknown",
"companions": [ { "name": "", "name_kana": "" } ],
"variant_chars": [""],
"unreadable_fields": [""],
"unknown_fields": [""],
"flags": ["no_wish_detected | variant_kanji | kana_missing | headcount_mismatch"]
}
Claude の構造化出力では、オブジェクトに additionalProperties: false を設定する必要があり、数値の minimum・maximum や文字列の長さの制約は使えないとされています。 郵便番号の桁数の確認は Apps Script の側で行います。
後段の照合は、この出力に対して規則で行います。
| 照合 | 外れたとき |
|---|---|
| 郵便番号が7桁で、郵便番号のデータにある | postal_unknown の印 |
| 郵便番号から引いた市区町村と、書かれた住所の頭が合う | postal_mismatch の印。どちらが正しいかは決めない |
delivery が mail なのに番地が空 | address_incomplete の印 |
| 人数の欄と、代表者+連名の数が合う | headcount_mismatch の印 |
| ふりがなが空 | kana_missing の印。崇敬者の名簿に同じ人がいれば、名簿の読みを並べて表示 |
| 崇敬者の名簿に、ふりがなと電話番号が同じ人がいて住所が違う | address_changed の印。名簿は直さない |
| 信頼度が基準を下回る欄がある | 欄ごとに印 |
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 受付フォルダ(Google ドライブ) | Apps Script の時間主導のトリガー | 新しいファイルを見つける |
| Google Document AI | API呼び出し | 見出しの欄・チェック欄・表・信頼度を返す |
| Claude API | API呼び出し | 欄の対応づけと印 |
| 郵便番号のデータ | スプレッドシートに読み込んだCSV | 郵便番号と住所の照合 |
| 崇敬者の名簿 | スプレッドシートの読み取り | 以前の申込と住所の変更を探す |
| 確認用のシート | スプレッドシートへの書き出し | 印の付いた行を画像へのリンクと並べる |
| 受付台帳・送付リスト | 職員がシートで移す | 確認の済んだ行だけ |
受付台帳と崇敬者の名簿には、Apps Script から書き込みません。 確認用のシートで職員が「確認済み」の欄にチェックを入れた行だけを、職員の操作で台帳へ移します。移す操作をボタン1つにしておけば手間は増えず、移したかどうかは人が決めます。
送付リストは、確認の済んだ行のうち delivery が mail のものです。宛名ラベルの印刷は、いまの印刷の手順をそのまま使います。 送付リストの列の並びを、いまのラベルの差し込みに合わせておきます。
人が確認する
人が見るのは、印の付いた行だけです。
- 願意が取れなかったものを先に見る …
no_wish_detectedは、丸で囲んだ申込書か、□の外に書いたものです。画像を見て願意を選びます - 字とふりがなを確かめる …
variant_kanjiとkana_missingの行を、申込書の画像と並べて見ます。崇敬者の名簿に同じ人がいれば、以前の字と読みを見比べます - 郵送の分の住所を確かめる …
postal_mismatchとaddress_incompleteは、発送の前に本人へ電話します - 人数を決める …
headcount_mismatchは、受付をした職員に当日の様子を聞いて決めます - 台帳と送付リストへ移す … 確認済みにした行を移し、宛名ラベルを印刷します
2番目で、ふりがなを推測で埋めないでください。 読みが分からない氏名は、郵送の分なら本人に電話で、持ち帰りの分なら次に来たときに窓口で確かめることにし、それまで台帳のふりがなは空のままにします。
目標は、480件をならして1件1.5分です。 印の無い行は一覧で流し見て数秒、印の付いた行は画像を見て直すので数分かかります。郵送の分は住所の確かめがある分、窓口の分より時間がかかります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 願意を丸で囲んでいる | no_wish_detected。職員が画像で願意を選ぶ |
| チェックは取れたがキーが無い | ページ上の位置で願意の一覧に当てはめる。当てられなければ印 |
| ふりがなが潰れて読めない | unreadable。推測せず、名簿か本人で確かめる |
| 連名の表が罫線をはみ出して書かれている | 表として返らない。全テキストから人が拾う |
| 郵便番号と住所が合わない | 発送の前に本人に電話。どちらにも寄せない |
| 古い版の申込書が混ざる | 版の番号で願意の一覧を切り替える。版の番号が無ければ印 |
| 申込書以外の用紙が混ざる | 書式の確認で分け、読み取りに回さない |
| 1ファイルに2枚が重なって入った | 撮り直し。重なったまま読ませない |
| Document AI が応答しない | 受付フォルダに残し、翌朝に読み直す。急ぐ郵送の分はいまの手順で打ち込む |
上の3行が大半を占めます。 どれもAIの精度の問題というより、申込書の書式と書き方の問題です。 □を大きくする、ふりがなの欄を広げる、願意の名前を□のすぐ横に置くほうが、指示を直すより効きます。
記録を残す
- 申込書の画像と、日付・窓口と郵送の別・申込書の版
- OCR が返した
Documentの全文(text、formFields、tables、信頼度) - 生成AIの出力(台帳の項目、
flags、variant_chars) - 照合の結果(郵便番号、人数、崇敬者の名簿)
- 人が直した欄の記録 … どの申込書の、どの欄を、何から何に直したか。直した職員と日時
- 台帳と送付リストへ移した日時と、宛名ラベルを印刷した日時
人が直した欄の記録は、問い合わせへの答えになります。 「お札の宛名の字が違う」と言われたとき、申込書の画像・読み取りの結果・直した記録がつながっていれば、申込書の束を探さずに、どこで字が変わったかが分かります。
04実装レベルの3段階
最小構成では枚数がさばけません。 1枚ずつ貼るので、月480件には使えません。手書きの申込書が読めるかを確かめる段階です。 半自動化で、1件5分が1.5分になり、この段階が本記事の想定です。 打ち込みと照合が自動になり、人が見るのは印の付いた行だけになります。本格構成は、名簿の更新と発送の記録までを含めるもので、時間の削減より、翌年の案内の名簿の質を上げるための段階です。 段階を飛ばさないでください。 半自動化の確認用のシートを1か月見ると、書式の直すべきところが見えます。
05工数削減シミュレーション
導入後 480件 × 1.5分 ÷ 60 = 12 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- ご祈祷の受付を紙の申込書で行い、社務所の職員が閉門後に受付台帳の表計算ファイルへ打ち直している神社。月に数百件の申込があり、遠方の崇敬者からの郵送の申込やお札の郵送の希望があって、宛名の書き写しにも時間を取られている場合。申込書の書式を神社で決めていて、願意をチェック欄で選ぶ形にできる場合。Google ドライブと Google スプレッドシートをすでに社務で使っている場合。
- ご祈祷の申込が月に数十件で、閉門後の打ち直しが負担になっていない神社。申込をすでにタブレットやWebの予約で電子的に受けている場合。なお、祝詞に読み上げる氏名の読みの確定、願意に応じた祈祷の内容、初穂料の扱いの判断は、この構成では代替できません。
07最小構成で試す方法
- 先月の申込書から30枚を選ぶ(旧字体の氏名、ふりがなの無いもの、願意を丸で囲んだもの、連名の多いものを入れる)
- その30枚について、受付台帳に入っている値を書き出しておく
- 申込書の画像を、手元の生成AIの画面に1枚ずつ貼る
- 「この申込書の願意・氏名・ふりがな・住所・人数・連名を表にしてください。字は書かれたとおりに写し、普段の字に直さないでください。ふりがなが無ければ空にしてください」と指示する
- 出てきた表を、台帳の値と1欄ずつ比べる
30枚は必ずやってください。 Form Parser と Apps Script を組む前に、手書きの申込書が読めるのか、字を直さずに写せるのかを確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 台帳とほぼ同じ表が出た | OCR の API とシートへの書き出しに進む |
| 異体字を普段の字に直した | 指示で直る。異体字の一覧と印の仕組みが要る |
| ふりがなを推測で埋めた | 指示と、後段の空欄の確認で止められる |
| 願意を丸で囲んだものが読めない | 申込書の書式が先。 □で選ぶ形にそろえる |
4行目が出ることは珍しくありません。 失敗ではなく、打ち込みで職員が迷っていた理由が1つ分かったということです。 申込書の書式を直して、次の月の30枚で試し直してください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 異体字が普段の字に直る | 直さないことを指示し、異体字の一覧で印を付ける |
| 空のふりがなが推測で埋まる | 空のまま残すことを指示し、後段で空欄に印を付ける |
| 丸で囲んだ願意が読めない | 申込書を□で選ぶ形にし、願意が取れないものは必ず人へ |
| 申込書に印刷された願意の名前を全部拾う | チェックの付いた欄だけを願意とする |
| チェックにキーが付かない | □と願意の名前を近づけ、位置で当てはめる |
| 古い版の申込書で願意の並びがずれる | 版の番号を印刷し、一覧を切り替える |
| 郵便番号から住所を補う | 補わず、食い違いに印。発送の前に本人に確かめる |
| 国外で処理されることを確かめていない | 日本のリージョンは無い。 神社の決まりに照らす |
| 台帳に自動で書き込む | 確認用のシートまでにし、移すのは人 |
| 崇敬者の名簿を字で検索する | ふりがなと電話番号で探し、字は後で見る |
上の2行が、この構成でいちばん重い失敗です。 どちらも、AIが「親切に」整えた結果が、祝詞とお札の宛名に出ます。整えないことと、迷う字に印を付けることを、指示と後段の照合の両方で守ります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 参拝者と家族の氏名・ふりがな・生年月日・住所・電話番号、車両番号、そして願意です。安産祈願・病気平癒のような願意は、本人の健康の状態をうかがわせる情報です。 初宮参りや七五三では、乳幼児や子どもの氏名と生年月日も入ります。
- 法の適用の有無にかかわらず、取り扱いの決まりを持つ … 個人情報保護法の第57条は、宗教団体が宗教活動(これに付随する活動を含む)の用に供する目的で個人情報を取り扱う場合、同法の第4章の規定を適用しないとしています。ただし同じ条の第3項は、安全管理のために必要かつ適切な措置などを自ら講じ、その内容を公表するよう努めなければならないとしています。 ご祈祷の受付とお札の郵送が宗教活動に当たるかどうかにかかわらず、申込書の情報を外部のサービスで処理するときの決まりを、神社として文書にしておきます
- 処理の場所を確かめる … Form Parser の対応リージョンに日本はありません。
us・euかシンガポールなどから選びます。生成AIの API も国外で処理されうるので、両方について崇敬者への説明と合わせて決めます - 生成AIに渡す範囲を絞る … 生成AIには読み取った欄と、願意の一覧・異体字の一覧だけを渡します。崇敬者の名簿は渡さず、照合は Apps Script の側で行います
- 利用者を社務所の職員に限る … 確認用のシートと受付フォルダは、社務所の職員のアカウントだけが開けるようにします。子どもの氏名と生年月日が入るので、仕組みを参拝者が直接使う形にはしません
- 台帳に書き込まない … 台帳は翌年の案内の名簿になるので、移すのは人です
- 申込書の原本の扱いを決める … 画像を残すようになっても、紙の申込書をいつまで綴じて残すか、画像をいつ消すかを神社で決めます
誤りが起きた場合のリスクは、祝詞とお札の宛名の字や読みを誤ることと、お札を違う住所に送ることの2つです。前者は字を直さない指示と異体字の印で、後者は郵便番号と住所の照合と、発送の前の本人への確認で防ぎます。
10まず何から始めるか
1週目:申込書の書式を見直す
願意を□で選ぶ形にそろえ、□のすぐ横に願意の名前を置きます。ふりがなの欄を広げ、用紙の右下に版の番号を入れます。古い用紙は窓口から下げます。
2週目:30枚で試す
先月の申込書から30枚を選び、最小構成で台帳の形の表にさせて、台帳の値と比べます。異体字を直していないか、ふりがなを推測で埋めていないかを最優先で見ます。
3週目:一覧を作り、取り扱いの決まりを書く
願意の一覧と異体字の一覧を作り、郵便番号のデータをスプレッドシートに読み込みます。あわせて、申込書の情報を外部のサービスで処理するときの決まりを、宮司と相談して文書にします。
4週目:受付フォルダから確認用のシートまでをつなぐ
Apps Script で受付フォルダを見に行き、Form Parser と生成AIを呼んで、確認用のシートに書き出すところまで作ります。この時点では照合を入れず、読み取りの結果だけを見ます。
2か月目: 郵便番号の照合、人数の比較、崇敬者の名簿の検索を足し、印の付いた行だけを職員が直す運用にします。3か月目以降: 確認済みの行を台帳と送付リストへ移すボタンを足し、1件5分が何分になったかを実測します。閉門後の入力が毎日決まった時間で終わり、翌年の案内状の宛名の誤りが減ったことを確かめた時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
Form Parser がキーと値のペア(項目とチェックボックス)、表、一般的な項目を OCR のテキストに加えて取り出すこと。言語の一覧で日本語(ja)が手書きに対応する言語として示されていること(原文の HTML で確認)。対応リージョンが us・eu・asia-southeast1 などで日本が無いこと。同期の要求のページ数の上限が15であること | Google Cloud: Processor list | 2026-10-14 |
| Form Parser が学習済みで追加の学習ができないこと。チェックボックスがキーと値のペアとして返り、値の種類でチェックの有無が示されること。ラジオボタンを読まないこと、見つかったチェックボックスに対応するキーが無いことがあること | Google Cloud: Form Parser | 2026-10-14 |
text が認識されたテキストの元であり、ほかの欄が startIndex・endIndex で指すこと。formFields が fieldName と fieldValue を持つこと。チェックの有無が filled_checkbox・unfilled_checkbox で示されること。Form Parser の表が行や列をまたぐセルを認識しないこと | Google Cloud: Handle the processing response | 2026-10-14 |
構造化出力が output_config.format に JSON スキーマを指定して有効になること。オブジェクトに additionalProperties: false が必要なこと。数値の minimum・maximum や文字列の minLength・maxLength が非対応であること | Claude Docs: Structured outputs | 2026-10-14 |
| 個人情報保護法第57条第1項第3号で、宗教団体が宗教活動(これに付随する活動を含む)の用に供する目的で取り扱う場合に同章の規定が適用されないこと。同条第3項で、安全管理のための措置などを自ら講じ、その内容を公表するよう努めなければならないとされていること(法令APIで条文を確認) | e-Gov 法令API: 個人情報の保護に関する法律 | 2026-10-14 |
| 日本郵便が住所の郵便番号のCSVを公開しており、1レコード1行・UTF-8の形式があること | 日本郵便: 郵便番号データダウンロード | 2026-10-14 |
ご祈祷の受付とお札の郵送が宗教活動に当たるかどうか、申込書の情報の取り扱いの決まりは、神社で確かめて判断してください。 本記事は、上記の公開情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1522)についてのご相談はこちらから。
