Media > AI活用ユースケース > 総務 > 教員から Google Chat に届く出張・休暇・物品・会計の手続きの質問に、学校の事務の手引きを根拠に答え、手引きに無いものを事務室へ回す

教員から Google Chat に届く出張・休暇・物品・会計の手続きの質問に、学校の事務の手引きを根拠に答え、手引きに無いものを事務室へ回す

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

教員が Google Chat のアプリに書いた出張・休暇・物品・会計の手続きの質問に、学校の事務の手引きを根拠に答えます。条件が足りなければ聞き返し、手引きに無いものや判断の要るものは事務室の受付に回します。

サマリー
生成AI
ChatGPT/Claude/Gemini
連携・自動化
Google Apps Script/Power Automate/Python
対象業界
教育/自治体
対象部門
総務
対象業務
問い合わせ対応/情報検索
主な課題
人手が足りない/問い合わせが多い/情報が見つからない
AIで行う処理
対話
主な効果
対応スピード向上/工数削減/検索時間短縮
導入難易度
★★★☆☆
実装レベル
本格構成
費用感
API連携(中)
人間の確認
条件付き
現在工数
40h/月
AI導入後
10h/月
想定削減
75%
年間削減
360h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. 教員が事務室の窓口・内線・Chat で手続きを聞く
  2. 事務職員が、日帰りか宿泊か、引率かなど、答えに要る条件を聞き返す
  3. 手引きの該当する節を開き、手順と様式名と締切を確かめる
  4. 教員に答える。様式の場所を案内し、必要なら共有ドライブのリンクを送る
  5. 手引きに書いていないことは、事務長に確かめてから答える
  6. 答えた内容は記録しない
導入後(After)
  1. 人教員が Google Chat で、事務室の手続きのアプリに質問を書く
  2. 自動アプリ(Apps Script)が質問を受け、同じ教員の直近のやり取りを会話の記録から引く
  3. 自動手引きの節の一覧から、質問の語と節の見出し・キーワードが重なる節を最大5つ選ぶ
  4. 自動質問・直近のやり取り・選んだ節を Claude API に渡す
  5. 自動「答える/聞き返す/事務室へ回す」のどれかと、その中身が返る
  6. 自動答えるときは、節の番号・様式名・締切を付けて Chat に返す
  7. 自動聞き返すときは、選択肢付きの質問を返し、教員の返事を待つ
  8. 自動回すときは、事務室の受付シートに条件と近い節を書き、事務室の Chat のスペースに知らせる
  9. 人事務職員が受付シートの質問に答え、必要なら手引きに節を足す
  10. 人事務室が週1回、答えた記録を見て、誤った案内や足りない節を直す
各工程の詳しい説明を読む
  1. 教員が事務室の窓口・内線・Chat で手続きを聞く
  2. 事務職員が、日帰りか宿泊か、引率かなど、答えに要る条件を聞き返す
  3. 手引きの該当する節を開き、手順と様式名と締切を確かめる
  4. 教員に答える。様式の場所を案内し、必要なら共有ドライブのリンクを送る
  5. 手引きに書いていないことは、事務長に確かめてから答える
  6. 答えた内容は記録しない

(a)同じ質問が毎日届く。 「年休の申請はいつまでに」「立替払いの精算の様式はどれか」は、毎月何十回も届きます。手引きに書いてあることを、手引きを読む代わりに事務室に聞いている状態です。 答えるのは数分でも、そのたびに作業が止まります。

(b)答えが職員によって少しずつ違う。 手引きを確かめずに覚えている内容で答えると、改訂前の締切や、古い様式を案内することがあります。 3名のうち誰が受けたかで、教員が受け取る答えが変わります。

(c)聞き返しが往復になる。 Chat で「出張の申請は?」とだけ届くと、条件を聞き返して返事を待つあいだに授業が始まります。1つの質問が、半日かけて3往復することもあります。

(d)答えた記録が残らない。 どの節についての質問が多いかが分からないため、手引きのどこが分かりにくいかを改訂のときに直せません。

  1. 【人】 教員が Google Chat で、事務室の手続きのアプリに質問を書く
  2. 【自動】 アプリ(Apps Script)が質問を受け、同じ教員の直近のやり取りを会話の記録から引く
  3. 【自動】 手引きの節の一覧から、質問の語と節の見出し・キーワードが重なる節を最大5つ選ぶ
  4. 【自動】 質問・直近のやり取り・選んだ節を Claude API に渡す
  5. 【自動】 「答える/聞き返す/事務室へ回す」のどれかと、その中身が返る
  6. 【自動】 答えるときは、節の番号・様式名・締切を付けて Chat に返す
  7. 【自動】 聞き返すときは、選択肢付きの質問を返し、教員の返事を待つ
  8. 【自動】 回すときは、事務室の受付シートに条件と近い節を書き、事務室の Chat のスペースに知らせる
  9. 【人】 事務職員が受付シートの質問に答え、必要なら手引きに節を足す
  10. 【人】 事務室が週1回、答えた記録を見て、誤った案内や足りない節を直す

7番目が、この設計の分かれ目です。 手引きの手順が条件で分かれる節(出張の宿泊の有無、休暇の種類など)は、条件がそろうまで答えません。 聞き返しの往復は、事務職員ではなくアプリが受け持ちます。

10番目で事務室が見るのは、答えた記録のうち、教員が「解決しなかった」と押したものと、根拠の節が1つだけのものです。 全件を読む設計にはしません。

02今回想定するシステム構成

構成図
教員(Google Chat で、事務室の手続きのアプリに質問)
   ▼【トリガー】メッセージを受けたとき(Chat アプリの Message の機能)
Google Apps Script(Chat アプリ)
   ├──▶ 会話の記録のシートから、直近のやり取りを引く
   ├──▶ 手引きの節の一覧から、近い節を最大5つ選ぶ
   ▼
Claude API(構造化出力)
   │   答える/聞き返す/事務室へ回す と、その中身
   ▼
Google Apps Script
   ├──▶ 答え・聞き返しを Chat に返す(30秒以内)
   ├──▶ 回すものは事務室の受付シートへ
   └──▶ 事務室の Chat のスペースへ知らせる(Webhook)
   ▼
【事務職員が受付シートの質問に答え、手引きを直す】
役割想定する製品代替候補
実行環境Google Apps Script(Google Chat アプリ)Power Automate、Python
生成AIClaude API(構造化出力)Gemini API、OpenAI API
シートGoogle スプレッドシート(手引きの節の一覧・会話の記録・受付・答えた記録)Microsoft 365 のブック
通知Google Chat(事務室のスペースへの Webhook)Gmail

新しく足すのは、Chat アプリとしてのスクリプトと Claude API の契約だけです。 手引きは今の Google ドキュメントを節ごとにシートへ写して使います。申請の様式やほかのシステムには書き込みません。 申請そのものは、これまでどおり教員が様式で行います。

土台になるのは、Apps Script で作る Google Chat のアプリです。 公式のクイックスタートでは、Google Cloud のプロジェクトで Chat API を有効にし、アプリの名前・機能・接続先として Apps Script のデプロイ ID・公開する相手を設定する手順が示されています。前提として、Google Chat を使える Business または Enterprise の Google Workspace のアカウントが挙げられています。 学校向けの版を使っている場合は、Chat アプリを設定・公開できるかを管理者が先に確かめてください。

Chat アプリは、Google Workspace のアドオンとして作ります。 メッセージを受けたときなどのトリガーに対応する関数は、Chat API の設定で指定します。アプリが受け取るイベントには、送った人(chat.user)、スペース(chat.space)、メッセージの中身(messagePayload)が入ります。 利用者の言語や時間帯も commonEventObject から取れます。

答えは30秒以内に返す必要があります。 同期で答えるには30秒以内に応答し、それを超える場合や別のスペースに書く場合は、Chat API を呼んで非同期で返すとされています。第7章で、この30秒の中に処理を収める方法を書きます。

03どうやって実装するのか

Step1

処理の起点を決める

教員がアプリにメッセージを送ったときに動きます。 教員は、アプリとの1対1のチャットに書くか、学年のスペースでアプリを指名して書きます。このアプリは1対1のチャットだけで使う設定にします。 学年のスペースで答えると、休暇の理由などを他の教員に見せることになるためです。

事務室の勤務時間外も動かします。 夜や週末に書かれた質問にも答え、回すものは翌朝の受付シートに並びます。回したときの返事には「事務室は翌開室日の朝に確認します」と書き、すぐに答えが来ると思わせないようにします。

定時のトリガーを1つだけ置きます。 毎朝7時台に、手引きのドキュメントの最終更新日を見て、変わっていれば節の一覧のシートを作り直します。作り直しの途中で質問が来たときは、古い一覧で答えます。 節の一覧は新しいものを別のシートに作り、終わってから入れ替えます。

Step2

入力データを集める

データ中身取得元
質問教員が書いた本文、送った日時Chat のイベント(messagePayload)
送った人教員のメールアドレスと表示名Chat のイベント(chat.user)
直近のやり取り同じ教員との直近3往復の質問・聞き返し・答え会話の記録のシート
手引きの節節の番号、章、見出し、キーワード、本文、様式名、締切、改訂日手引きの節の一覧のシート
判断を回す一覧「答えず事務室へ回す」と決めた事柄の一覧(休暇の事由の該当、校費で払えるか、など)事務室が作る一覧

質を決めるのは、手引きの節の一覧のキーワードの欄です。 教員は「年休」「有休」「休みの届」と書き、手引きの見出しは「年次休暇の申請」です。見出しの語だけで節を選ぶと、近い節が選ばれません。 事務室が、教員が実際に使う言い方を節ごとに5〜10語書き足します。

判断を回す一覧は、事務長と決めます。 「どこまでをアプリが答え、どこからを事務室が受けるか」を、AIの判断ではなく学校の取り決めとして持ちます。

Step3

データの取得方法を決める

質問は、Chat のイベントから取り出します。 メッセージの本文、送った人、スペースの種類をイベントから読みます。スペースが1対1のチャットでなければ、「1対1のチャットで聞いてください」とだけ返して終わります。

取るものどこから何に使うか
質問の本文と送った人Chat のイベント答えの対象と、会話の記録の鍵
直近3往復会話の記録のシート(送った人で絞る)聞き返しへの返事をつなぐ
近い節の候補手引きの節の一覧(見出しとキーワードの一致の数で並べる)AIへの根拠
判断を回す事柄判断を回す一覧AIへの指示

節の候補は、スクリプトで選びます。 質問の語と、節の見出し・キーワードが重なる数を数え、上位5節を取ります。直近のやり取りに出た節は、必ず候補に残します。 聞き返しへの返事(「宿泊です」)だけでは、どの節の話か分からないためです。

手引きのドキュメントからの節の一覧づくりは、毎朝の定時の処理で行います。 見出しのスタイルで節を区切り、本文・様式名・締切を列に分けて書き出します。質問のたびにドキュメントを読むと、30秒の中に収まりません。

節見出しキーワード(事務室が足す)様式名締切
2-4宿泊を伴う県外への引率大会、遠征、引率、泊まり、出張旅行命令伺(引率)出発の10日前
3-1年次休暇の申請年休、有休、休みの届、半日休暇届前日まで

キーワードの欄だけは、毎朝の作り直しで上書きしないようにします。 ドキュメント側に無い、事務室が足した列だからです。節の番号で前の一覧から引き継ぎます。

Step4

AIへ渡す前に整形する

  1. スペースの確認 … 1対1のチャットでなければ答えません
  2. 個人の事情の目印 … 本文に病名・家族の状態などの語があれば、AIへ渡す前に「(個人の事情)」に置き換えます。手続きを答えるのに、事情の中身は要りません
  3. 会話のつなぎ … 直近のやり取りが30分以内なら同じ話の続きとし、それより前なら新しい質問として扱います
  4. 節の候補の選び出し … 見出しとキーワードの一致の数で上位5節。一致が1つも無ければ、AIを呼ばずに事務室へ回します
  5. 節の本文の切り詰め … 5節の本文の合計が長すぎる場合は、手順・様式名・締切の欄だけを渡します
  6. 判断を回す一覧の添付 … 一覧の全文を毎回渡します

4番目で AI を呼ばないのは、根拠の無い答えを作らせないためです。 一致する節が無い質問は、手引きに書いていない可能性が高く、AIに渡すと一般的な知識で答えを組み立ててしまいます。

Step5

AIに処理させる

させるのは、選ばれた節だけを根拠に、答えるか、聞き返すか、事務室へ回すかを選び、その中身を書くことです。

させること中身判断できないときの扱い
応じ方の選択answer/clarify/escalate迷えば escalate
答え手順を3〜5行、節の番号、様式名、締切節に締切が無ければ締切を書かない
聞き返し答えを分ける条件を1つ、選択肢を2〜4個条件が2つ以上なら、先に分かれるほうを1つ
回す理由手引きに無い/判断を回す一覧に当たる/節どうしが食い違う—
分かった条件の要約回すときに、やり取りで分かった条件を箇条で—

聞き返しは1回に1つの条件だけにさせます。 「日帰りか宿泊か、県内か県外か、引率か」を一度に聞くと、教員は授業の合間に答えきれません。答えを分ける条件のうち、節の分かれ目に近いものから1つずつ聞きます。 3往復で条件がそろわなければ、事務室へ回します。

やり取りは、たとえば次のようになります。

回教員アプリ
1来月の大会の引率の出張は、何を出せばいいですか宿泊はありますか。(日帰り/1泊以上)
21泊です行き先は県内ですか、県外ですか。(県内/県外)
3県外です節2-4「宿泊を伴う県外への引率」によると、旅行命令の伺いを出発の10日前までに出します。様式は「旅行命令伺(引率)」です。旅費の金額は精算のときに事務室が確かめます

2回目の聞き返しは、1回目の返事を受けて選んだものです。 日帰りなら県内・県外で手順が分かれない節もあり、その場合は2回目を聞かずに答えます。 どの条件で節が分かれるかは、節の本文の書き方で決まります。

させないこと理由
出張・休暇を認めるかの判断校長・事務長が決める
支出を校費で払えるかの判断会計の規程の解釈は事務室が行う
旅費や日当の金額の計算金額は事務室が精算のときに確かめる
節に無い手順の補い一般的な知識で手順を作らない
休暇の事由に当たるかの判断教員の個人の事情に関わる

3行目がいちばん起きやすい失敗です。 「○○市への出張の旅費はいくらになりますか」と聞かれると、AIは手引きの日当の表から金額を組み立てようとします。経路や時間帯で金額が変わり、誤った金額を教員が覚えると精算のときにもめます。 金額は「精算のときに事務室が確かめる」と答えさせ、手順だけを案内します。

Step6

指示内容を固定する

あなたは中学・高校の事務室の、教員向けの手続きの案内役です。
下の【手引きの節】だけを根拠に、教員の質問に応じてください。

【応じ方】次のどれか1つを mode に入れてください。
- answer ... 節に手順が書いてあり、答えに要る条件がそろっている
- clarify .. 節の手順が条件で分かれ、その条件がまだ分からない
- escalate . 節に書いていない/【事務室へ回す事柄】に当たる/節どうしが食い違う

【厳守事項】
- 【手引きの節】に書いていない手順・様式・締切を書かないでください。
  一般的な学校の慣行や、ほかの学校の例で補わないでください。
- 答えるときは、根拠にした節の番号を cited_sections に必ず入れてください。
  節の番号を挙げられない答えは書かず、escalate にしてください。
- 聞き返すときは、条件を1つだけ聞き、選択肢を2〜4個付けてください。
- 出張や休暇を認めるか、校費で払えるか、休暇の事由に当たるかは判断せず、
  escalate にしてください。
- 旅費・日当などの金額を計算しないでください。
- 「(個人の事情)」の中身を推測したり、尋ねたりしないでください。
- 迷ったときは answer を選ばず、escalate にしてください。

【事務室へ回す事柄】{escalation_rules}
【直近のやり取り】{history}
【手引きの節】{sections}
【教員の質問】{question}

「迷ったときは answer を選ばない」を明記しないと、AIは答えるほうに寄ります。 案内役として作られた指示は、回すより答えることを良いことと受け取りがちです。誤った案内の1件は、回した10件より事務室の手間を増やします。

「節の番号を挙げられない答えは書かない」は、スクリプトの照合とつながっています。 cited_sections が空の answer は、スクリプトの側で escalate に置き換えます。

Step7

出力形式を固定する

次の形のJSONで受け取ります。 Claude API の構造化出力を使い、要求の output_config の format に type を json_schema として下の形のスキーマを入れます。

{
  "mode": "answer | clarify | escalate",
  "category": "travel | leave | purchase | accounting | other",
  "answer": {
    "steps": ["", ""],
    "form_names": [""],
    "deadline": "",
    "cited_sections": ["2-3"]
  },
  "clarify": { "question": "", "options": ["", ""] },
  "escalate": {
    "reason": "not_in_manual | judgment_required | conflicting_sections",
    "known_conditions": [""],
    "nearest_sections": [""]
  }
}

1つ目の理由は、cited_sections をスクリプトで照合できることです。 挙げられた節の番号が、渡した5節の中に本当にあるかを確かめ、無い番号を挙げた答えは escalate に置き換えます。 様式名も、その節の様式名の欄と一致するかを確かめます。

2つ目は、mode ごとに Chat の返し方を変えられることです。 answer は手順と様式名と、共有ドライブの様式へのリンクをスクリプトが足して返します。clarify は選択肢を並べ、escalate は「事務室に回しました」と受付の番号を返します。リンクはAIに書かせず、節の一覧の様式の欄からスクリプトが付けます。

3つ目は、known_conditions で事務室が聞き直さずに済むことです。 「宿泊あり」「県外」「生徒の引率なし」と分かっていれば、事務職員は受付シートを読むだけで答えに入れます。

Step8

システムへ連携する

つなぎ先方式内容
Google ChatChat アプリのイベントと応答質問を受け、答え・聞き返し・受付の番号を返す
手引きの節の一覧読み取り(毎朝の作り直しのときだけ書く)節の候補と様式の欄
会話の記録のシート読み書き直近3往復
Claude APIUrlFetchApp.fetch() で POST応じ方と中身
受付シート書き込み回した質問・分かった条件・近い節
事務室の Chat のスペース受信 Webhook に POST「受付が1件増えた」の知らせ

UrlFetchApp.fetch() は、method に post、contentType に JSON、headers に API キー、payload に要求の本文を入れて呼びます。muteHttpExceptions を true にして、失敗の応答でも例外で止まらないようにします。 失敗したときは「いまは答えられないので事務室に回しました」と返し、受付シートに書きます。

API キーと Webhook の URL は、スクリプト プロパティに置きます。 スクリプト プロパティはスクリプトのすべての利用者で共有されるため、スクリプトの編集権限は事務室と情報担当の教員に限ります。

事務室のスペースへの知らせには、教員の名前と質問の分類だけを書きます。 質問の本文は受付シートで読みます。休暇の質問の中身を、スペースの全員に流さないためです。

Step9

人が確認する

AIの答えを、教員に返す前に人が見ることはしません。 授業の合間に答えが要る質問で、人の確認を挟むとアプリの意味がなくなるためです。その代わりに、答えてよい範囲を節の根拠で絞り、後から記録を見ます。

  1. 回された質問に答える … 事務職員が受付シートを見て、教員に Chat で答えます
  2. 手引きに節を足す … 同じ質問が2回回されたら、手引きに節を足すかを事務長と決めます
  3. 答えた記録を週1回見る … 教員が「解決しなかった」を押したものと、根拠の節が1つだけの答えを読みます
  4. 誤った案内を直す … 誤りがあれば、その教員に正しい案内を送り、節の本文かキーワードを直します

答えの最後には「解決した/解決しなかった」のボタンを付けます。 押されたかどうかを答えた記録に残し、「解決しなかった」は翌朝の受付シートにも並べます。

目標は、300件をならして1件2分です。 回されたものは事務職員が答えるので数分、アプリが答えたものは週1回の見直しで数十秒です。回される割合が3割を超える月は、キーワードの欄が足りていないか、手引きに無い手続きが増えています。

Step10

例外に対処する

起きること対応
1対1のチャット以外で質問された「1対1のチャットで聞いてください」とだけ返す
節の候補が1つも無いAIを呼ばずに事務室へ回す
30秒に間に合わない受け取った旨だけを先に返し、答えは Chat API で後から送る(本格構成)。半自動化の段階では事務室へ回す
Claude API がエラーを返す「いまは答えられないので事務室に回しました」と返し、受付シートへ
cited_sections が渡した節に無いescalate に置き換える
3往復で条件がそろわない分かった条件を添えて事務室へ回す
手引きの改訂の途中古い節の一覧で答え、入れ替えが終わってから新しい一覧を使う
写真やファイルだけが送られた「文字で質問を書いてください」と返す
様式のリンクが開けない様式名だけを返し、答えた記録に「リンク切れ」の印を付ける
同じ教員が同じ質問を短い間に繰り返す2回目は事務室へ回す。答えが伝わっていない可能性がある

3行目は、この構成でいちばん気にする例外です。 節の候補の選び出しをスクリプトで先に済ませ、AIに渡す本文を短くすると、多くの質問は30秒の中に収まります。 それでも間に合わない質問は、半自動化の段階では事務室に回して取りこぼしを防ぎます。

Step11

記録を残す

  • 質問の本文(個人の事情を置き換えたもの)、送った人、日時
  • 選んだ節の候補と、AIが返したJSONの全文
  • 教員に返した答え・聞き返し・受付の番号
  • 「解決した/解決しなかった」の記録
  • 回した質問と、事務職員が答えた内容、手引きに節を足したかどうか
  • 答えたときに使った節の一覧の改訂日

最後の行は、改訂のあとに誤った案内を探すときに使います。 締切が変わった節について、改訂前の一覧で答えた記録を抜き出し、その教員にだけ正しい締切を送り直せます。

節ごとの質問の数は、手引きの改訂の材料になります。 質問が多い節は、本文が分かりにくいか、見つけにくい場所にあります。

04実装レベルの3段階

最小構成:手引きをAIの画面に貼り、過去の質問を入れて応じ方を比べる / 根拠の範囲と指示の確かめ
半自動化:上記+Chat アプリで質問を受け、節の候補を選び、答え・聞き返し・回すを返す。30秒に間に合わないものは回す / 教員への一次の応答
本格構成:上記+30秒を超える答えの非同期の返信、受付シートからの事務職員の返信、毎朝の節の一覧の作り直し、解決ボタンの集計 / 一次の応答から事務室の受付と手引きの改訂までの全体

本記事の想定は本格構成です。 1件8分が2分になる計算は、この段階で置いています。半自動化の段階では、間に合わずに回るものと、事務室が受付シートから答える手間が残ります。 段階を飛ばさないでください。 半自動化を1か月回すと、どの章の質問が多く回されるかが分かります。その章のキーワードと節を足してから本格構成に進むほうが、回される割合が下がります。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
3 名
月間件数
300 件
1件あたり現在時間
8 分
1件あたり導入後時間
2 分
現在  300件 × 8分 ÷ 60 = 40 時間/月
導入後 300件 × 2分 ÷ 60 = 10 時間/月
月間削減時間
30h
削減率
75%
年間削減時間
360h
年間金額換算(時間単価3,000円)
108万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 教職員が100名前後いる中学・高校(学校法人の私立校や、事務の手引きを学校ごとに持つ公立校)で、事務室の2〜4名が教員からの手続きの質問に口頭・内線・チャットで答えている場合。出張・休暇・物品の購入・校費の会計の手続きを、事務の手引きとして文書にまとめている場合。Google Workspace を使っており、管理者が Chat アプリの設定と公開を行える場合。
向いていない
  1. 事務の手引きが無く、手続きが事務職員の頭の中にしかない場合(先に手引きを作るほうが効きます)。教員が数十名で、事務室に直接聞く数が月に数十件しかない場合。手続きの多くが教育委員会の電子申請で完結し、学校の事務室に質問が来ない場合。AIに出張や休暇の可否、経費として認めるかの判断をさせたい場合(この構成が答えるのは手引きに書かれた手順までです)。

07最小構成で試す方法

  1. 先月、事務室に届いた質問から30件を書き出す(答えた内容も事務職員に思い出して書いてもらう)
  2. 手引きのうち、30件に関係する章を会社が契約しているAIサービスに貼る
  3. 30件を1件ずつ、「この手引きだけを根拠に、答えるか、聞き返すか、事務室へ回すかを選んでください。答えるときは節の番号を書いてください」と指示して入れる
  4. 出てきた応じ方と答えを、事務職員の答えと比べる
出てきた内容判断
事務職員と同じ答え・同じ聞き返しが出て、判断の要るものを回したChat アプリとの連携に進む
答えは合っているが、聞き返さずに答えたものがある指示の書き方と、節に条件の分かれ目を書くことで直る。構成は有効
手引きに無い手順を補って答えた手引きの節の不足が先。 節を足してからやり直す

3行目が出ることは珍しくありません。 事務職員が手引きに無いことを、覚えている内容で答えてきたということです。AIが補った手順を事務長に見せ、手引きに書くべきかを決めてください。

08実装時につまずきやすいポイント

問題対策
条件を聞かずに答える節の手順が条件で分かれるなら clarify。 節の本文にも分かれ目を書く
手引きに無い手順を補って答える節の候補が無ければAIを呼ばない。cited_sections を照合する
教員の言い方で節が選ばれないキーワードの欄に、教員が使う言い方を足す
30秒を超えてエラーになる節の候補をスクリプトで選び、本文を切り詰める。超えるものは回す
旅費の金額を答えてしまう指示で禁じ、スキーマに金額の欄を作らない
学年のスペースで休暇の相談が見える1対1のチャットだけで答える
改訂前の締切で答える毎朝の作り直しと、答えた記録への改訂日の保存
Chat アプリを設定できない版を使っている管理者が先に、Chat アプリの設定と公開ができるかを確かめる
回す範囲が職員によって違う判断を回す一覧を事務長と決め、毎回AIに渡す

上の3行が、誤った案内のほとんどです。 どれも、答える根拠を手引きの節に置き切れていないことから起きます。指示より、節の一覧とキーワードを整えるほうが効きます。

下の2行は、運用の約束で防ぎます。 回す範囲が決まらないまま動かすと、アプリが判断に踏み込んだ答えを返し、事務室が後からその答えを打ち消すことになります。

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 教員の名前とメールアドレス、手続きの質問の本文、事務の手引きです。休暇の質問には、本人や家族の健康の事情が書かれることがあります。

  1. 個人の事情をAIに渡さない … 病名や家族の状態の語は、AIに渡す前に置き換えます。手続きの案内に事情の中身は要りません。 教員にも「事情は書かずに手続きだけを聞いてください」とアプリの説明に書きます
  2. 学習に使われない契約で使う … Anthropic は、API などの商用の製品への入力と出力を、既定ではモデルの学習に使わないとしています。フィードバックを送るなど明示的に許可した場合は別とされているため、学校の利用ではフィードバックの機能を使わない運用にします
  3. 1対1のチャットだけで使う … スペースで答えると、他の教員に質問が見えます
  4. 判断をAIに渡さない … 出張・休暇を認めるか、校費で払えるかは、校長・事務長・事務室が決めます。 この構成が答えるのは手引きに書かれた手順までです
  5. 生徒の情報を入れない … 引率や部活動の会計の質問で、生徒の名前を書かないようアプリの説明に書きます。このアプリは教員だけが使う設定にし、生徒のアカウントには公開しません
  6. 知らせに本文を載せない … 事務室のスペースには、教員の名前と分類だけを送ります

誤りが起きた場合のリスクは、誤った手順や締切を案内して申請が遅れることと、判断の要る事柄にアプリが答えてしまうことの2つです。 前者は節の照合と改訂日の記録で、後者は判断を回す一覧と「迷えば回す」の指示で防ぎます。

10まず何から始めるか

1週目:回す事柄の一覧を決める

事務長と、「アプリが答えず事務室に回す事柄」を書き出します。出張・休暇の可否、校費で払えるか、金額の計算は、最初から一覧に入れます。

2週目:30件で試す

先月の質問から30件を選び、手引きを貼ったAIサービスで応じ方を比べます。聞き返さずに答えたもの、手引きに無い手順を補ったものを数えます。

3週目:手引きを節の一覧にする

手引きのドキュメントを節ごとにシートへ写し、様式名・締切・キーワードの欄を埋めます。2週目で聞き返しが要った節には、条件の分かれ目を本文に書き足します。

4週目:Chat アプリを事務室の中で動かす

Chat アプリを作り、事務室の3名と情報担当の教員だけに公開して、過去の質問を投げて確かめます。30秒に収まるか、回されたものが受付シートに正しく並ぶかを見ます。

2か月目: 教員に公開し、半自動化で回します。回された質問の章を数え、キーワードと節を足します。3か月目以降: 非同期の返信と解決ボタンの集計を足し、本格構成にします。1件8分が何分になったかと、回される割合、「解決しなかった」の割合を実測した時点で、この構成は完成です。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-10-07/最終更新:2026-10-07
確認した内容情報源確認日
Apps Script で Chat アプリを作るには、Google Chat を使える Business または Enterprise の Google Workspace のアカウント、Chat API を有効にした Google Cloud のプロジェクトが前提で、アプリの名前・機能・接続先(Apps Script のデプロイ ID)・公開する相手を設定することGoogle for Developers: Build a Google Chat app with Apps Script2026-10-07
Chat アプリをアドオンとして作り、トリガーに対応する関数を Chat API の設定で指定すること。イベントに commonEventObject と chat.user・chat.space・messagePayload が入ること。30秒を超える応答や別の場所への書き込みは Chat API を呼ぶことGoogle for Developers: Build Google Chat apps as Google Workspace add-ons2026-10-07
同期で応答するには30秒以内に、やり取りのあったスペースへ返す必要があり、それ以外は Chat API で非同期に返すことGoogle for Developers: Receive and respond to interaction events2026-10-07
1回の実行が6分まで。URL の取得が Google Workspace で1日100,000回Google for Developers: Quotas for Google Services2026-10-07
UrlFetchApp.fetch() の method・contentType・payload・headers・muteHttpExceptionsGoogle for Developers: UrlFetchApp2026-10-07
スクリプト プロパティがスクリプトのすべての利用者で共有されることGoogle for Developers: Properties Service2026-10-07
受信 Webhook が一方向の知らせで、スペースあたり毎秒1回の上限を共有すること。URL を公開の場所に貼らないことGoogle for Developers: Send Google Chat messages with incoming webhooks2026-10-07
Claude API の構造化出力を output_config の format(type: json_schema と schema)で指定することClaude Platform Docs: Structured outputs2026-10-07
Anthropic API などの商用の製品への入力と出力を、既定ではモデルの学習に使わないこと。フィードバックの送信などで明示的に許可した場合は別であることAnthropic Privacy Center: Is my data used for model training?2026-10-07

どの事柄をアプリが答えず事務室に回すかは、校長・事務長と決めてください。 学校向けの Google Workspace の版で Chat アプリを設定・公開できるかは、管理者が確かめてください。本記事は Google for Developers、Claude Platform Docs、Anthropic Privacy Center で確認できた範囲だけを扱っています。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-0815)についてのご相談はこちらから。

AI活用について相談する
目次