寺院の寺務所が檀家から届く法要・墓所の問い合わせのメールを Claude で読み、住職の予定から日程の候補を添えた返信の下書きを作る
檀家から届く法要・墓所の問い合わせのメールを Claude が読み、施主・故人・回忌・希望の時期を抜き出して、住職の予定の空きから選んだ日程の候補を添えた返信の下書きを作ります。寺務所の担当は、下書きを読んで直し、送るだけになります。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Google Apps Script/Make/Power Automate
- 対象業界
- その他
- 対象部門
- カスタマーサポート/総務
- 対象業務
- 問い合わせ対応/書類作成
- 主な課題
- 人手が足りない/問い合わせが多い/属人化している
- AIで行う処理
- 生成
- 主な効果
- 品質標準化/対応スピード向上/工数削減
- 導入難易度
- ★☆☆☆☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 寺務所の担当が Gmail を開き、問い合わせのメールを読む
- 差出人が誰かを檀家の台帳で探す。施主の名前と差出人の名前が違うことが多い
- 法要の問い合わせなら、故人の名前と命日を台帳で確かめ、何回忌に当たるかを年忌の表で見る
- 住職と本堂のカレンダーを開き、希望の時期の中で空いている法要の枠を探す
- 候補を3つほど選んで、返信を書く。墓所の問い合わせなら、墓所の台帳で区画と管理料の状況を見る
- お布施や墓所の使用の相談など、自分で答えられないものは住職に聞いてから書く
- 送った内容を、台帳の備考欄にメモする
- 自動Apps Script が10分ごとに Gmail を調べ、「問い合わせ」のラベルが付いて「下書き済み」のラベルが無いスレッドを拾う
- 自動差出人のメールアドレスと本文の名前で、檀家の台帳と墓所の台帳を引く
- 自動本文に急ぎの言葉(訃報、亡くなった、枕経など)があれば、先に寺務所と住職に通知する
- 自動希望の時期が読み取れれば、その範囲で住職と本堂のカレンダーを引き、両方が空いている法要の枠の一覧を作る
- 自動問い合わせ、台帳の該当行、空き枠の一覧、寺の決まり(返信のひな形・答えない話題)を Claude API に渡す
- 自動Claude が、問い合わせの種類・抜き出した項目・選んだ枠・返信の下書き・申し送りを JSON で返す
- 自動選んだ枠が一覧にあるかをプログラムが確かめ、Gmail のスレッドに返信の下書きを作る
- 自動受付の記録のシートに1行を足し、スレッドに「下書き済み」のラベルを付ける
- 人寺務所の担当が下書きと申し送りを読み、直して送る。住職に聞くものは聞いてから送る
- 人檀家から日程の返事が来たら、担当がカレンダーに法要を入れる
各工程の詳しい説明を読む
- 寺務所の担当が Gmail を開き、問い合わせのメールを読む
- 差出人が誰かを檀家の台帳で探す。施主の名前と差出人の名前が違うことが多い
- 法要の問い合わせなら、故人の名前と命日を台帳で確かめ、何回忌に当たるかを年忌の表で見る
- 住職と本堂のカレンダーを開き、希望の時期の中で空いている法要の枠を探す
- 候補を3つほど選んで、返信を書く。墓所の問い合わせなら、墓所の台帳で区画と管理料の状況を見る
- お布施や墓所の使用の相談など、自分で答えられないものは住職に聞いてから書く
- 送った内容を、台帳の備考欄にメモする
(a)予定を探すのに時間がかかる。 「来年の春の土日」という希望なら、3月から5月の土日を1日ずつ開き、住職と本堂の両方が空いている枠を探します。片方のカレンダーだけを見て候補を出し、後で本堂に別の法要が入っていたと分かることが年に何度もあります。
(b)返信の書き方が担当によって違う。 住職の家族が書く返信と、事務員が書く返信では、言葉づかいも、候補の出し方も違います。お布施の額を聞かれたときに、ある担当は目安を書き、別の担当は「お気持ちで」とだけ書く、という違いが檀家の間で話題になったことがあります。
(c)担当が休むと返信が止まる。 2名のうち1名が休むと、もう1名は法要の受付と電話で手一杯になり、メールの返信が数日たまります。お彼岸とお盆の前は、問い合わせが増える時期と寺が忙しい時期が重なります。
(d)急ぎの連絡が埋もれる。 訃報がメールで届いたのに、ほかの問い合わせと一緒に夕方まで開かれなかったことがあります。電話をくださいと書いてあっても、メールを開かなければ分かりません。
- 【自動】 Apps Script が10分ごとに Gmail を調べ、「問い合わせ」のラベルが付いて「下書き済み」のラベルが無いスレッドを拾う
- 【自動】 差出人のメールアドレスと本文の名前で、檀家の台帳と墓所の台帳を引く
- 【自動】 本文に急ぎの言葉(訃報、亡くなった、枕経など)があれば、先に寺務所と住職に通知する
- 【自動】 希望の時期が読み取れれば、その範囲で住職と本堂のカレンダーを引き、両方が空いている法要の枠の一覧を作る
- 【自動】 問い合わせ、台帳の該当行、空き枠の一覧、寺の決まり(返信のひな形・答えない話題)を Claude API に渡す
- 【自動】 Claude が、問い合わせの種類・抜き出した項目・選んだ枠・返信の下書き・申し送りを JSON で返す
- 【自動】 選んだ枠が一覧にあるかをプログラムが確かめ、Gmail のスレッドに返信の下書きを作る
- 【自動】 受付の記録のシートに1行を足し、スレッドに「下書き済み」のラベルを付ける
- 【人】 寺務所の担当が下書きと申し送りを読み、直して送る。住職に聞くものは聞いてから送る
- 【人】 檀家から日程の返事が来たら、担当がカレンダーに法要を入れる
9番目が、この設計の要です。 下書きは自動で送りません。寺から檀家への返信は、1通の言葉づかいが何年も覚えられます。 担当が読むことで、AIが書いた文の硬さや、台帳に無い事情(施主が最近入院した、など)を直せます。
10番目も人に残しています。 檀家が「2つ目の候補で」と返してきたとき、その枠に予定を入れるのは担当です。下書きを作った時点と返事が来た時点で、空きが変わっていることがあるからです。
02今回想定するシステム構成
問い合わせフォーム/代表アドレスへのメール │ ▼【トリガー】10分ごとの時間主導型トリガー Google Apps Script ├──▶ Gmail(「問い合わせ」ラベルで未処理のスレッドを探す) ├──▶ スプレッドシート(檀家の台帳・墓所の台帳・年忌の表・寺の決まり) ├──▶ 急ぎの言葉の検知 ── 寺務所と住職へ通知 └──▶ Google カレンダー(住職・本堂)── 空いている法要の枠を計算 ▼ Claude API ── 種類の判定、項目の抜き出し、枠の選択、返信の下書き ▼ Apps Script ── 選んだ枠が一覧にあるかの確認 ├──▶ Gmail(スレッドへの返信の下書き、ラベル) └──▶ 受付の記録のシート ▼ 【人】寺務所の担当が読んで直し、送る
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 処理 | Claude API(Messages API、構造化出力) | OpenAI API、Gemini API |
| 連携 | Google Apps Script(Gmail・カレンダー・スプレッドシートの読み書き) | Make、Power Automate |
| 保管 | Google スプレッドシート(檀家の台帳・墓所の台帳・年忌の表・寺の決まり・受付の記録) | - |
| 予定表 | Google カレンダー(住職・本堂) | - |
| メール | Gmail | - |
新しく作るのは、寺の決まりのシートと、受付の記録のシートだけです。 寺の決まりのシートには、法要の枠の時刻、法要を受けない日(寺の行事・お盆の棚経の期間など)、返信のひな形、そして下書きで答えない話題の一覧を1行1項目で書きます。台帳とカレンダーは今のものをそのまま使います。
文章を作る部品は Claude API です。 公式のページでは、リクエストの output_config.format に type: "json_schema" と JSON Schema を渡すと、スキーマに沿った JSON が返るとされています。数値の minimum/maximum、文字列の minLength/maxLength には対応しておらず、使うと400のエラーになるとされているので、文字数や個数の確認は Apps Script の側で行います。新しいスキーマは最初のリクエストで組み立てに時間がかかり、組み立てた結果は最後に使ってから24時間キャッシュされるとされています。
つなぎは Google Apps Script です。 GmailApp.search でスレッドを探し、GmailThread の createDraftReply でスレッドへの返信の下書きを作り、addLabel でラベルを付けます。下書きには htmlBody、cc、from(GmailApp.getAliases() が返すアドレスに限る)などを指定できるとされています。カレンダーは Calendar.getEvents(startTime, endTime) で範囲の予定を取ります。
03どうやって実装するのか
処理の起点を決める
Apps Script の時間主導型トリガーで、10分ごとに動かします。 公式のページでは、時間主導型トリガーは「毎分から月1回まで」の間隔で動かせ、開始の時刻は少しずれることがあるとされています。問い合わせの返信は数分を争うものではないので、10分の間隔で足ります。
拾う対象は、Gmail の検索で絞ります。 問い合わせフォームから届くメールと代表アドレスに届くメールに Gmail のフィルタで「問い合わせ」のラベルを付けておき、label:問い合わせ -label:下書き済み で探します。処理が終わったスレッドにだけ「下書き済み」を付けるので、途中で失敗したスレッドは次の回でもう一度拾われます。
1回の実行で扱う件数を決めておきます。 Apps Script の1回の実行時間は6分までとされているので、1回に10件までとし、残りは次の回に回します。トリガーの合計の実行時間は Google Workspace のアカウントで1日6時間まで(個人のアカウントで90分まで)とされ、月120件なら十分に収まります。
急ぎの検知だけは、Claude を呼ぶ前に行います。 本文に「亡くなりました」「訃報」「枕経」「通夜」などの言葉があれば、Claude の結果を待たずに寺務所の共有のチャットと住職の携帯のメールに通知します。AIが応答しないときでも、急ぎの連絡だけは止めないためです。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 問い合わせ | 件名、本文、差出人の名前とアドレス、受信日時。フォームからの場合は入力欄ごとの値 | Gmail |
| 檀家の台帳の該当行 | 家の名前、施主の名前、連絡先、故人の名前と命日、墓所の区画番号 | 檀家の台帳のシート |
| 墓所の台帳の該当行 | 区画番号、使用者、管理料の納入の状況、永代供養への切り替えの有無 | 墓所の台帳のシート |
| 年忌の表で計算した回忌 | 故人ごとの、来年までに当たる回忌と年 | 年忌の表のシートと Apps Script の計算 |
| 空いている法要の枠 | 枠の番号、日付、曜日、時刻 | 住職と本堂のカレンダーから Apps Script が計算 |
| 寺の決まり | 返信のひな形、法要の持ち物と当日の流れ、塔婆の申込の締め切り、答えない話題の一覧 | 寺の決まりのシート |
質を決めるのは、いちばん下の行です。 返信のひな形と答えない話題の一覧が無ければ、Claude は一般的な寺院の慣習を想像で書きます。その寺の決まりと違う持ち物や流れが下書きに入ると、担当が気づかずに送ってしまいます。
台帳から渡すのは、該当する家の行だけです。 檀家400軒の台帳を丸ごと渡しません。差出人のアドレスで台帳を引けたときはその家の行、引けなかったときは何も渡さず、「台帳で見つからない」と書いて渡します。
データの取得方法を決める
差出人の特定は、メールアドレスを先に、名前を後に使います。 台帳の連絡先の列にアドレスがあればそれで引き、無ければ本文の署名の名字と、台帳の施主の名字を照らします。名字だけで引けた家が2軒以上あるときは、どれも渡さずに「候補が複数」と書きます。 同じ名字の檀家は珍しくありません。
| 取るもの | どこから | どう取るか |
|---|---|---|
| 未処理のスレッド | Gmail | GmailApp.search に検索の条件を渡す |
| メールの本文 | スレッドの最後のメッセージ | GmailThread.getMessages() の最後の1通。引用部分は前処理で落とす |
| 台帳の行 | スプレッドシート | アドレスで引き、無ければ名字で引く |
| 住職と本堂の予定 | Google カレンダー | Calendar.getEvents(startTime, endTime) で希望の時期の範囲を取る |
希望の時期は、本文から粗く読み取ってから範囲を決めます。 「来年の春」「11月の土日」「四十九日のころ」のような書き方を、Apps Script が月の単位で範囲にします(春なら3〜5月、など)。読み取れなかったら、受信日から60日先までを範囲にします。 四十九日の場合は、台帳の命日から寺の年忌の表で四十九日の日を出し、その前の土日を範囲にします。
空いている法要の枠は、プログラムで計算します。 範囲の日ごとに、寺の決まりの「法要の枠の時刻」(10時・13時・15時)を並べ、住職か本堂のカレンダーに重なる予定がある枠と、「法要を受けない日」の枠を外します。残ったものに S01、S02 のような番号を振って、最大20枠を Claude に渡します。 枠には、法要の前後の移動の時間(30分)も含めて重なりを見ます。
AIへ渡す前に整形する
- 引用部分を落とす … 返信の返信で届いたものは、
>で始まる行と「〜wrote:」以降を落とし、最新の本文だけにします - 署名と定型文を落とす … 携帯のキャリアの署名やフォームの定型の文言を落とします
- 台帳を引く … アドレス、名字の順で引き、見つからない・複数の場合はその旨を書きます
- 回忌を計算する … 台帳の命日と寺の年忌の表から、今年と来年に当たる回忌をプログラムで出します
- 希望の時期を範囲にする … 月の単位の範囲にします。読み取れなければ60日先までにします
- 空き枠を計算する … 住職と本堂の両方が空いている枠に番号を振ります
- 急ぎの言葉を見る … 該当すれば先に通知します(トリガーの節)
- 個人に関わる項目を絞る … 渡すのは、施主・故人・命日・区画番号・管理料の状況までです。電話番号と住所は渡しません
4番目を AI にさせない理由ははっきりしています。 何回忌が何年に当たるかは、寺の数え方で決まる計算です。計算をAIに任せると、もっともらしい年がそのまま返信に書かれます。 年忌の表をシートに持ち、コードで出した結果を「台帳から計算した回忌」として渡します。
8番目は、返信に要らないものを渡さないということです。 電話番号や住所は下書きを書くのに使いません。渡さなければ、下書きに写ることもありません。
AIに処理させる
させるのは、問い合わせを読んで5つのことを返すことだけです。
| させること | 中身 | 判断できないときの扱い |
|---|---|---|
| 問い合わせの種類 | 年忌法要、四十九日、納骨、墓所の管理、永代供養、塔婆の申込、急ぎ、その他 | 複数に当たれば主なものと、ほかの種類を並べる |
| 項目の抜き出し | 施主、故人、回忌、希望の時期、参列の人数、会食の有無 | 書かれていなければ空欄にし、missing_items に挙げる |
| 枠の選択 | 渡した空き枠の中から、希望に合うものを最大3つ | 合うものが無ければ選ばず、slot_note に理由を書く |
| 返信の下書き | ひな形に沿った返信。候補の日程、持ち物、確かめたいこと | 答えない話題は「住職から改めて」とする |
| 申し送り | 担当が送る前に確かめること、住職に聞くこと | 無ければ空欄 |
| させないこと | 理由 |
|---|---|
| 渡した一覧に無い日時を書く | 住職の予定は寺務所が決める。一覧に無い日時は、空いていない日時かもしれない |
| 回忌の年を計算する | 寺の数え方による。コードで計算した値だけを使う |
| お布施・費用の額を書く | 寺の方針で住職が答える。担当によって違う、という状態を作らない |
| 墓所の使用・改葬・永代供養の可否を答える | 使用の規則と個別の事情で決まる。住職と寺務所が判断する |
| 宗旨・作法の解釈を書く | 寺の教えに関わる。住職が答える |
| 台帳の値を書き換える | 台帳は人が直す |
1行目がいちばん大事です。 「来年3月の土曜の午前」と希望されて、その枠が空いていないとき、何も言わなければ Claude は希望どおりの日時を書きます。希望に合う枠が無いときは、無いと書かせます。
指示内容を固定する
あなたは寺院の寺務所で、檀家からのメールの問い合わせに返信の下書きを作る係です。
返信は寺務所の担当が読んでから送ります。あなたが送ることはありません。
【返すもの】
1. inquiry_type:問い合わせの種類(下の一覧から1つ)。ほかにも当たれば other_types に並べる
memorial_service(年忌法要) / forty_ninth(四十九日) / interment(納骨) /
grave_care(墓所の管理) / eitai_kuyo(永代供養) / toba(塔婆の申込) /
urgent(訃報など急ぎ) / other(その他)
2. extracted:施主、故人、回忌、希望の時期、参列の人数、会食の有無
3. selected_slots:【空いている法要の枠】の番号から、希望に合うものを最大3つ
4. reply_body:返信の下書き
5. staff_notes:担当が送る前に確かめること、住職に聞くこと
【日程について】
- 日程の候補は、【空いている法要の枠】にある番号だけから選んでください。
一覧に無い日時を、本文にも selected_slots にも書かないでください。
- 希望に合う枠が無いときは、selected_slots を空にし、slot_note に理由を書き、
返信には「ご希望の時期は予定が埋まっております。別の時期をお知らせください」と書いてください。
- 回忌は【台帳から計算した回忌】の値だけを使ってください。自分で年を計算しないでください。
メールに書かれた回忌と台帳の値が違うときは、staff_notes に両方を書いてください。
【書かないこと】
- お布施、費用、管理料の額。聞かれたら「住職から改めてお返事いたします」と書き、
staff_notes に「お布施の額の問い合わせ」のように何を聞かれたかを書いてください。
- 墓所を使えるか、改葬・墓じまい・永代供養への切り替えができるかの答え。
- 宗旨や作法の解釈。
- 【寺の決まり】に無い持ち物や当日の流れ。
【抜き出しについて】
- メールに書かれていないことは空欄にし、missing_items に挙げてください。推測で埋めないでください。
- 台帳が「見つからない」「候補が複数」のときは、施主と故人を台帳から補わないでください。
【文体】
- 【返信のひな形】の書き出しと結びを使い、丁寧語で書いてください。
- 本文はおおむね400字までにしてください。
【問い合わせ】{message}
【台帳の該当行】{ledger_row}
【台帳から計算した回忌】{memorial_years}
【希望の時期として読み取った範囲】{date_range}
【空いている法要の枠】{slots}
【返信のひな形】{template}
【寺の決まり(持ち物・当日の流れ・塔婆の締め切り)】{rules}
【答えない話題の一覧】{no_answer_topics}
「一覧に無い日時を書かない」を、本文と selected_slots の両方について書いているのには理由があります。 番号の欄だけを縛ると、本文のほうに「3月15日(土)の午前はいかがでしょうか」と、一覧に無い日時を書き足すことがあります。本文の日付も、後段のプログラムで一覧と照らします。
お布施の行に「何を聞かれたかを書く」を足しているのは、答えないだけだと情報が消えるからです。 返信に書かないことと、担当に伝えることを分けます。
出力形式を固定する
次の形の JSON で受け取ります。
{
"inquiry_type": "memorial_service",
"other_types": ["toba"],
"urgent": false,
"extracted": {
"host_name": "",
"deceased_name": "",
"memorial_label": "",
"desired_period": "",
"attendees": "",
"meal": "yes | no | unknown"
},
"missing_items": ["attendees"],
"selected_slots": ["S03", "S07"],
"slot_note": "",
"reply_subject": "",
"reply_body": "",
"staff_notes": ["塔婆の本数が書かれていない"]
}
JSON にする1つ目の理由は、日程をプログラムで確かめられることです。 selected_slots の番号がすべて渡した一覧にあるか、本文に出てくる日付がすべて選んだ枠の日付と一致するかを Apps Script が照らします。合わなければ下書きを作らず、受付の記録に「日程の照合で止めた」と書いて担当に回します。
2つ目は、種類で振り分けられることです。 urgent が真のものは、下書きを作る前に通知の側に回します。interment と eitai_kuyo は墓所の台帳の担当、それ以外は法要の受付の担当に、受付の記録のシートで振り分けます。
3つ目は、missing_items を返信の確認事項に使えることです。 参列の人数が書かれていなければ、返信の末尾で尋ねます。聞き返す項目が毎回同じ順に並び、担当による違いが出ません。
スキーマでは inquiry_type と meal を enum にし、各オブジェクトに additionalProperties: false を付けます。reply_body の長さと selected_slots の個数(3つまで)は、スキーマでは縛れないので Apps Script で確かめます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| Gmail | Apps Script の GmailApp・GmailThread | 未処理のスレッドを探し、返信の下書きを作り、ラベルを付ける |
| Google カレンダー | Apps Script の CalendarApp | 住職と本堂の予定を範囲で取る。書き込まない |
| 檀家・墓所の台帳 | スプレッドシートの読み取り | 該当する家の行を引く。書き込まない |
| Claude API | UrlFetchApp で Messages API を呼ぶ | 構造化出力で JSON を受け取る |
| 受付の記録 | スプレッドシートへの追記 | 1件1行で、種類・選んだ枠・止めた理由を残す |
| 通知 | 共有のチャットとメール | 急ぎの連絡と、照合で止めたもの |
カレンダーにも台帳にも書き込みません。 この構成が書くのは、Gmail の下書きとラベル、受付の記録だけです。法要の予定を入れるのは、檀家から返事が来た後に担当が行います。 下書きの段階で仮の予定を入れると、送らなかった下書きの分だけ住職の予定が埋まります。
API キーはスクリプトのプロパティに置き、スクリプトは寺務所の Google アカウントで持ちます。 担当が替わってもトリガーが止まりません。
人が確認する
下書きは全件を担当が読みます。 自動で送る経路は作りません。
- 申し送りを先に読む …
staff_notesに住職に聞くことがあれば、先に聞きます - 日程を確かめる … 選ばれた枠を、送る直前にもう一度カレンダーで見ます。下書きを作ってから送るまでに、別の法要が入っていることがあります
- 回忌の食い違いを確かめる … メールの回忌と台帳から計算した回忌が違うと書かれていれば、台帳の命日を確かめます
- 言葉づかいを直す … 施主が高齢か、喪中か、ほかの事情を担当は知っています
- 送る … 送った後に、受付の記録の「送信済み」に印を付けます
2番目を省かないでください。 寺務所は電話でも法要を受けます。電話で入った予定は、メールの下書きの時点では知りようがありません。
例外に対処する
| 起きること | 対応 |
|---|---|
| 訃報・枕経などの急ぎの連絡 | Claude を呼ぶ前に通知する。下書きは「すぐお電話ください」の短い文だけにする |
| 台帳で差出人が見つからない | 台帳を渡さずに下書きを作り、staff_notes に「台帳に無い」と書く。新しい檀家か、親族の別の人かを担当が確かめる |
| 名字で引けた家が複数ある | どれも渡さず、「候補が複数」と書く |
| 希望に合う空き枠が無い | selected_slots を空にし、別の時期を尋ねる下書きにする |
| 選んだ枠が一覧に無い・本文の日付が合わない | 下書きを作らずに止め、担当に回す |
| メールの回忌と台帳の回忌が違う | 下書きは作り、staff_notes に両方を書く |
| 添付ファイルだけで本文が無い | 下書きを作らずに担当に回す |
| 営業・勧誘のメール | other で返ってきたものは下書きを作らず、受付の記録にだけ残す |
| Claude API が応答しない・エラー | 「下書き済み」を付けずに終わる。次の回にもう一度拾う。3回続けて失敗したら担当に通知 |
| 1回の実行で件数が多い | 10件で区切り、残りは次の回に回す |
2行目と3行目は、AIの問題ではなく台帳の問題です。 連絡先の列にアドレスが無い家が多いほど増えます。返信のついでにアドレスを台帳に足していくと、数か月で減ります。
記録を残す
- 受付の記録のシートに1件1行:受信日時、スレッドの ID、種類、急ぎかどうか、台帳の引け方(アドレス/名字/見つからない/複数)
- Claude に渡した空き枠の一覧と、選ばれた枠の番号
- Claude が返した JSON の全文(
missing_itemsとstaff_notesを含む) - 照合で止めた場合はその理由
- 担当が送ったか、送る前にどこを直したか(日程を変えた、言葉づかいを直した、住職に聞いた)
- 急ぎの通知を送った日時
2つ目で「渡した空き枠」を残すのは、後で日程の行き違いがあったときに備えるためです。 「メールで言われた日に行ったら別の法要が入っていた」と言われたとき、下書きの時点で空いていたのか、送るまでに埋まったのかを、記録から確かめられます。
04実装レベルの3段階
最小構成では、空き枠を手で書き出す手間が残ります。 1件15分のうち、②の5分はほとんど減りません。確かめるための段階です。 半自動化で1件5分になり、この段階が本記事の想定です。 台帳を引く、空き枠を探す、ひな形に沿って書く、の3つが自動になり、担当は読んで直して送るだけになります。 本格構成は、半自動化を3か月回してから考えてください。 檀家の返事は「2つ目で」「やはり4月に」とまちまちで、仮の予定を自動で入れると、取り消し忘れの予定が残ります。
05工数削減シミュレーション
導入後 120件 × 5分 ÷ 60 = 10 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 檀家が数百軒あり、寺のホームページの問い合わせフォームや代表のメールアドレスに、年忌法要の日程、納骨、墓所の管理、永代供養の相談が月に百件前後届く寺院。住職の予定を Google カレンダーで持っているのに、寺務所の担当が問い合わせのたびに予定を開いて空きを探し、返信を1通ずつ書いている場合。返信の言葉づかいが担当によって違い、担当が休むと返信が止まる場合。墓地を経営する宗教法人の事務所にも使える。
- 問い合わせの大半が電話で、メールが月に十数件の寺院。住職の予定を紙の手帳だけで持っていて、カレンダーに移す予定が無い場合。檀家の台帳をデータで持っておらず、施主と故人を照らす先が無い場合。なお、法要の日程を決めること、お布施や費用の額、墓所の使用の可否、宗旨・作法についての判断は、この構成では代替できません。
07最小構成で試す方法
- 先月届いた問い合わせのメールから20件を選ぶ(法要の日程、墓所、お布施の質問、訃報を混ぜる)
- 寺の決まり(法要の枠の時刻、持ち物、答えない話題)を1枚の文書に書き出す
- 住職と本堂のカレンダーを見て、空いている法要の枠を手で20ほど書き出し、番号を振る
- Claude の画面に、寺の決まり、空き枠の一覧、問い合わせを1件ずつ貼り、第7章の指示で下書きを作らせる
- 実際に送った返信と比べ、日程・言葉づかい・答えてはいけないことの扱いを見る
20件は必ず全部やってください。 日程の問い合わせだけを試すと、うまくいったように見えます。お布施を聞かれたメールで額を書いていないか、訃報を普通の問い合わせとして扱っていないかを見ることが、試す目的です。
| 出てきた内容 | 判断 |
|---|---|
| 一覧の枠だけを選び、答えない話題を書かなかった | Apps Script での自動化に進む |
| 一覧に無い日時を書いた・お布施の額を書いた | 指示の書き方で直る。構成は有効 |
| 台帳が無いと施主と故人が分からない件が多い | 台帳の連絡先の整備が先 |
3行目が出るのは、たいてい親族の別の人が問い合わせてくる場合です。 施主の子や孫からのメールは、台帳のアドレスでは引けません。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 一覧に無い日時が下書きに入る | 番号だけでなく本文の日付も照らす。合わなければ下書きを作らない |
| 住職のカレンダーだけを見て本堂が埋まっている | 2つのカレンダーの両方を引き、どちらかに予定があれば外す |
| 移動の時間を見ずに枠を出す | 法要の前後30分を含めて重なりを見る |
| 回忌の年が違う | AIに計算させず、年忌の表とコードで出す |
| お布施の額を書く | 答えない話題を一覧で渡し、何を聞かれたかを申し送りに書かせる |
| 訃報が下書きの順番待ちになる | Claude の前に言葉で検知して通知する |
| 同じ名字の家を取り違える | 名字で複数引けたらどれも渡さない |
| 返信の返信で古い本文を読む | 引用部分を落とし、最新の本文だけを渡す |
| 途中で失敗したスレッドが二度と拾われない | ラベルは成功したときだけ付ける |
| スキーマで文字数を縛って400になる | minLength/maxLength は使わず、Apps Script で数える |
| スクリプトが個人のアカウントにある | 寺務所のアカウントで持つ。担当が辞めるとトリガーが止まる |
| 下書きの段階で仮の予定を入れる | 入れない。予定は檀家の返事の後に担当が入れる |
上の2行が、この構成でいちばん起きやすい失敗です。 どちらも「空いていない日を候補として送る」という同じ結果になります。空きの計算をプログラムに、選ぶことだけを AI に、と分けてあるかどうかで決まります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 檀家の家の名前、施主と故人の名前、命日、墓所の区画番号、管理料の納入の状況、そしてメールの本文に書かれた家族の事情です。どの家がどの寺の檀家かということ自体が、信仰に関わる情報です。
- 渡す項目を絞る … Claude に渡すのは、下書きに要る施主・故人・命日・区画番号・管理料の状況までです。電話番号、住所、過去帳の記載は渡しません
- 台帳を丸ごと渡さない … 該当する家の1行だけを渡します。引けなかったときは何も渡しません
- 自動で送らない … 下書きまでにします。寺から檀家への言葉は、1通が長く覚えられます
- 答えない話題を決めておく … お布施・費用の額、墓所の使用の可否、宗旨・作法は、住職が答えることです。この構成は寺としての判断を代替しません
- API キーとスクリプトを寺務所のアカウントで管理する … 個人のアカウントにスクリプトを置くと、担当が替わったときに台帳への接続が残ります
- 受付の記録の閲覧者を限る … 家族の事情が書かれたメールの要約が残るシートです。寺務所の担当と住職だけが見られるようにします
誤りが起きた場合のリスクは、空いていない日を候補として送ることと、答えてはいけないことを答えることの2つです。 前者は空き枠の計算と照合で、後者は答えない話題の一覧と担当の確認で防ぎます。どちらも、AIに任せる範囲を「一覧から選ぶ」「ひな形に沿って書く」に絞ることで守ります。
10まず何から始めるか
1週目:寺の決まりを書き出す
法要の枠の時刻、法要を受けない日、持ち物、当日の流れ、塔婆の締め切り、返信の書き出しと結びを、住職と寺務所で1枚のシートにします。答えない話題の一覧もここで決めます。 お布施を聞かれたらどう返すかを、寺として1つに決めます。
2週目:20件で試す
先月の問い合わせから20件を選び、Claude の画面で下書きを作らせます。一覧に無い日時を書いていないか、お布施の額を書いていないか、訃報を見分けたかを最優先で見ます。
3週目:台帳を整える
檀家の台帳の連絡先の列に、メールアドレスを足します。過去1年に問い合わせのあった家から足すと、引ける割合が早く上がります。 年忌の表のシートも作ります。
4週目:Gmail から下書きまでをつなぐ
Apps Script で Gmail を拾い、台帳を引き、空き枠を計算して Claude を呼び、下書きを作るところまで作ります。この時点では、担当は下書きを見るだけで、送る返信は今までどおり自分で書きます。
2か月目: 下書きを直して送る運用に切り替え、受付の記録で「どこを直したか」を数えます。3か月目以降: 直すことの多い言い回しをひな形に戻し、1件15分が何分になったかを実測します。担当が1名休んだ週でも返信が止まらなかった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
構造化出力を output_config.format に type: "json_schema" で指定すること。数値の minimum/maximum、文字列の minLength/maxLength に対応せず400になること。オブジェクトに additionalProperties: false が要ること。新しいスキーマの初回は組み立てに時間がかかり、24時間キャッシュされること | Claude API Docs: Structured outputs | 2026-10-28 |
GmailThread に createDraftReply(body, options)・addLabel・getMessages・getId があり、options で htmlBody・cc・from(getAliases() の値)などを指定できること | Apps Script: Class GmailThread | 2026-10-28 |
GmailApp.search(query, start, max) でスレッドを検索できること | Apps Script: Class GmailApp | 2026-10-28 |
Calendar.getEvents(startTime, endTime) で範囲の予定を取れること | Apps Script: Class Calendar | 2026-10-28 |
| 1回の実行時間が6分まで、トリガーの合計の実行時間が1日 Google Workspace で6時間・個人のアカウントで90分であること | Apps Script: Quotas for Google Services | 2026-10-28 |
| 時間主導型トリガーが毎分から月1回までの間隔で動き、開始の時刻が少しずれることがあること | Apps Script: Installable Triggers | 2026-10-28 |
法要の日程、お布施、墓所の使用についての判断は、住職と寺務所で決めてください。 本記事は公開の技術資料で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-2114)についてのご相談はこちらから。
