新入社員が Google フォームで出す週報に、指導担当の観点に沿ったフィードバックの下書きを付けて指導担当へ送る
新入社員が Google フォームで出す週報に、指導担当が返すフィードバックの下書きを付けます。部署ごとの指導の観点と先週の目標に照らして書き、指導担当へ届けます。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Google Apps Script/Make/Power Automate
- 対象業界
- 小売/建設/物流/製造
- 対象部門
- 人事
- 対象業務
- 内容確認・チェック/書類作成
- 主な課題
- 人手が足りない/属人化している/期限・対応漏れが起きる
- AIで行う処理
- 生成
- 主な効果
- 品質標準化/工数削減/教育コスト削減
- 導入難易度
- ★☆☆☆☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 金曜の夕方、新入社員が Google フォームで週報を出す
- 指導担当が、回答のスプレッドシートで自分の担当の行を探す
- 週報を読み、先週の週報を開いて「来週の目標」を確かめる
- 部署の指導の観点の資料を見て、何を返すかを考える
- 返事を書き、メールかチャットで送る
- 気になる記述があれば、人事部に連絡する
- 人金曜の夕方、新入社員が Google フォームで週報を出す(いまと同じ)
- 自動回答がスプレッドシートに書き込まれたのをきっかけに Apps Script が動く
- 自動本人の部署・指導担当・指導の観点と、先週と先々週の週報を引く
- 自動AIが、良かった点・先週の目標の振り返り・次に意識すること・指導担当が答える質問・気になる記述を出す
- 自動下書きを回答のシートの横の列に書き、指導担当へメールで知らせる
- 自動気になる記述の印が付いたものは、人事部の担当にも知らせる
- 人指導担当が下書きを読み、質問への答えを足し、直したものを確定の欄に書く
- 自動平日の夕方、確定の欄に書かれ送付の印が付いたものを新入社員へ送る
各工程の詳しい説明を読む
- 金曜の夕方、新入社員が Google フォームで週報を出す
- 指導担当が、回答のスプレッドシートで自分の担当の行を探す
- 週報を読み、先週の週報を開いて「来週の目標」を確かめる
- 部署の指導の観点の資料を見て、何を返すかを考える
- 返事を書き、メールかチャットで送る
- 気になる記述があれば、人事部に連絡する
(a)返事が遅れ、一言で終わる。 指導担当は金曜の夕方から月曜の朝にかけて現場の仕事が詰まっています。返事は「お疲れさま、来週も頑張って」の一言になるか、翌週の半ばにずれ込みます。 新入社員にとっては、書いた週報が読まれたのかも分かりません。
(b)指導担当によって中身がばらばら。 細かく返す人もいれば、ほとんど返さない人もいます。同期で集まると「うちの担当は何も言ってくれない」という話になります。
(c)先週の目標と照らしていない。 3番を省くと、目標を立てさせたまま振り返らないことになります。目標の欄が、毎週同じ文の繰り返しになっていきます。
(d)困りごとが読み流される。 「困ったこと」の欄に小さく書かれた「最近あまり眠れていない」が、忙しい週ほど見落とされます。人事部に届くのは、本人が休んだ後です。
- 【人】 金曜の夕方、新入社員が Google フォームで週報を出す(いまと同じ)
- 【自動】 回答がスプレッドシートに書き込まれたのをきっかけに Apps Script が動く
- 【自動】 本人の部署・指導担当・指導の観点と、先週と先々週の週報を引く
- 【自動】 AIが、良かった点・先週の目標の振り返り・次に意識すること・指導担当が答える質問・気になる記述を出す
- 【自動】 下書きを回答のシートの横の列に書き、指導担当へメールで知らせる
- 【自動】 気になる記述の印が付いたものは、人事部の担当にも知らせる
- 【人】 指導担当が下書きを読み、質問への答えを足し、直したものを確定の欄に書く
- 【自動】 平日の夕方、確定の欄に書かれ送付の印が付いたものを新入社員へ送る
7番が、この設計の分かれ目です。 AIが書くのは、週報の記述から読み取れることだけです。質問への答えと、現場で見ていた様子は指導担当が足します。 指導担当の確定を経ないものは、新入社員に届きません。
6番は、AIが判断するのではありません。 体調や気持ちに触れた記述を拾い、人事部の担当が週報の原文を読むきっかけを作るだけです。 見立てを書かせることはしません。
02今回想定するシステム構成
新入社員 ── Google フォーム(週報) ▼ 回答がスプレッドシートに書き込まれる 【トリガー】スプレッドシートのフォーム送信(インストール型) Google Apps Script ├── 新入社員の名簿シート ── 部署・指導担当・観点を引く ├── 回答シート ── 先週と先々週の週報を引く ├── Claude API(UrlFetchApp、構造化出力) │ ── 良かった点・目標の振り返り・次に意識すること │ ・指導担当が答える質問・気になる記述 ├── 回答シートの横の列 ── 下書きを書く └── MailApp ── 指導担当へ通知(気になる記述は人事部へも) ▼ 【指導担当が直して確定の欄に書く】 ▼【トリガー】平日17時(時間主導型) Google Apps Script ── MailApp で新入社員へ送る
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 実行環境 | Google Apps Script | Make、Power Automate |
| 生成AI | Claude API(構造化出力) | OpenAI API、Gemini API |
| 保管 | Google スプレッドシート(回答、名簿、指導の観点) | - |
| 通知 | Gmail(MailApp) | Google Chat |
新しく足すのは、Apps Script と、名簿のシートと観点のシートだけです。 フォームと回答のスプレッドシートはいまのものを使い、回答のシートの右に「下書き」「確定」「送付」「送付日時」の列を足します。 人事のシステムには、この構成から書き込みません。
きっかけにするのは、スプレッドシートの側のフォーム送信のトリガーです。 公式のページでは、フォーム送信のインストール型トリガーには Google フォームの側とスプレッドシートの側の2種類があります。スプレッドシートの側のイベントには、質問の名前と値の組(namedValues)と、書き込まれた範囲(range)が入ります。 下書きを同じ行の横の列に書くので、行の位置が分かる後者を使います。
AIは UrlFetchApp から Claude API を呼びます。 公式のページでは、muteHttpExceptions を有効にすると失敗の応答でも例外を投げずに応答を返します。応答の状態を自分で見て、失敗した行に印を付けるために使います。 構造化出力は output_config.format に JSON Schema を渡す形で、公式のページでは additionalProperties を false にすることなどが求められます。
03どうやって実装するのか
処理の起点を決める
2つのトリガーを使います。 1つ目は、週報の回答がスプレッドシートに書き込まれたときに動くフォーム送信のトリガー、2つ目は、平日の17時に確定したフィードバックを送る時間主導型のトリガーです。
フォーム送信のトリガーは、インストール型で作ります。 公式のページでは、インストール型トリガーは認可の要るサービスを呼べ、常に作った人のアカウントで動くとされています。Claude API を呼ぶ UrlFetchApp も、メールを送る MailApp も認可が要るので、シンプルトリガーでは動きません。作るのは人事部の育成担当の共用アカウントにします。 個人のアカウントで作ると、その人が異動したときに止まります。
時間主導型のトリガーは、指定した時刻ちょうどには動きません。 公式のページでは、たとえば9時に設定すると9時から10時の間のどこかで動き、その時刻は日ごとに変わらないとされています。17時に設定すれば、17時台のどこかで送られます。 新入社員の終業の前に届けたいなら、16時に設定します。
失敗は画面に出ません。 公式のページでは、トリガーの失敗は所有者へのメールで要約が届き、実行のログに残ります。育成担当の共用アカウントのメールを、誰かが毎日見る運用にします。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 今週の週報 | 提出日時、社員番号、5つの欄の記述 | イベントの namedValues(回答シート) |
| 新入社員の名簿 | 社員番号、部署、配属日、指導担当の名前とメールアドレス | 名簿シート |
| 指導の観点 | 部署ごとに3〜5つの観点と、それぞれの短い説明 | 観点シート |
| 先週と先々週の週報 | 5つの欄の記述と、指導担当が確定したフィードバック | 回答シート |
質を決めるのは、指導の観点の書き方です。 「主体性」のような言葉だけでは、AIは何を見ればよいか分からず、どの新入社員にも同じ励ましを書きます。 「分からないことをその日のうちに聞けたか」「作業の前に標準書を開いたか」のように、週報の記述と照らせる形で書きます。
先週の確定したフィードバックを渡すのは、同じことを繰り返さないためです。 先週「報告のタイミング」に触れていれば、今週はその後どうなったかを尋ねます。毎週同じ指摘が並ぶと、新入社員は読まなくなります。
データの取得方法を決める
今週の週報は、イベントの中身から取ります。 公式のページでは、スプレッドシートの側のフォーム送信のイベントには namedValues(質問の名前と値の組)、values(シートの並びの値)、range(書き込まれた範囲)が入ります。range の行番号を控え、下書きを同じ行の横の列に書きます。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 5つの欄の記述 | namedValues | 下書きの材料 |
| 書き込まれた行 | range | 下書きを書く位置 |
| 部署と指導担当 | 名簿シートを社員番号で引く | 観点の選択と通知の宛先 |
| 指導の観点 | 観点シートを部署で引く | 下書きの観点 |
| 先週・先々週の週報 | 回答シートを社員番号と提出日で引く | 目標の振り返りと繰り返しの防止 |
API の呼び出しは、UrlFetchApp の fetch に4つの指定を渡す形です。 method は post、contentType は application/json、headers に API のキーと anthropic-version、payload に指示と週報と output_config を JSON の文字列にして入れます。公式のページでは、contentType を省くと既定はフォームの形式(application/x-www-form-urlencoded)になるとされています。JSON を送るのに contentType を書き忘れると、API は中身を読めません。
Claude API のキーは、スクリプトのプロパティに置きます。 公式のページでは、スクリプトのプロパティはスクリプトのすべての利用者で共有されるアプリ全体の設定に向くとされています。共有されるので、このスクリプトを編集できる人を育成担当に限ります。 コードに直接書くと、スプレッドシートを複製した人にもキーが渡ります。
AIへ渡す前に整形する
- 社員番号を確かめる … 名簿に無い社員番号なら、AIを呼ばずに育成担当へ知らせます
- 欄の空白を確かめる … 5つの欄のうち3つ以上が空なら、下書きを作らず指導担当に「記述が少ない」とだけ知らせます
- 先週の週報を探す … 提出日の7日前から13日前に提出された行を探します。無いときは「先週の週報なし」と明示して渡します
- 長さをそろえる … 1つの欄が極端に長いときは、先頭から一定の文字数で切り、切ったことを指導担当への通知に書きます
- 名前を外す … AIに渡すのは社員番号の代わりの通し番号と記述だけです。本人と指導担当の名前、メールアドレスは渡しません
- 二重の提出を確かめる … 同じ週に2回出ていれば、新しい方だけを扱い、古い方の行に「再提出あり」と書きます
3番の「先週の週報なし」は、AIが目標の振り返りを作り上げないための材料です。 何も渡さないと、「先週の目標だった〇〇はどうでしたか」と、ありもしない目標を書くことがあります。
5番で名前を外しても、下書きの冒頭の呼びかけは困りません。 宛名は送るときにスクリプトが名簿から差し込みます。
AIに処理させる
させるのは、週報の記述から5つの項目を書き出すことです。 どの項目も、週報の言葉を引いて書かせます。
| 項目 | 中身 | 書かないもの |
|---|---|---|
| 良かった点 | 「できるようになったこと」などから、観点に当たる記述を1〜2つ引いて認める | 週報に無い長所 |
| 目標の振り返り | 先週の「来週の目標」が今週の記述に出てくるかを見て、出てこなければ尋ねる | 達成したかどうかの決めつけ |
| 次に意識すること | 観点のうち、今週の記述から次の一歩が見えるものを1つ | 叱責、他の新入社員との比較 |
| 指導担当が答える質問 | 「聞きたいこと」の欄の質問を写す | 質問への答え |
| 気になる記述 | 体調・睡眠・気持ち・人間関係・けが・ヒヤリハットに触れた記述を写す | 見立て、助言 |
4行目と5行目が、この構成でいちばん大事な線引きです。 質問への答えをAIに書かせると、現場の標準書と違う手順や数値がもっともらしく書かれます。 締め付けのトルク、薬品の扱い、設備の止め方を誤って覚えると、けがにつながります。答えるのは指導担当です。
5行目も同じです。 「眠れない」に対して「睡眠の質を上げるには」と書くのは、AIの仕事ではありません。記述をそのまま写し、指導担当と人事部が本人と話すきっかけにします。 ヒヤリハットの記述は、安全の担当に回すべき情報でもあります。
| させないこと | 理由 |
|---|---|
| 評価・点数を付ける | 週報の書きぶりと仕事の出来は別。評価は上司が決める |
| 他の新入社員と比べる | 同期の比較は、本人の意欲を下げる |
| 作業の手順・数値を答える | 標準書と違う答えがけがにつながる |
| 体調や気持ちへの助言 | 人事部と産業医の領分 |
| 週報に無い出来事を書く | 「先週の目標」を作り上げない |
指示内容を固定する
あなたは製造業の会社で、新入社員の指導担当を補助する立場です。
新入社員の週報を読み、指導担当が返すフィードバックの下書きを書いてください。
下書きは指導担当が直してから送ります。
【書く項目】
1. good_points: 週報の記述から、指導の観点に当たる良かった点を1〜2つ。
それぞれ、根拠にした週報の言葉を quote にそのまま写してください。
2. goal_review: 先週の「来週の目標」が今週の記述に出てくるかを見て、
出てくれば認め、出てこなければ「〇〇はどうでしたか」と尋ねる一文。
先週の週報が「なし」のときは空にしてください。
3. next_focus: 指導の観点のうち、今週の記述から次の一歩が見えるものを1つ。
命令ではなく、「〜してみてください」の形で1〜2文。
4. questions_for_trainer: 「指導担当に聞きたいこと」の欄の質問を、
1つずつそのまま写してください。答えは書かないでください。
5. attention: 体調、睡眠、気持ち、人間関係、けが、ヒヤリハットに
触れた記述があれば、そのまま写してください。無ければ空の配列。
【厳守事項】
- 週報に書かれていないことを書かないでください。先週の目標を作らないでください。
- 作業の手順、数値、設備や薬品の扱いについて、答えや助言を書かないでください。
- attention に当たる記述について、助言や見立てを書かないでください。
- 評価、点数、他の新入社員との比較を書かないでください。
- 「頑張って」「さすが」のような中身の無い言葉だけで文を終えないでください。
- 全体で300字以内。です・ます調。宛名と署名は書かないでください。
【部署の指導の観点】{viewpoints}
【先週の週報と、指導担当が送ったフィードバック】{last_week}
【先々週の週報の「来週の目標」】{two_weeks_ago_goal}
【今週の週報】{this_week}
「答えは書かないでください」を質問の項目に直接書かないと、親切に答えます。 生成AIは質問を見ると答えようとし、「一般的には〜です」と前置きして数値を書きます。 項目の定義そのものを「写す」にしておくのが確実です。
「中身の無い言葉だけで文を終えない」は、第3章の(a)への対策です。 下書きが一言の励ましになるなら、AIを入れる意味がありません。
出力形式を固定する
次の形のJSONで受け取ります。 Claude API の構造化出力で、この形に合う JSON を返させます。
{
"good_points": [
{ "text": "", "quote": "" }
],
"goal_review": "",
"next_focus": { "viewpoint": "", "text": "" },
"questions_for_trainer": [""],
"attention": [
{ "category": "health | sleep | feeling | relationship | injury | near_miss",
"quote": "" }
]
}
1つ目の理由は、項目ごとにシートの列へ分けて書けることです。 good_points と goal_review と next_focus は下書きの本文に、questions_for_trainer は「答える質問」の列に、attention は「気になる記述」の列に書きます。指導担当は、どこを直し、どこに答えを足せばよいかが一目で分かります。
2つ目は、attention が空かどうかでスクリプトが通知の宛先を決められることです。 空でなければ人事部の担当にも知らせ、injury と near_miss のときは安全の担当にも知らせます。この判断をAIの文章から読み取る必要がありません。
3つ目は、quote で下書きの根拠を確かめられることです。 良かった点が週報のどの言葉から来たかが分かり、週報に無いことを書いていないかを指導担当が見分けられます。 公式のページでは、構造化出力の schema では文字数の制約(minLength・maxLength)が使えないとされているため、300字の上限は指示に書き、スクリプトで長さを数えます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 回答シート | フォーム送信のトリガーのイベント | 今週の週報と書き込まれた行 |
| 名簿・観点のシート | SpreadsheetApp で読む | 部署・指導担当・観点 |
| Claude API | UrlFetchApp(POST、JSON) | 5つの項目の下書き |
| 回答シートの横の列 | SpreadsheetApp で書く | 下書き、答える質問、気になる記述 |
| 指導担当・人事部 | MailApp | 下書きができた知らせ、気になる記述の知らせ |
| 新入社員 | MailApp(平日17時台) | 確定したフィードバック |
指導担当への知らせには、下書きの本文と、回答シートの該当の行へのリンクを書きます。 指導担当は行を開き、「確定」の列に直した文を書き、「送付」の列に印を付けます。メールの返信で返事をさせないのは、確定した文をシートに残すためです。
新入社員へは、指導担当の名前で送ります。 MailApp の name に指導担当の名前を入れ、replyTo に指導担当のメールアドレスを入れ、cc に指導担当を入れます。新入社員が返信すれば、指導担当に届きます。 公式のページでは、noReply を有効にすると replyTo は無視されるため、noReply は使いません。
送る前に、その日に送れる残りの数を確かめます。 公式のページでは、MailApp の getRemainingDailyQuota でその日の残りの宛先数が分かり、上限は Google Workspace のアカウントで1日1,500です。月160件と通知では届きませんが、他のスクリプトと同じアカウントで動かすなら、残りが少ない日は翌日に回します。
人が確認する
指導担当が見るのは、自分の担当の2人分の下書きです。
attentionを先に見る … 気になる記述があれば、下書きより先に本人と話す段取りを考えます。人事部にも同時に届いています- 質問に答える … 「答える質問」の列の質問に、現場の標準書を確かめて答えを書き足します。ここはAIが空けている場所です
quoteを確かめる … 良かった点が週報の記述から来ているかを見ます- 現場で見た様子を足す … 週報に書かれていないが、指導担当が現場で見ていたことを一言足します
- 確定の欄に書き、送付の印を付ける
2番と4番が、指導担当にしか書けない部分です。 AIの下書きは週報の記述しか知りません。現場での様子を一言足すだけで、新入社員にとって「読まれた」返事になります。
目標は、1件6分です。 読む時間と質問に答える時間が中心で、質問の無い週は3分ほど、質問が多い週は10分を超えます。 6分を大きく超える指導担当が続くなら、観点の書き方か、質問の多さに理由があります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 名簿に無い社員番号 | AIを呼ばず、育成担当へ知らせる。入力の誤りか、名簿の更新漏れ |
| 欄の多くが空 | 下書きを作らず、指導担当に「記述が少ない」とだけ知らせる |
| 先週の週報が無い | 「先週の週報なし」と明示して渡し、goal_review を空にさせる |
| 同じ週に二度提出 | 新しい方を扱い、古い方に「再提出あり」と書く |
| Claude API が失敗を返す | muteHttpExceptions で応答を受け、行に「下書き失敗」と書く。30分後の時間主導型トリガーで再試行 |
| 下書きが300字を超える | スクリプトで数え、超えたものは「長い」と印を付けて指導担当に任せる |
| 指導担当が3日たっても確定しない | 育成担当にまとめて知らせる。新入社員に下書きを直接送ることはしない |
| 指導担当が異動・休職 | 名簿の指導担当を差し替える。差し替えるまでは育成担当に通知が届く |
| 1回の実行が長くなる | 公式のページでは、1回の実行は6分まで。1件ずつ動くので通常は届かない |
7行目は、この設計の考え方そのものです。 指導担当が忙しくて確定できない週に、AIの下書きをそのまま送れば返事は早く届きます。ただ、それは指導担当の返事ではなく、新入社員もいずれ気づきます。 遅れているという事実を育成担当に知らせるところまでにします。
記録を残す
- 週報の原文(回答シートにそのまま残る)
- AIが返した JSON の全文と、呼んだ日時
- 指導担当が確定した文と、送付の日時
- 下書きと確定した文の違い … 指導担当がどこを直したか
attentionの記述と、人事部・安全の担当に知らせた日時- 下書きに失敗した行と、その理由
4つ目は、観点と指示の見直しの材料になります。 指導担当が毎回 next_focus を書き換えているなら、観点の書き方が現場に合っていません。直された箇所を月に1回まとめて読むと、指示の何を変えればよいかが分かります。
5つ目は、人事部が扱う記録です。 気になる記述への対応の経過は、このシートではなく人事部の面談の記録に残します。回答のシートを見られる人に、面談の中身まで見せないためです。
04実装レベルの3段階
最小構成は確かめるための段階です。 1件ずつ貼るので、月160件には使えません。 半自動化で1件15分が6分になり、この段階が本記事の想定です。 本格構成で足すのは人事部の側の仕事で、指導担当の1件あたりの時間は変わりません。 月ごとの経過を見て、伸び悩んでいる新入社員と、返事が遅れがちな指導担当を早めに見つけられます。 段階を飛ばさないでください。 半自動化を3か月回して、指導担当が下書きのどこを直しているかが分かってから、月ごとのまとめを足します。下書きの質が安定しないうちに月ごとのまとめを作ると、人事部が読むのは AIの下書きの癖のまとめになります。 本格構成でも、評価のための資料にはしません。 月ごとの経過は、育成の手当てが要る新入社員を見つけるためのもので、人事考課の材料には使わないことを、まとめの冒頭に毎回書きます。
05工数削減シミュレーション
導入後 160件 × 6分 ÷ 60 = 16 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 新入社員を毎年数十人採用し、現場の先輩社員が指導担当として1年ほど付く製造業・建設業・物流業など。新入社員が週報を出しているのに、指導担当の返事が遅れたり、一言だけで終わったりしている場合。週報をすでに Google フォームで集めているか、集める形に変えられる場合。Google Workspace を使っている場合。
- 新入社員が数人で、人事か上司が毎週面談して足りている場合。週報を出させておらず、日々の口頭の指導だけで回している場合。週報の中身が作業の数量の記録だけで、所感や困りごとを書く欄が無い場合。なお、新入社員の評価、配属の判断、体調や心の不調への対応は、この構成では代替できません。
07最小構成で試す方法
- 先月の週報から10件を選ぶ(指導担当が丁寧に返したものと、一言で終わったものを混ぜる)
- 名前と社員番号を消し、部署の指導の観点とあわせて手元の Claude の画面に貼る
- 第7章の指示の【書く項目】と【厳守事項】をそのまま貼り、下書きを書かせる
- 当時の指導担当に下書きを見せ、「このまま送れるか」「何を足したいか」を聞く
- 質問に答えていないか、週報に無いことを書いていないかを確かめる
10件は必ずやってください。 スクリプトを書く前に、「観点と週報から、指導担当が使える下書きが出るか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 指導担当が「少し直せば送れる」と言った | スクリプトに進む |
| 質問に答えてしまった | 指示の書き方で直る。構成は有効 |
| どの新入社員にも同じような励ましになった | 観点の書き方が抽象的。 AIの問題ではない |
3行目が出たら、観点を書き直します。 「主体性」を「分からないことをその日のうちに聞けたか」に変えるだけで、下書きが変わります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 質問に答えてしまう | 項目の定義を「写す」にし、答えを書かないことを項目の中に書く |
| ありもしない先週の目標を書く | 「先週の週報なし」を明示して渡し、goal_review を空にさせる |
| どの新入社員にも同じ励ましになる | 観点を週報と照らせる形に書き直す |
| 気になる記述に助言を書く | 写すだけにし、助言と見立てを禁じる |
| トリガーが動かない | シンプルトリガーでは認可の要るサービスを呼べない。 インストール型で作る |
| 作った人が異動して止まる | インストール型は作った人のアカウントで動く。共用アカウントで作る |
| 17時に届かない | 時間主導型は指定の時刻から1時間のどこかで動く。16時に設定する |
| 失敗に気づかない | 失敗は所有者へのメール。共用アカウントのメールを毎日見る |
| API のキーが漏れる | スクリプトのプロパティに置き、編集できる人を限る |
| 下書きがそのまま送られる | 確定の欄に書かれたものだけを送る。下書きの列からは送らない |
| 新入社員の返信が届かない | replyTo に指導担当。noReply を使わない |
| API に送った JSON が読まれない | contentType の既定はフォームの形式。application/json を明示する |
| 週報が評価に使われると思われる | 評価に使わないことを入社時に伝える。 困りごとが書かれなくなる |
上の4行が、この構成の失敗のほとんどです。 どれも、AIに「週報に書かれていないこと」を書かせない、という同じ線引きから出ています。
下の2行のうち最後の行は、仕組みではなく運用の問題です。 週報に困りごとが書かれなくなれば、気になる記述を拾う仕組みは空回りします。新入社員が安心して書けるかどうかが、この構成の前提です。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 新入社員の週報(仕事の内容、失敗、困りごと)、そして記述によっては体調・睡眠・気持ち・人間関係に触れた内容です。
- AIに名前を渡さない … 渡すのは通し番号と記述だけです。宛名と指導担当の名前は、送るときにスクリプトが差し込みます
- 気になる記述をAIに判断させない … 写して人事部に知らせるだけです。本人との面談、産業医への相談は人事部が決めます
- 週報を評価に使わない … 下書きにも評価や点数を書かせません。週報が評価に使われると知れば、新入社員は困りごとを書かなくなります。 そのことを新入社員に先に伝えておきます
- AIが下書きを書いていることを新入社員に伝える … 指導担当が直して送る仕組みであることを、入社時の説明で伝えます
- 回答のシートを見られる人を限る … 指導担当には自分の担当の行だけが見えるのが理想です。難しければ、指導担当ごとのシートに分けて書き出します
- 作業の手順と安全の答えは標準書から … AIに答えさせない設計を、指導担当にも説明しておきます
誤りが起きた場合のリスクは、誤った手順を新入社員が覚えることと、困りごとが見落とされることの2つです。 前者は質問に答えさせることから、後者は気になる記述を要約で丸めることから起きます。どちらも「写す」と「答えない」の線引きで防ぎます。
10まず何から始めるか
1週目:指導の観点を書き直す
部署ごとの指導の観点を、週報の記述と照らせる形に書き直します。各部署の指導担当の代表と一緒に、1部署3〜5つにします。
2週目:10件で試す
第8章の手順で試し、質問に答えていないか、週報に無いことを書いていないかを最優先で見ます。
3週目:シートを整える
名簿のシートと観点のシートを作り、回答のシートに「下書き」「確定」「送付」「送付日時」の列を足します。共用アカウントを用意し、API のキーをスクリプトのプロパティに置きます。
4週目:下書きまでをつなぐ
フォーム送信のトリガーで下書きをシートに書き、指導担当へ知らせるところまで作ります。この時点では新入社員への送付は作らず、指導担当がいままでどおり自分で返事を送ります。
2か月目: 確定の欄からの送付と、気になる記述の人事部への通知を足します。3か月目以降: 下書きと確定した文の違いを月に1回まとめて読み、観点と指示を直します。一言で終わる返事がなくなり、困りごとの記述が週のうちに人事部に届くようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| インストール型トリガーが認可の要るサービスを呼べ、常に作った人のアカウントで動くこと。フォーム送信のトリガーにフォームの側とスプレッドシートの側があること。時間主導型は指定の時刻から1時間の中で動くこと。失敗が所有者へのメールで届くこと | Google: Installable triggers | 2026-10-14 |
スプレッドシートの側のフォーム送信のイベントに namedValues・values・range が入ること | Google: Event objects | 2026-10-14 |
| 1回の実行が6分まで。MailApp の宛先数が Google Workspace で1日1,500であること | Google: Quotas for Google Services | 2026-10-14 |
method・contentType・headers・payload を指定できること。contentType の既定が application/x-www-form-urlencoded であること。muteHttpExceptions を有効にすると失敗の応答でも例外を投げないこと | Google: UrlFetchApp | 2026-10-14 |
getRemainingDailyQuota で残りの宛先数が分かること。name・replyTo・cc を指定でき、noReply を有効にすると replyTo が無視されること | Google: MailApp | 2026-10-14 |
| スクリプトのプロパティがスクリプトのすべての利用者で共有されること | Google: Properties Service | 2026-10-14 |
output_config.format に JSON Schema を渡すこと。additionalProperties を false にすること。minLength・maxLength が使えないこと | Claude Docs: Structured outputs | 2026-10-14 |
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1475)についてのご相談はこちらから。
