社内からの自動化の相談を、効果と手間で仕分けて着手の順番を決める
各部署から届く「この作業を自動化したい」という相談を要約して分類し、着手の順番を決める材料を整えます。窓口の作業は、1件ずつ聞いて見積もることから、そろった材料を確かめることに変わります。
- 利用ツール
- ChatGPT/Claude/Gemini/Google Apps Script/Make/Power Automate
- 対象業界
- IT・SaaS/保険/自治体/製造/金融
- 対象部門
- 情報システム/経営企画
- 対象業務
- 分類・仕分け/比較検討
- 主な課題
- 人手が足りない/判断に時間がかかる/問い合わせが多い
- AIで行う処理
- 分類
- 主な効果
- 判断支援/属人化解消/工数削減
- 導入難易度
- ★☆☆☆☆
- 実装レベル
- 最小構成
- 費用感
- 既存ツールのみ(小)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- メール、チャット、打ち合わせの終わり際の立ち話で相談を受け、窓口の担当者が自分のメモに書き留める
- 週の初めに、たまった相談を相談台帳のスプレッドシートへ書き写す
- 相談文だけでは中身が分からないものについて、相談者に時間をもらって聞き取る
- その業務が月に何件あり、1件何分かかり、何人で行っているかを、その場で聞いて見積もる
- 似た仕組みが社内に無いかを、過去案件のフォルダと自分の記憶から探す
- 作るとしたらどれくらいかかるかを見積もる
- 見積もりが出そろったところで、着手の順番を担当者どうしの相談で決める
- 決まらなかったもの、後回しにしたものは、そのまま台帳に残る
- 人相談者が Google フォームに入力する。「月に何件」「1件何分」「何人」は必須項目にする
- 自動フォームの送信をきっかけに Apps Script が動き、回答を項目名で読む
- 自動3つの数が入っているかを確かめる。欠けていれば受理せず、聞き返しの下書きを出す
- 自動同じ業務の相談が過去に無いかを、業務名と部署で照合する
- 自動業務の説明文から、個人名と取引先名を伏せる
- 自動要約、作業の種類の分類、既存の仕組みの候補、実装の手間の目安をAIが返す
- 自動Apps Script が社内で決めた固定の式で点数を計算し、相談台帳へ書く
- 自動台帳が点数の高い順に並ぶ。自動化しないほうがよい理由が付いたものは別の区分へ移る
- 人週に1回、窓口の担当者が上位のものだけを開き、申告された時間の裏を取る
- 人着手する/保留する/却下するを決め、理由を相談者へ返す
- 人四半期ごとに、着手したものの実績を集計し、点数の式を見直す
各工程の詳しい説明を読む
- メール、チャット、打ち合わせの終わり際の立ち話で相談を受け、窓口の担当者が自分のメモに書き留める
- 週の初めに、たまった相談を相談台帳のスプレッドシートへ書き写す
- 相談文だけでは中身が分からないものについて、相談者に時間をもらって聞き取る
- その業務が月に何件あり、1件何分かかり、何人で行っているかを、その場で聞いて見積もる
- 似た仕組みが社内に無いかを、過去案件のフォルダと自分の記憶から探す
- 作るとしたらどれくらいかかるかを見積もる
- 見積もりが出そろったところで、着手の順番を担当者どうしの相談で決める
- 決まらなかったもの、後回しにしたものは、そのまま台帳に残る
(a)時間が書かれていないので、効果が測れない。 相談文にあるのは「大変です」「時間がかかっています」という言葉で、数が書かれていません。 4番の聞き取りをして初めて、月何件で1件何分かが分かります。この聞き取りが、1件あたりの時間のいちばん大きな部分です。
(b)順番が、声の大きさと相談の近さで決まる。 材料がそろっていないので、最後は「今いちばん強く言ってきている部署」が上に来ます。担当者が誠実であるほど、直前に聞いた困りごとが重く感じられます。
(c)既存の仕組みで済むものが、新しく作られる。 5番は記憶に頼るので、担当者が変われば結果が変わります。 契約済みのSaaSの標準機能で足りる相談も、その機能を知っている人が窓口にいるかどうかで扱いが変わります。
(d)却下と保留の区別がつかず、理由が返らない。 8番で台帳に残った相談は、相談者から見ると「何も返ってこないもの」です。これが続くと、相談そのものが来なくなります。 来なくなった相談は台帳に載らないので、窓口の側からは問題が減ったように見えます。
- 【人】 相談者が Google フォームに入力する。「月に何件」「1件何分」「何人」は必須項目にする
- 【自動】 フォームの送信をきっかけに Apps Script が動き、回答を項目名で読む
- 【自動】 3つの数が入っているかを確かめる。欠けていれば受理せず、聞き返しの下書きを出す
- 【自動】 同じ業務の相談が過去に無いかを、業務名と部署で照合する
- 【自動】 業務の説明文から、個人名と取引先名を伏せる
- 【自動】 要約、作業の種類の分類、既存の仕組みの候補、実装の手間の目安をAIが返す
- 【自動】 Apps Script が社内で決めた固定の式で点数を計算し、相談台帳へ書く
- 【自動】 台帳が点数の高い順に並ぶ。自動化しないほうがよい理由が付いたものは別の区分へ移る
- 【人】 週に1回、窓口の担当者が上位のものだけを開き、申告された時間の裏を取る
- 【人】 着手する/保留する/却下するを決め、理由を相談者へ返す
- 【人】 四半期ごとに、着手したものの実績を集計し、点数の式を見直す
1番目が、この設計の出発点です。 入口をフォームに寄せ、3つの数を必須にすることが削減の大半を生みます。AIを足さなくても、①の8分は減ります。 逆に、入口を寄せずにAIだけを足しても、書かれていない数はAIにも分かりません。
9番目で、人が見るのは全件ではありません。 点数の上位から順に、その週に着手を検討する数件だけを開きます。全件の裏を取る設計にすると、18.0時間はほとんど減りません。
7番目を機械の式にしているのも、意図してのことです。 材料の整理はAIにさせますが、どう重み付けするかは式の側に置きます。 重み付けは社内の価値判断で、後から変わるからです。
02今回想定するシステム構成
各部署からの相談
│ 受け付ける入口を Google フォームに寄せる
▼【トリガー】フォーム送信(インストール可能なトリガー)
Google スプレッドシート(回答シート)
▼
Google Apps Script
├──▶ 3つの数(月に何件/1件何分/何人)が入っているかの確認
│ 欠けていれば受理せず、聞き返しの下書きを出す
├──▶ 過去の相談との重複照合、個人名・取引先名の伏せ字化
▼
Claude API ── ① 相談内容の要約と、作業の種類への分類
│ ② 既存の仕組みで済むものの検出
│ ③ 実装の手間の目安と、判断の根拠
▼
Google Apps Script ── 点数の計算(社内で決めた固定の式)
▼
相談台帳シート(点数の高い順に並ぶ)
▼
【週1回、人が上位だけを確かめる】
├──▶ 申告された時間の裏取り(似た業務の実績・操作ログ)
├──▶ 着手する/保留する/却下する の決定
└──▶ 相談者へ理由を返す
│
▼
四半期ごとに、着手したものの実績を集計して式を直す| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 実行環境 | Google Apps Script | Power Automate、Make |
| 処理 | Claude API | OpenAI API、Gemini API |
相談台帳と過去案件の一覧は、新しく足す製品ではありません。 どちらもスプレッドシートで足り、通知も既存の社内チャットに流します。新しく契約するものは、生成AIの利用分だけです。
土台になるのは、Apps Script の「インストール可能なトリガー」です。 Apps Script のトリガーは2種類あり、シンプルトリガーには、認可が必要なサービスを呼べない、他のファイルにアクセスできない、実行が30秒を超えられない、という制限があります。 外部のAPIを呼び、別のスプレッドシートを読むこの構成では使えません。
インストール可能なトリガーには、フォーム送信時に動くものがあります。 公式の説明では「ユーザーがフォームに回答したときに実行される」とされ、フォーム側とスプレッドシート側の両方で使えます。時間主導のトリガーも毎分から月1回までの間隔で設定できます。
注意すべき性質が3つあります。 「常に作成した人のアカウントで実行される」こと、別のアカウントで作られたトリガーは一覧にも出ないこと、「スクリプトの実行やAPIリクエストではトリガーは動かない」ことです。前の2つは運用の引き継ぎに、最後の1つはテストのしかたに効いてきます。
トリガーが失敗すると Apps Script が [email protected] からメールを送り、履歴は「実行数」パネルで確認できます。監視の仕組みを自分で作らなくてよいということです。
03どうやって実装するのか
処理の起点を決める
Google フォームが送信されたことを起点にします。 インストール可能なトリガーの「フォーム送信時」を使い、1件届くたびに動かします。
1日1回のまとめ処理にはしません。 着手は点数順ですが、台帳に載るのは早いほどよいからです。 載っていない相談は比較の対象にならず、その間だけ「声の大きさ」で決まります。
本構成では、回答の履歴がそのまま表として残るスプレッドシート側に付けます。あわせて時間主導のトリガーを1つだけ足し、週1回、未確認の上位を窓口へ通知します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 相談フォームの回答 | 相談者、部署、業務名、業務の説明、月に何件、1件何分、何人、いつまでに、来年も続くか | Google フォーム |
| 過去案件の一覧 | 過去に作った自動化の業務名、使った仕組み、実装にかかった人日、今も動いているか | 過去案件台帳 |
| 既存の仕組みの一覧 | 契約済みのSaaSの標準機能、社内で共通に使える仕組み、その用途 | 情報システム部で用意 |
| 実装の手間の目安 | 0.5人日/2人日/5人日と、それぞれに当たる例 | 社内で決めた目安表 |
質を決めるのは、上から2つです。 3つの数が入っていなければ点数が出ず、過去案件の一覧が無ければ実装の手間の目安が「勘」に戻ります。「来年も続くか」は後述の点数の式で使います。来年やめる業務を自動化するのは、作った瞬間に捨てるものを作ることです。
データの取得方法を決める
フォーム送信のトリガーが渡すイベントには、どちら側に付けたかで違う情報が入ります。
| 付ける側 | イベントに入るもの |
|---|---|
| スプレッドシート側 | namedValues(「フォーム送信の質問名と値を含むオブジェクト」)、values(「スプレッドシートに表示されるのと同じ順序の値の配列」)、range、authMode、triggerUid |
| Google フォーム側 | response(「フォーム全体に対するユーザーの回答を表す FormResponse オブジェクト」)、source、authMode、triggerUid |
どちらで読むにせよ、位置で読まないでください。 values は列の並びそのもので、質問を1つ足しただけで、それ以降の値がすべてずれます。 FormResponse 側も同じで、getItemResponses() は「フォームに項目が表示されるのと同じ順序で」返しますが、テキスト、日付、時刻、段落の項目は未回答でも空文字が返る一方、それ以外の項目は未回答だと配列から除外されるとされています。配列の長さが回答ごとに変わります。 質問名をキーにする namedValues で引いてください。
相談者のメールアドレスは、設定を有効にしないと取れません。 getRespondentEmail() は「Form.setCollectEmail(collect) の設定が有効な場合にのみ機能する」とされています。理由を返す動線がこの記事の要なので、最初に確かめてください。
AIへ渡す前に整形する
- 3つの数の確認 … 月に何件、1件何分、何人が入っているか。1つでも欠けていれば、そこで止めます
- 数の範囲の確認 … 1件何分が0以下、480分より大きい、月に何件が0といった値は確認に回します
- 重複の照合 … 同じ部署から同じ業務名の相談が過去90日にあれば、既存の相談に紐づけます
- 説明文の整形 … 転記された署名、引用の記号、繰り返しの改行を落とします
- 伏せ字化 … 個人名と取引先名を
【氏名】【取引先】に置き換えます - 長さの上限 … 長すぎる説明文は先頭の一定量に切り、切ったことを記録に残します
1番目を「警告を出して続行」にしないでください。 3つの数が欠けた相談を受理すると、点数の出ない行が台帳にたまります。点数の無い行は、結局また声の大きさで拾われます。 受理せず、聞き返しの下書きを返すところまでを自動で行い、相談の状態は「情報待ち」にします。
AIに処理させる
させるのは3つだけです。 相談内容の要約と分類、既存の仕組みで済むものの検出、実装の手間の目安とその根拠の提示です。
| させること | 具体的に | 判断できないときの扱い |
|---|---|---|
| 要約 | 相談内容を3文以内にまとめる | 説明が短すぎればそのまま写す |
| 分類 | 集計/転記/通知/承認/検索/点検/作成 から1つ | 当てはまらなければ other |
| 既存の仕組みの検出 | 一覧と照らし、似たものを候補として挙げる | 無ければ no、確信が持てなければ maybe |
| しないほうがよい理由 | 発生が月単位でない/来年やめる/法令で人が見る必要がある | 相談文に書かれている場合だけ |
| 実装の手間の目安 | 0.5/2/5(人日)から1つ | 根拠にする過去案件が無ければ 2 |
分類を7つに限っているのは、点数の式で使うためです。 分類ごとに「残る割合」を社内で固定するので、自由文だと当てはめられません。
| させないこと | 理由 |
|---|---|
| 着手の順番を決める | 順番は式で出す。 説明できない順番は相談者に返せない |
| 点数を計算する | 掛け算の間違いが見えない形で混ざる。計算は Apps Script が行う |
| 申告された数を直す | 月間件数、1件あたり分、対象人数はそのまま写す |
| 自動化後の分を見積もる | 分類ごとの固定の割合で決める。推測させると点数が動く |
| 却下・保留を決める | 人が決める。AIは理由を挙げるところまで |
| 相談者への返信文を書く | 却下の文面は人が書く |
上の2行が、この構成でいちばん大事な線引きです。 順番と点数をAIに出させると、その場では一覧が出来上がります。しかし基準を変えたくなったとき、何を変えればよいのかが分かりません。 式が外に出ていれば、直すのは式の1行です。
指示内容を固定する
あなたは情報システム部門で、各部署から届く「この作業を自動化したい」という
相談を仕分ける立場です。相談フォームの回答だけを見て整理してください。
着手の順番も、点数も、採否も決めないでください。
【やること】
1. 相談内容を3文以内に要約する。相談文に無いことを足さない。
2. 作業の種類を次の7つから1つ選ぶ。当てはまらない場合だけ other。
shuukei(集計)/ tenki(転記)/ tsuuchi(通知)/ shounin(承認)/
kensaku(検索)/ tenken(点検)/ sakusei(作成)
3.【社内の既存の仕組みの一覧】と照らし、既存の仕組みで済む可能性を判定し、
似たものがあれば、その名称を candidate に1つだけ書く。
4. 自動化しないほうがよい理由に当たる記述があれば挙げる。
- low_frequency ... 発生が月単位でない(年に数回しか起きない)
- ending .......... 来年やめる、別システムに移行すると書かれている
- legal_review .... 法令や社内規程で人が確認する必要があると書かれている
相談文に書かれていないものを推測で挙げないこと。
5. 実装の手間を 0.5 / 2 / 5(人日)から選ぶ。
【過去案件の一覧】にある似た案件の実績人日を根拠にする。
【厳守事項】
- 着手の順番を書かない。優先度、順位、おすすめ、至急などの語を使わない。
- 点数を計算しない。数値の掛け算をしない。
- volume_month(月に何件)、min_per_case(1件何分)、headcount(何人)は、
相談者が書いた値をそのまま写す。多い・少ないの補正をしない。
書かれていない場合は null とし、missing_fields にその項目名を入れる。
- 自動化した後に何分になるかを書かない。
- existing_solution.candidate は【社内の既存の仕組みの一覧】にある名称だけ
から選ぶ。一覧に無い製品名やサービス名を出さない。
- 実装の手間は 0.5 / 2 / 5 のいずれか。中間の値を書かない。根拠にできる
過去案件が無い場合は 2 とし、effort_basis に「該当なし」と書く。
- 相談者への返信文を書かない。
- evidence には、判断の根拠にした相談文の該当箇所を、要約せず原文のまま写す。
【相談フォームの回答】{form_response}
【社内の既存の仕組みの一覧】{existing_tools}
【過去案件の一覧】{past_projects}
「優先度、順位、おすすめ、至急などの語を使わない」まで書かないと、要約に混ざります。 相談文には「至急お願いします」「いちばん困っています」と書かれているので、何も言わなければ要約がその温度をそのまま運んできます。 温度を運ぶのは、式で順番を決める意味を消します。
「補正をしない」を2か所に書いているのも同じ理由です。 禁じるだけでは「実態は30件程度と推定される」と添えてきます。申告値と実測値が混ざると、裏取りの動線が意味を失います。
出力形式を固定する
次の形のJSONで受け取ります。
{
"request_id": "",
"summary": "",
"category": "shuukei | tenki | tsuuchi | shounin | kensaku | tenken | sakusei | other",
"reported": {
"volume_month": 0,
"min_per_case": 0,
"headcount": 0,
"continues_next_year": "yes | no | unknown"
},
"missing_fields": ["volume_month"],
"existing_solution": { "found": "yes | maybe | no", "candidate": "", "evidence": "" },
"not_recommended": ["low_frequency"],
"effort_days": 2,
"effort_basis": "",
"evidence": "",
"needs_human": "yes | no"
}
この形を毎回そろえるために、構造化出力(Structured Outputs)を使います。 Claude API では output_config.format に type: "json_schema" とスキーマを渡すと、応答がそのスキーマに従うよう制約されます。1件でも形が崩れると、その行だけ点数が出ずに台帳から漏れます。
| 制約 | 内容 | この構成での扱い |
|---|---|---|
required と additionalProperties | オブジェクトでは additionalProperties を false にする必要がある | すべてのオブジェクトに書く |
enum | 文字列・数値・真偽値・null に使える | category と found と effort_days を固定する |
| 数値・文字列の制約 | minimum、maximum、minLength、maxLength、pattern はサポートされない | 範囲の確認は Apps Script 側で行う |
3行目を見落とさないでください。 「1件何分は480以下」といった範囲をスキーマで縛ることはできません。前処理で範囲を確かめているのは、このためです。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| Google フォーム/回答シート | インストール可能なトリガー | 相談の受け付け |
| 過去案件台帳/既存の仕組みの一覧 | スプレッドシートの読み取り | 手間の根拠と、仕組みの照合 |
| Claude API | UrlFetchApp によるHTTP呼び出し | 要約・分類・検出・手間の目安 |
| 相談台帳シート | スプレッドシートの書き込み | 点数と材料の記録 |
| 社内チャット | 受信用のURLへの送信 | 週1回、上位の通知 |
点数は Apps Script が計算します。社内で決めた固定の式を、スクリプトの中に1か所だけ書きます。
月間削減見込み(分)
= 現在の1件あたり分 × (1 - 残る割合) × 月間件数 × 対象人数
点数 = 月間削減見込み(分) / 実装の手間(人日) × 継続係数
| 使う値 | 決め方 |
|---|---|
| 1件あたり分/月間件数/対象人数 | 申告値。裏を取ったものは取った値に差し替える |
| 残る割合 | 分類ごとに社内で固定(例:転記 0.1/集計 0.2/通知 0.1/承認 0.3/検索 0.3/点検 0.4/作成 0.5) |
| 実装の手間(人日) | 0.5/2/5 の3段階 |
| 継続係数 | 来年も続く 1.0/分からない 0.7/来年やめる 0.2 |
この式を、相談者が読める場所に置いてください。 社内のページに貼るだけで構いません。「なぜ自分の相談が後回しなのか」に答えられるのは、式が公開されているときだけです。
人が確認する
人が確かめるのは4つです。 台帳の全件ではありません。
- 申告された時間の裏を取る … 点数の上位から、その週に着手を検討する数件だけ。似た業務の過去案件の実績人日と、対象システムの操作ログの件数を見ます。 申告の40件に対してログが12件なら、その差を相談者と確認します
- 既存の仕組みの候補を確かめる …
foundがyesまたはmaybeのものについて、その機能が本当に相談の内容を満たすかを人が触って確かめます - しないほうがよい相談を判断する …
not_recommendedが付いたものを開き、対象から外すか、継続係数を下げて残すかを決めます - 着手・保留・却下を決め、理由を返す … 定型文に、点数と式と理由を差し込んで返します
1番目の裏取りを省かないでください。 申告された時間は、多くの場合、実際より長くなります。 悪意ではなく、いちばん大変だった月の記憶で答えるからです。逆に実際のほうが多いこともあります。どちらに転んでも、数字が動いたことを台帳に残してください。
4番目が、いちばん軽く扱われがちで、いちばん効きます。 却下でも保留でも、理由を返さなければ、相談者から見れば無視と同じです。 無視された相談者は次から相談せず、相談が来なくなると、順番を決める材料そのものが枯れます。 保留なら現在の点数と上位の点数の目安を、却下なら理由の区分と代わりの手段を返します。
例外に対処する
| 起きること | 対応 |
|---|---|
| 3つの数が書かれていない | 受理しない。 「情報待ち」にし、どの数が足りないかを添えて自動で返す |
| 申告された数が極端 | 1件が480分より大きい、月間件数が0などは確認で止め、人に回す |
| 同じ業務の相談が複数部署から | 業務名で照合し、対象人数を足し合わせて点数を出し直す |
| 年に数回しか起きない業務 | low_frequency が付く。月間件数に換算せず、対象外の区分へ移す |
| 来年やめる業務 | ending が付く。継続係数を下げ、台帳には残す |
| 法令で人が見る必要がある業務 | legal_review が付く。点数の順位に載せず、別の一覧で扱う |
| 候補が一覧に無い名前だった | enum で弾き、no として扱う。一覧の整備の合図とする |
| 生成AIが応答しない/形が合わない | 1回だけ再実行し、だめなら「未処理」で載せる。0点にしない |
| トリガーが失敗した | 通知メールが届く。「実行数」パネルで失敗した行を特定する |
| フォームに質問を足した | namedValues を質問名で引いているので影響しない |
| 相談がフォーム以外で届く | 窓口が代理でフォームに入れる。入口を増やさない |
いちばん下の行が、運用で崩れやすいところです。 「急ぎだからメールで送りました」を受け付けると、その1件は点数の付かない相談になります。窓口が代理で入れます。
記録を残す
- フォーム回答の原文と、送信のタイムスタンプ、相談者のメールアドレス
- AIに渡した内容(伏せ字化した後のもの)と、返ってきたJSONの全文
- そのとき使った分類の定義と、残る割合の表
- 点数の計算に使った値と計算結果。申告値と、裏を取った値を別の欄に持つ
- 人が判定を覆した記録と、却下・保留の理由、返した日時
- 着手したものについて、実際にかかった人日と、導入後に実測した1件あたり分
いちばん下の行が、四半期の見直しの材料そのものです。 着手したものについて本当に時間が減ったかを実測し、分類ごとに差を集計すると、残る割合の当たり外れが見えます。集計は四半期に一度だけにしてください。 毎月直すと式が落ち着かず、保留と返した相談者に「先月の説明」が通じなくなります。
04実装レベルの3段階
本記事が想定するのは最小構成です。 月40件なら、入口をフォームに寄せることと、点数の式を決めることで、削減の大半が出ます。 1営業日あたり2件を手で貼り付けるのは、現実的な手間です。 半自動化に進む目安は、月80件を超えたときです。 貼り付けの手間が無視できなくなり、台帳への書き写しの漏れが出始めます。Apps Script のコードは数十行で、新しい製品を買う必要もありません。
05工数削減シミュレーション
導入後 40件 × 9分 ÷ 60 = 6 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 各部署から「この作業を自動化したい」という相談が月に数十件届き、情報システム部門の数名が窓口になっている企業。相談がメール・チャット・口頭に分かれていて、受け付ける入口を1つに寄せられる場合。着手の順番が担当者どうしの相談で決まっていて、決め方を社内で文章にできる場合。過去に作った自動化の一覧を台帳として作れる場合。
- 相談が月に数件で、窓口の担当者がその場で答えられている場合。自動化の依頼がすべて年度の計画として上がってきて、期中に届く相談がほとんどない場合。着手の順番を決める権限が情報システム部門になく、上位の会議がその都度決めている場合(式を決めても使われません)。なお、作るか作らないかという最終判断そのものは、この構成では代替できません。
07最小構成で試す方法
- 先月から今月にかけて届いた相談を20件集める(メール、チャット、口頭のメモをすべて含める)
- Google フォームを作る。質問は業務名/部署/業務の説明/月に何件/1件何分/何人/いつまでに/来年も続くかの8つ。後ろの5つを必須にする
- 集めた20件を、窓口の担当者が代理でフォームに入れる。3つの数が分からないものは、空欄のまま入れる
- 回答シートを1行ずつ手元のAIサービスに貼り付けて、要約と分類、既存の仕組みの候補を出させる
- スプレッドシートの計算式で点数を出し、実際にその2か月で着手した順番と並べて見る
3番目で、3つの数が空欄になった件数を数えてください。 これがこの構成のいちばん大事な数字です。半分以上が空欄なら、AIより先にフォームが効きます。
| 出てきた内容 | 判断 |
|---|---|
| 実際の着手順と、点数の順が大きく違った | 式が効いている。 違った理由を1件ずつ確かめる |
| 実際の着手順と、点数の順がほぼ同じだった | 順番は困っていない。効くのは①の8分の削減のほう |
| 3つの数が空欄の相談が多かった | フォームの必須化だけで先に効く。 AIは後で足せる |
| 既存の仕組みで済むものが複数見つかった | 一覧の整備が先。 AIの精度の問題ではない |
どの行が出ても、次にやることは1件ずつ理由を聞くことです。 その答えが、残る割合と継続係数の最初の調整になります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 3つの数が無い相談が受理される | フォームで必須にする。 欠けたものは「情報待ち」にし、警告を出して通さない |
| 申告された時間が実際より長い | 点数の上位だけ裏を取る。似た業務の実績と操作ログの件数で確かめる |
| AIに順番を決めさせてしまう | 点数は式で出す。AIの出力に順位の欄を作らない |
| 点数の式を毎月変える | 四半期に一度だけ、実績を見て直す。 毎月変えると保留の説明が通らなくなる |
| 実装の手間を相談の時点で細かく見積もる | 0.5/2/5 の3段階に丸める。細かく見積もるには、結局その相談を深く聞く必要がある |
| 既存の仕組みの候補が外れる | 候補として出すだけ。人が触って確かめてから相談者に返す |
| 却下・保留の理由を返さない | 次から相談が来なくなる。 定型文に理由の区分を差し込んで必ず返す |
| 年に数回の業務が上位に来る | 月間件数に換算しない。発生が月単位でないものは対象外の区分へ移す |
| 来年やめる業務に手をつける | フォームで「来年も続くか」を聞き、継続係数を下げる |
| フォームの質問を足したら値がずれた | values の位置ではなく namedValues を質問名で引く |
| シンプルトリガーで作って動かない | 認可が必要なサービスを呼べず、実行は30秒まで。 インストール可能なトリガーを使う |
| トリガーを作った人が異動して止まる | 作成した人のアカウントで実行され、別アカウントからは見えない。 引き継ぎ手順を決める |
上から3行が、この構成の成否を分けます。 どれも技術ではなく、設計で線を引いたかどうかの問題です。 3つの数が無い相談を通すと点数の出ない行がたまり、順番をAIに決めさせると式を直せなくなります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 相談者の氏名・部署・メールアドレス、各部署の業務の中身と、どの部署が何にどれだけ時間をかけているかという一覧、そして社内システムの構成です。
- 業務の説明文を、そのまま外部へ渡さない … 説明文には「A社への請求書を毎月作っている」といった記述が普通に混ざります。要約と分類に、取引先名も個人名も必要ありません。 前処理で伏せ字にしてから渡します
- 相談台帳を人事評価に使わない … 点数順に並んだ台帳は、見方を変えれば「どの部署が非効率か」の一覧です。 使い道と閲覧できる範囲を先に決めてください。評価に使われると分かった時点で、申告された時間の正確さが失われます
- 点数の式を公開する … 却下や保留の理由を返すには、式が読める場所にある必要があります。式を隠したまま順番だけを示すと、「情報システムが勝手に決めている」という受け取られ方になります
- 法令や規程で人が見る必要がある業務を、候補に残さない …
legal_reviewが付いた相談は点数の順位に載せず、別の一覧で扱います - トリガーが誰のアカウントで動いているかを台帳に書く … インストール可能なトリガーは常に作成した人のアカウントで実行され、別のアカウントからは見えません。 その人が異動すれば止まります
誤りが起きた場合のリスクは、順番を誤ることと、相談が来なくなることの2つです。 前者は申告値の裏を取らないと起き、後者は理由を返さないと起きます。どちらも技術の失敗ではなく、運用の設計で決まります。
この構成は、作るか作らないかの最終判断を代替しません。 点数は材料であって決定ではなく、決めるのは人です。 点数を覆した記録は、そのまま式の見直しの材料になります。
10まず何から始めるか
1週目:フォームを作り、3つの数を必須にする
質問は8つで足ります。業務名/部署/業務の説明/月に何件/1件何分/何人/いつまでに/来年も続くか。 後ろの5つを必須にします。メールアドレスを集める設定も有効にしてください。 有効でないと理由を返す動線が作れません。
2週目:過去2か月の相談20件を、代理で入れてみる
窓口の3名が、手元のメールとチャットのメモから20件を入れます。3つの数が空欄になった件数を数えます。 これがこの構成の出発点の数字です。
3週目:点数の式を決める
残る割合と継続係数と、実装の手間の3段階を、窓口の3名で決めます。 1時間で決めて構いません。正しい値を探すより、決めて公開することのほうが大事です。
4週目:20件を点数順に並べ、実際の着手順と見比べる
計算式で点数を出して並べ、この2か月で実際に着手した順番と見比べます。 違っている件について、なぜ実際はそちらを先にしたのかを聞きます。
2か月目: 手元のAIサービスで要約と分類を試し、既存の仕組みの一覧を作ります。3か月目以降: 却下と保留の返信の定型文を作り、必ず返す運用にします。4か月目に実績を集計して残る割合を1回直した時点で、この構成は回り始めます。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| フォーム送信時のトリガーが「ユーザーがフォームに回答したときに実行される」こと。時間主導のトリガーが毎分から月1回まで設定できること。「常に作成した人のアカウントで実行される」ことと、別アカウントのトリガーは見えないこと。「スクリプトの実行やAPIリクエストではトリガーが動かない」こと。失敗時に [email protected] からメールが届くこと | Google: インストール可能なトリガー | 2026-09-23 |
| シンプルトリガーが認可を要するサービスを呼べず、他のファイルにアクセスできず、実行が30秒を超えられないこと | Google: シンプルトリガー | 2026-09-23 |
スプレッドシート側のイベントが namedValues(「フォーム送信の質問名と値を含むオブジェクト」)と values(「スプレッドシートに表示されるのと同じ順序の値の配列」)を持ち、フォーム側が response(FormResponse)を持つこと | Google: トリガーのイベントオブジェクト | 2026-09-23 |
getItemResponses() が「フォームに項目が表示されるのと同じ順序で」返すこと。テキスト・日付・時刻・段落は未回答でも空文字が返り、それ以外は配列から除外されること。getRespondentEmail() が Form.setCollectEmail(collect) を有効にした場合にのみ機能すること | Google: FormResponse クラス | 2026-09-23 |
output_config.format に type: "json_schema" とスキーマを渡すこと。required、additionalProperties(false が必要)、enum が使え、minimum/maximum/minLength/maxLength/pattern は使えないこと | Claude: Structured outputs | 2026-09-23 |
点数の式の重み付け(残る割合、継続係数、手間の刻み)に公式な根拠はありません。 本記事の値は例です。自社で決め、四半期ごとに実績で直してください。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0193)についてのご相談はこちらから。
