Media > AI活用ユースケース > 人事 > 顧問先から毎月ばらばらの形で届く給与の変動データを読み取り、給与計算ソフトの取り込み形式にそろえる

顧問先から毎月ばらばらの形で届く給与の変動データを読み取り、給与計算ソフトの取り込み形式にそろえる

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

顧問先から毎月届く給与の変動データ(残業時間、欠勤、手当の増減など)を、Excel・CSV・PDF・メール本文のどれで届いても読み取り、給与計算ソフトに取り込める表にそろえます。担当者は、そろった表を確かめて取り込むだけになります。

サマリー
生成AI
ChatGPT/Claude/Gemini
連携・自動化
Make/n8n/Power Automate/Zapier
対象業界
士業
対象部門
人事
対象業務
データ入力・転記
主な課題
人手が足りない/入力作業が多い/確認ミスが多い
AIで行う処理
抽出
主な効果
入力漏れ削減/品質標準化/工数削減
導入難易度
★★☆☆☆
実装レベル
半自動化
費用感
ノーコード連携(中)
人間の確認
必須
現在工数
30h/月
AI導入後
8h/月
想定削減
73%
年間削減
264h
モデル条件による試算値です。実在企業の実績ではありません。

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

導入前(Before)
  1. 担当者が、顧問先からの変動データのメールを開き、添付を保存する
  2. 添付を開き、その顧問先の書式のどこに何が書かれているかを読み解く
  3. 従業員ごとに、給与計算ソフトの従業員番号を確かめる
  4. 顧問先の項目名(「残業」「早出」「皆勤」など)を、給与計算ソフトの項目に当てはめる
  5. 時間の書き方(「8.5」「8:30」「8時間30分」)を、ソフトの単位にそろえる
  6. 取り込み用の表に転記し、給与計算ソフトに取り込む
  7. 前月と比べておかしな値があれば、顧問先に問い合わせる
導入後(After)
  1. 自動変動データ用のメールアドレスにメールが届くと、Make のシナリオが動き、送信元から顧問先を特定する
  2. 自動添付を1つずつ取り出し、Excel・CSV・PDF・メール本文のどれかで経路を分ける
  3. 自動Excel はスプレッドシートに変換して値を読み、PDFはそのまま、メール本文は文字として生成AIへ渡す
  4. 自動生成AIが、従業員の呼び方・項目名・値・単位を、書かれたとおりに抜き出す
  5. 自動顧問先ごとの対応表で、従業員を給与計算ソフトの従業員番号に、項目名をソフトの項目に当てる
  6. 自動単位を給与計算ソフトの設定にそろえ、前月の値と比べて大きく変わったものに印を付ける
  7. 自動取り込みの表に書き込み、対応表で当たらなかったものと印の付いたものを担当者に通知する
  8. 人担当者が、当たらなかった従業員・項目を確かめ、対応表に登録する
  9. 人担当者が、取り込みの表を確かめてCSVで書き出し、給与計算ソフトに取り込む
各工程の詳しい説明を読む
  1. 担当者が、顧問先からの変動データのメールを開き、添付を保存する
  2. 添付を開き、その顧問先の書式のどこに何が書かれているかを読み解く
  3. 従業員ごとに、給与計算ソフトの従業員番号を確かめる
  4. 顧問先の項目名(「残業」「早出」「皆勤」など)を、給与計算ソフトの項目に当てはめる
  5. 時間の書き方(「8.5」「8:30」「8時間30分」)を、ソフトの単位にそろえる
  6. 取り込み用の表に転記し、給与計算ソフトに取り込む
  7. 前月と比べておかしな値があれば、顧問先に問い合わせる

(a)読み解くだけで時間がかかる。 顧問先の表は、列の並びも項目名も毎月少しずつ変わります。先月は「残業」だった列が、今月は「時間外」になっていることがあります。メール本文で届いたものは、文章から従業員と値を拾い出すところから始まります。

(b)従業員の対応を取り違える。 顧問先の表には姓だけ、あるいは顧問先独自の社員番号しか書かれていないことがあります。同じ姓の従業員が2人いる会社では、どちらの値かを取り違えると、そのまま2人分の給与が誤ります。

(c)時間の単位を取り違える。 「8.30」が8時間30分なのか8.3時間なのかは、書式からは分かりません。給与計算ソフトの勤怠項目は、設定された単位と一致する単位で入力する必要があります。単位を1つ取り違えるだけで、残業代が変わります。

(d)空欄の意味を取り違える。 顧問先が欠勤の列を空けて送ってきたとき、それは「欠勤なし」なのか「書き忘れ」なのか。取り込みの表を空欄にすると、ソフトによっては前の値がそのまま残ります。 どちらの意味かを確かめずに転記すると、誤りに気づくのは給与明細を見た従業員です。

  1. 【自動】 変動データ用のメールアドレスにメールが届くと、Make のシナリオが動き、送信元から顧問先を特定する
  2. 【自動】 添付を1つずつ取り出し、Excel・CSV・PDF・メール本文のどれかで経路を分ける
  3. 【自動】 Excel はスプレッドシートに変換して値を読み、PDFはそのまま、メール本文は文字として生成AIへ渡す
  4. 【自動】 生成AIが、従業員の呼び方・項目名・値・単位を、書かれたとおりに抜き出す
  5. 【自動】 顧問先ごとの対応表で、従業員を給与計算ソフトの従業員番号に、項目名をソフトの項目に当てる
  6. 【自動】 単位を給与計算ソフトの設定にそろえ、前月の値と比べて大きく変わったものに印を付ける
  7. 【自動】 取り込みの表に書き込み、対応表で当たらなかったものと印の付いたものを担当者に通知する
  8. 【人】 担当者が、当たらなかった従業員・項目を確かめ、対応表に登録する
  9. 【人】 担当者が、取り込みの表を確かめてCSVで書き出し、給与計算ソフトに取り込む

5番目の対応づけに、生成AIを使いません。 「山田」を「山田 太郎(従業員番号1023)」に当てるのは、表を引く作業です。当たらなければ止まり、担当者が決めた結果が次の月から表で当たるようになります。

9番目の取り込みは、人が行います。 取り込みを実行すれば、その値で給与が計算されます。確かめた人が取り込む、という順番を崩しません。

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

構成図
顧問先からのメール(変動データ用のアドレス)
   │【トリガー】メールの受信
   ▼
Make(シナリオ)
   ├─ 送信元から顧問先を特定(顧問先の一覧)
   ├─ 添付を1つずつ取り出す
   └─ ルーターで経路を分ける
        ├─ Excel … Google ドライブに変換して保存 → スプレッドシートの値を読む
        ├─ CSV ……… 文字として読む
        ├─ PDF ……… そのまま渡す
        └─ 本文 ……… 文字として渡す
   ▼
Claude API ── 従業員の呼び方・項目名・値・単位を書かれたとおりに抜き出す
   ▼
Make ── 対応表で従業員番号と項目に当てる/単位をそろえる/前月と比べる
   ▼
取り込みの表(Google スプレッドシート)
   ▼
【人】当たらなかったもの・印の付いたものを確かめる
   ▼
【人】CSVで書き出し、給与計算ソフトに取り込む
役割想定する製品代替候補
ワークフローMakePower Automate、n8n、Zapier
生成AIClaude API(Make の Anthropic Claude モジュールから呼ぶ)OpenAI API、Gemini API
保管Google ドライブ(顧問先別の受領フォルダ)SharePoint、Box
対応表・取り込みの表Google スプレッドシートMicrosoft Excel
給与計算マネーフォワード クラウド給与(取り込みは人が行う)取り込み用のCSVを使える給与計算ソフト

Make は、つなぎと規則の担当です。 メールの受信、添付の取り出し、経路の分岐、対応表の参照、単位の変換、表への書き込みを受け持ちます。生成AIが受け持つのは、ばらばらの書式から値を抜き出す1か所だけです。

Make には Anthropic Claude のアプリがあります。 プロンプトを送る Create a Prompt のモジュールや、ファイルのアップロード、任意のAPIを呼ぶ Make an API Call のモジュールがそろっています。出力の形をJSONに固定したいので、Make an API Call で構造化出力の指定を付けて呼びます。

Excel をスプレッドシートに変換するのは、生成AIが Excel をそのまま読めないためです。 Claude API の文書の入力では、.xlsx や .docx のようなバイナリ形式は扱えず、文字かPDFに変換してから渡す必要があります。 Make の Google ドライブのモジュールには、アップロードの際にファイルを変換する設定があります。変換したスプレッドシートは、Google スプレッドシートのモジュールで範囲の値として読み出せます。

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

Step1

処理の起点を決める

変動データ用のメールアドレスにメールが届いたことを起点にします。 Make の Email アプリの Watch emails のトリガーで受信を見張り、添付は Iterate attachments で1つずつ取り出します。添付が3つあれば、3つの流れとして処理されます。

顧問先には、変動データはこのアドレスへ送ってもらうよう案内します。担当者の個人アドレスに届いたものは、転送してもらいます。 入口がばらばらだと、処理されないまま埋もれるメールが出ます。

同じ顧問先から、訂正や追加のメールが続けて届きます。 そのたびにシナリオが動き、取り込みの表の同じ顧問先・同じ月の行を上書きせず、新しい版として追加します。 どの値が最新かは版の番号で分かるようにし、担当者が確かめて古い版を取り消します。

Step2

入力データを集める

データ中身取得元
変動データExcel、勤怠システムのCSV、PDF、メール本文変動データ用のメールアドレス
顧問先の一覧顧問先コード、会社名、送信元のメールアドレス、締め日スプレッドシート
従業員の対応表顧問先コード、顧問先での呼び方(姓、氏名、顧問先の社員番号)、給与計算ソフトの従業員番号スプレッドシート
項目の対応表顧問先コード、顧問先での項目名、給与計算ソフトの項目、単位スプレッドシート
前月の値従業員・項目ごとの前月の値前月の取り込みの表

質を決めるのは、2つの対応表です。 生成AIがどれほど正確に抜き出しても、「山田」がどの従業員かは表にしか書かれていません。最初の月は当たらないものが多く出ますが、担当者が登録するたびに表が育ち、翌月から当たるようになります。

項目の対応表には、単位も持たせます。 同じ「残業」でも、顧問先Aは時間を小数で、顧問先Bは「時:分」で書いてきます。顧問先ごとの書き方を表に持っておけば、「8.30」の意味を迷わずに決められます。

Step3

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

添付の種類ごとに、ルーターで経路を分けます。 Make のルーターは、流れを条件ごとに複数の経路に分けるもので、どの条件にも当たらないものを処理するフォールバックの経路を設定できます。

種類取り出し方生成AIに渡すもの
ExcelGoogle ドライブにアップロードする際にスプレッドシートへ変換し、範囲の値を読み出すセルの値を行と列の並びのまま文字にしたもの
CSV文字として読むCSVの文字そのもの
PDFそのままPDFのファイル
メール本文本文を取り出し、引用部分と署名を除く本文の文字
その他フォールバックの経路渡さない。担当者に通知する

Excel のシートが複数あるときは、全部のシートを読みます。 顧問先によっては、1枚目に勤怠、2枚目に手当を書いてきます。1枚目だけを読むと、手当の変更がまるごと抜けます。

PDFは、パスワードのかかっていない標準的なPDFである必要があります。 Claude API のPDFの入力はパスワードや暗号化のないPDFが対象です。給与のデータはパスワードを付けて送られてくることが多いので、この経路の手前で確かめます。

Step4

AIへ渡す前に整形する

  1. 顧問先の特定 … 送信元のアドレスを顧問先の一覧で引きます。当たらなければ処理を止め、担当者に選ばせます
  2. パスワードの確認 … パスワード付きのPDFやExcelは自動で開きません。担当者に通知し、解除して受領フォルダへ保存し直してもらいます
  3. 引用部分の除去 … 返信の連鎖で届いたメールは、最新の本文だけを使います。先月のやり取りの数字を拾わないためです
  4. 対象月の確認 … ファイル名やメール本文から対象の月を読み、顧問先の締め日と合っているかを確かめます
  5. 重複の確認 … 同じ顧問先・同じ月・同じ内容のファイルが二度届いたものに印を付けます
  6. 前月の値の取り出し … 前月の取り込みの表から、その顧問先の従業員・項目ごとの値を取り出しておきます

4番目を省かないでください。 顧問先が先月分のファイルを間違えて送ってくることがあります。値の形は正しいので、対象月を確かめない限り誰も気づきません。

Step5

AIに処理させる

させるのは、書かれている値を、書かれているとおりに抜き出すことだけです。

抜き出すもの中身判断できないときの扱い
従業員の呼び方書かれたとおり(「山田」「山田太郎」「No.12」)読めなければ空にし、理由を書く
項目名書かれたとおり(「残業」「時間外」「皆勤手当」)列の見出しが無ければ unlabeled
値書かれたとおりの文字(「8.30」「8:30」「2日」)読めなければ空
単位書かれていれば(「時間」「分」「日」「円」)書かれていなければ空
明示の「なし」「なし」「0」「—」と書かれているか空欄のままなら blank
根拠の位置シート名とセル、PDFのページ、本文の文必ず入れる

5行目が、この構成の要です。 顧問先が「なし」と書いたのか、何も書かなかったのかを、抜き出しの段階で区別して残させます。 空欄を0として扱うか、値を変えない空欄として扱うかは、後段の規則と担当者が決めます。

させないこと理由
従業員番号の推測取り違えは2人分の給与の誤りになる。対応表で当てる
項目の当てはめ顧問先ごとの意味は表にしかない
単位の換算「8.30」の意味は顧問先で違う。表の単位で換算する
空欄を0で埋めること「なし」と「書き忘れ」の区別が消える
支給額の計算給与計算ソフトが行う

3行目の単位の換算を生成AIにさせると、もっともらしく誤ります。 「8.30」を8.5時間に直すか8.3時間のままにするかは、顧問先の書き方の癖で決まります。抜き出しは書かれたとおり、換算は表の単位で行います。

Step6

指示内容を固定する

あなたは社会保険労務士事務所で、顧問先から届いた給与の変動データを
取り込みの表に写す前の、値の書き出しを担当しています。
渡すのは1社分・1回分のデータです。書かれていることだけを書き出してください。

【顧問先】{client_name}
【対象月】{target_month}
【データ】{payload}   … スプレッドシートの値、CSV、PDF、メール本文のいずれか

【書き出すもの】
従業員ごと・項目ごとに:
- 従業員の呼び方(書かれたとおり)
- 項目名(書かれたとおり)
- 値(書かれたとおりの文字)
- 単位(書かれていれば)
- 明示の記載か空欄か(explicit / blank)
- 根拠の位置(シート名とセル、ページ、本文の文)

【厳守事項】
- 従業員番号や給与計算ソフトの項目名を推測して書かないでください。
- 値を換算しないでください。「8.30」は「8.30」のまま、「8時間30分」は「8時間30分」のまま書いてください。
- 空欄を 0 にしないでください。空欄は blank としてください。
  「なし」「0」「-」と書かれているときだけ explicit としてください。
- 合計の行や小計の列は書き出さないでください。従業員ごとの行だけにしてください。
- 対象月と違う月のデータと思われる場合は、target_month_mismatch を true にしてください。
- 同じ従業員・同じ項目が2か所に書かれていて値が違う場合は、両方を書き出し、
  conflict を true にしてください。どちらかを選ばないでください。
- 入社・退職・昇給・住所の変更など、変動データ以外の連絡が含まれていたら、
  other_notices に原文のまま書き出してください。

「合計の行を書き出さない」を入れないと、「合計」という名前の従業員が1人増えます。 顧問先の表の最下行には、ほぼ必ず合計があります。

「入社・退職・昇給」を別の欄に出させるのは、これらが変動データの転記では済まないためです。 従業員の登録や固定的な賃金の変更は、給与計算ソフトの別の画面での作業になり、別の手続にもつながります。取り込みの表に紛れ込ませず、担当者が必ず読む欄に出します。

Step7

出力形式を固定する

構造化出力で、次の形のJSONを返させます。 Claude API の構造化出力は、指定した JSON Schema に沿った応答を返させる機能で、必須の項目の欠けや型の誤りを防げます。

{
  "client_code": "",
  "target_month": "",
  "target_month_mismatch": false,
  "rows": [
    { "employee_ref": "", "item_label": "", "value_raw": "", "unit_raw": "",
      "presence": "explicit | blank", "conflict": false, "source": "" }
  ],
  "other_notices": [""]
}

1つ目の理由は、employee_ref と item_label を書かれたとおりに持てることです。 Make は、この2つで対応表を引きます。書かれたとおりの文字が残っていれば、当たらなかったときに担当者が何を登録すればよいかがそのまま分かります。

2つ目は、presence で空欄の意味を運べることです。 Make は、explicit の「なし」には0を、blank には空欄を入れ、blank の行に印を付けて担当者に見せます。

3つ目は、source で元のファイルに戻れることです。 確認のとき、セルやページの位置から原本をすぐ開けます。

Make が対応表と単位の変換を通した後の、取り込みの表の1行は次のようになります。

従業員番号項目値元の記載状態
1023普通残業時間8.5「山田」「残業」「8.30」(勤怠!C5)当たった
1047欠勤日数0「鈴木」「欠勤」「なし」(本文2行目)当たった
1047遅刻早退時間(空欄)「鈴木」「遅刻」空欄(勤怠!E7)空欄の確認
--12「佐藤」「早出」「12」(勤怠!C9)従業員が2人当たる

1行目の「8.30」を8.5にしているのは、この顧問先の項目の対応表に「時:分」と登録されているからです。 給与計算ソフトの勤怠項目の単位が「0.0時間」の設定なら小数で、「000時間00分」の設定なら「8:30」のように半角のコロンで入れる必要があります。変換先の形も、項目の対応表に持たせます。

Step8

システムへ連携する

つなぎ先方式内容
変動データ用のメールアドレスMake の Email アプリ(Watch emails)受信の検知と添付の取り出し
Google ドライブMake の Google Drive モジュール添付の保存と、Excel からスプレッドシートへの変換
Google スプレッドシートMake の Google Sheets モジュール変換した表の値の読み出し(Get Range Values)、対応表の検索(Search Rows)、取り込みの表への書き込み(Bulk Add Rows)
Claude APIMake の Anthropic Claude アプリ(Make an API Call)構造化出力での値の書き出し
Gmail/Google Chat通知当たらなかったもの、印の付いたもの、変動データ以外の連絡

シナリオのモジュールは、上から次の順に並びます。

  1. Email > Watch emails(変動データ用のアドレスを見張る)
  2. Google Sheets > Search Rows(送信元のアドレスで顧問先の一覧を引く)
  3. Email > Iterate attachments(添付を1つずつにする)
  4. ルーター(Excel/CSV/PDF/本文/フォールバック)
  5. 経路ごとの取り出し(Excel は Google Drive > Upload a File で変換し、Google Sheets > Get Range Values で読む)
  6. Anthropic Claude > Make an API Call(構造化出力で書き出させる)
  7. Iterator(返ってきた rows を1行ずつにする)
  8. Google Sheets > Search Rows(従業員の対応表と項目の対応表を引く)
  9. アグリゲーター(1回分の行をまとめる)と Google Sheets > Bulk Add Rows(取り込みの表へ書き込む)

9番目でまとめて書き込むのは、1回分の行を1つの版として扱うためです。 1行ずつ書き込むと、途中で止まったときに半分だけ書き込まれた版が残ります。

給与計算ソフトへは、この構成から書き込みません。 取り込みの表をCSVで書き出し、給与計算ソフトの画面から取り込むのは担当者です。取り込みの操作をした人が、その月の値に責任を持つ形にします。

取り込みの表は、給与計算ソフトのサンプルCSVと同じ列の並びにします。 マネーフォワード クラウド給与の場合、A列の「Version」は必須で、B列の「従業員識別子」かC列の「従業員番号」のどちらかを入れる必要があり、J列以降が各項目の入力欄です。列の並びを最初にサンプルからそろえておけば、書き出したCSVをそのまま取り込めます。

Step9

人が確認する

全件、担当者が確かめてから取り込みます。 そのうえで、見る順番を決めます。

  1. 変動データ以外の連絡を読む … 入社・退職・昇給などは、取り込みの前に別の作業が要ります
  2. 当たらなかった従業員・項目を登録する … 対応表に登録すると、その行が当たった状態になります。同じ姓が2人いるものは、顧問先に確かめます
  3. 空欄の確認の行を決める … blank の行について、「なし」か「書き忘れ」かを顧問先の過去の傾向から判断し、分からなければ問い合わせます
  4. 前月と大きく違う値を見る … 残業が前月の3倍になった、手当が消えた、などの印の付いた行を、原本の位置から確かめます
  5. CSVで書き出して取り込む … 取り込んだ後、ソフトの画面で取り込んだ項目に印が付いたことを確かめます

3番目を省かないでください。 給与計算ソフトによっては、空欄で取り込んだ項目は上書きされず、画面に表示されている値がそのまま残ります。先月入れた欠勤日数が、今月も残ったまま計算されるのはこの経路です。

目標は、40件をならして1件12分です。 対応表が育った顧問先は、印の付いた行だけを見て数分で終わります。最初の2か月は、対応表の登録で時間がかかります。

Step10

例外に対処する

起きること対応
送信元が顧問先の一覧に無い処理を止め、担当者が顧問先を選ぶ。 一覧に追加する
パスワード付きのファイル自動で開かない。担当者が解除して受領フォルダに保存し直す
対象月が違うtarget_month_mismatch。顧問先に確かめる
同じ従業員・項目に2つの値conflict。どちらも取り込みの表に入れず、担当者が決める
対応表で従業員が2人当たる自動で選ばない。担当者が決め、対応表の呼び方を細かくする
訂正のメールが届く新しい版として追加する。古い版を消すのは担当者
Excel・CSV・PDF・本文のどれでもないフォールバックの経路で担当者へ通知する
変動データ以外の連絡other_notices を担当者へ。取り込みの表には入れない
生成AIやスプレッドシートが応答しない受領フォルダに残し、処理済みに移さない

上から4行目と5行目が、支給額の誤りに直結します。 どちらも「どちらかを選べば先に進める」場面ですが、選ぶのは人です。 自動で選ぶ分岐は作りません。

Step11

記録を残す

  • 受信したメールと添付の原本、受信の日時
  • 生成AIに渡したもの(変換後の値、CSV、PDF、本文)と、返ってきたJSON
  • 対応表で当てた結果と、当たらなかったものを担当者がどう登録したか
  • 単位の変換の前と後の値
  • 取り込みの表の版と、取り込んだ担当者と取り込んだ日時
  • 顧問先への問い合わせと、その回答

3つ目の登録の記録は、対応表の育ち方を見る材料になります。 毎月同じ項目が当たらない顧問先は、表の書き方を毎月変えています。書式を固定してもらうよう相談するほうが、登録を続けるより早く終わります。

04実装レベルの3段階

最小構成:データを手で生成AIの画面に貼り、値を表にさせる / 書式の読み解き
半自動化:上記+メールの受信を起点に Make が動き、対応表で当てて取り込みの表に書き込む / 読み解きから取り込みの表まで
本格構成:上記+給与計算ソフトのAPIで取り込みまで行い、前月との比較を自動で問い合わせ文にする / 取り込みと問い合わせの準備まで

最小構成では、対応づけと単位の変換が手作業のまま残ります。 読み解く時間は減りますが、転記は続きます。確かめるための段階です。 半自動化で、1件45分が12分になり、この段階が本記事の想定です。 読み解き、対応づけ、単位の変換、表への書き込みが自動になり、人は印の付いた行を確かめて取り込みます。本格構成は、取り込みまで自動にする段階ですが、給与計算ソフトの側にその機能があるかは製品によって違い、個別の確認が要ります。 取り込みを人が行う理由は第7章のとおりなので、本記事ではこの段階を勧めません。 半自動化の最初の2か月で、対応表を育ててください。 当たらない行が月に数件まで減れば、確認の時間は印の付いた行だけになります。

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

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

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

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

AI活用について相談する

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

向いている
  1. 給与計算の代行を数十社から受託している社会保険労務士事務所。顧問先ごとに、Excel、勤怠システムのCSV、PDF、メール本文と、変動データの届き方がばらばらな場合。締め日から支給日までの数日に転記が集中し、担当者が限られている場合。取り込み用のCSVを使える給与計算ソフトを事務所で使っている場合。
向いていない
  1. 顧問先が数社で、全社が同じ勤怠システムから同じ形式のCSVを出している場合。顧問先の勤怠システムと給与計算ソフトが直接つながっている場合。変動データの大半が電話や口頭で伝えられる場合。なお、支給額の計算方法や手当の支給要件の判断は、この構成では代替できません。

07最小構成で試す方法

  1. 先月届いた変動データから、書式の違う5社分を選ぶ(Excel、CSV、PDF、メール本文をそれぞれ含める)
  2. 1社ずつ、手元の生成AIサービスに貼り付ける(Excel はPDFにするか、値をコピーして貼る)
  3. 「このデータから、従業員ごと・項目ごとの値を、書かれたとおりに表にしてください。換算しないでください。空欄は空欄のままにし、『なし』と書かれているものだけ『なし』としてください。合計の行は除いてください」と指示する
  4. 出てきた表を、先月実際に取り込んだ値と突き合わせる

4番目で見るのは、値の一致だけではありません。 空欄を0で埋めていないか、合計の行が紛れていないかを最初に見ます。

出てきた内容判断
書かれたとおりに抜き出せたMake のシナリオと対応表の作成に進む
単位を勝手に換算した、空欄を0にした指示の書き方で直る。構成は有効
表の読み取りそのものが崩れる顧問先の表の形に問題がある。結合セルの多い表は書式の相談から

3行目は、顧問先の表を見直すきっかけになります。 結合セルや手書きの注記が多い表は、人が読んでも迷う表です。

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

問題対策
空欄を0として取り込む/0を空欄として取り込む「なし」と空欄を抜き出しの段階で分ける。 空欄の行は必ず人が決める
空欄で取り込んで前の値が残る空欄は上書きされないことを前提に、「なし」には0を入れる
「8.30」の単位を取り違える顧問先ごとの書き方を項目の対応表に持つ。生成AIに換算させない
ソフトの単位の設定と合わない変換先の形(小数か「時:分」か)を項目の対応表に持つ
同じ姓の従業員を取り違える対応表で2人当たったら止める。呼び方を細かく登録する
合計の行が従業員として入る合計・小計を書き出さないよう指示する
Excel の2枚目のシートが読まれない全部のシートを読む
Excel を生成AIにそのまま渡して失敗するスプレッドシートに変換して値を読む
パスワード付きのファイルで止まる自動で開かず、担当者が解除する
訂正のメールで古い値が残る版として追加し、古い版を取り消すのは担当者
入社・退職の連絡が埋もれるother_notices として別に通知する
備考の欄を空欄で取り込むソフトによっては備考を空欄で取り込むと内容が消える。 備考の列は取り込みの表から外すか、必ず値を入れる

上の4行が、この構成の失敗のほとんどです。 どれも「書類の上では正しく見える」誤りで、給与が支給されてから従業員が気づきます。 抜き出しと換算を分け、空欄の扱いを規則で決めることで、誤りの出どころを限ります。

いちばん下の行も、最初に決めてください。 給与計算ソフトの取り込みには、空欄が「変えない」を意味する項目と「消す」を意味する項目が混ざっていることがあります。サンプルCSVの説明を読み、項目ごとの空欄の意味を対応表に書いておきます。

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

この構成で扱うデータ: 顧問先の従業員の氏名、勤怠、欠勤、手当の額、そして入社・退職・昇給などの処遇に関わる連絡です。

  1. 外部へ渡す範囲を変動データに限る … 生成AIに渡すのは、その月の変動データだけです。従業員の対応表や給与の額そのものは渡しません
  2. パスワード付きのファイルの扱いを決める … 解除した後のファイルをどこに保存し、いつ消すかを決めます。パスワードをメール本文に書いてもらう運用は避けます
  3. この構成は給与計算の判断を代替しません … 出すのは、書かれた値を取り込みの形にそろえた表までです。手当の支給要件や割増の計算方法の判断は、社労士と顧問先が行います
  4. 取り込みを自動にしない … 取り込めば、その値で給与が計算されます。確かめた人が取り込む手順を崩さないでください
  5. Make のシナリオの実行履歴にデータが残る … シナリオの実行の記録には、処理したデータの中身が含まれえます。履歴を見られる人を限り、保存の期間を確かめてください
  6. 顧問先ごとにデータを分ける … 対応表と取り込みの表は顧問先ごとのシートに分け、他社の従業員の値が同じシートに並ばないようにします

誤りが起きた場合のリスクは、従業員を取り違えることと、値の意味を取り違えることの2つです。 前者は対応表で2人当たったときに止めることで、後者は空欄と単位を規則で扱うことで防ぎます。どちらも生成AIの推測に任せないのが、この構成の前提です。

10まず何から始めるか

1週目:変動データの届き方を数える

40社について、先月の変動データがどの形(Excel、CSV、PDF、メール本文)で届いたかを一覧にします。パスワード付きで届く顧問先にも印を付けます。 あわせて、変動データ用のメールアドレスを用意し、顧問先への案内文を作ります。

2週目:5社で試す

書式の違う5社分を手元の生成AIサービスに貼り、書かれたとおりに抜き出させます。空欄を0で埋めていないか、合計の行が紛れていないかを最優先で見ます。

3週目:対応表を作る

5社分について、従業員の呼び方と給与計算ソフトの従業員番号、項目名とソフトの項目・単位の対応表を作ります。給与計算ソフトのサンプルCSVを取り出し、取り込みの表の列の並びと、項目ごとの空欄の意味を確かめます。

4週目:Make のシナリオをつなぐ

メールの受信から、経路の分岐、生成AIでの抜き出し、対応表の参照、取り込みの表への書き込みまでを作ります。この時点では取り込みの表を人が作った表と並べ、値が一致するかだけを見ます。

2か月目: 対象を40社に広げ、当たらない従業員と項目を対応表に登録していきます。3か月目以降: 前月との比較の印を足し、1件45分が何分になったかを実測します。当たらない行が月に数件まで減り、空欄の確認が顧問先の書式の相談で減った時点で、この構成は完成です。


11関連ユースケース

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

技術仕様確認日:2026-09-29/最終更新:2026-09-29
確認した内容情報源確認日
アグリゲーターが複数のバンドルを1つにまとめるモジュールで、Group by で値ごとに分けて出力できること。Email > Watch emails が受信を見張り、添付の配列 Attachments[] を出力し、Email > Iterate attachments が添付を1つずつのバンドルにすることMake Help Center: Aggregator2026-09-29
ルーターがシナリオの流れを条件ごとに複数の経路に分け、どの経路にも当たらないデータを処理するフォールバックの経路を設定できること。経路が順に処理されることMake Help Center: Router2026-09-29
イテレーターが配列を一連のバンドルに変え、配列の要素を1つずつ別のバンドルとして出力することMake Help Center: Iterator2026-09-29
Google Drive の Watch Files in a Folder が、選んだフォルダでのファイルの作成・変更で動くこと。Upload a File にファイルを変換する設定があること。Download a File で Google のドキュメントやスプレッドシートを別の形式に変換して取り出せることMake Apps: Google Drive modules2026-09-29
Google Sheets の Get Range Values が範囲の内容を返し、Search Rows が条件に合う行を返し、Bulk Add Rows (advanced) が複数の行を表の末尾に追加することMake Apps: Google Sheets modules2026-09-29
Make の Anthropic Claude アプリに、Create a Prompt、ファイルのアップロード、Make an API Call などのモジュールがあり、APIキーで接続することMake Apps: Anthropic Claude2026-09-29
Claude API のPDFの入力が、パスワードや暗号化のない標準的なPDFを対象とすること。.xlsx や .docx のようなバイナリ形式は文書の入力として扱えず、文字かPDFに変換してから渡す必要があることAnthropic Docs: PDF support2026-09-29
構造化出力で、output_config.format に JSON Schema を指定すると、スキーマに沿った応答が返り、必須の項目の欠けや型の誤りを防げることAnthropic Docs: Structured outputs2026-09-29
マネーフォワード クラウド給与で、支給・控除・勤怠の項目をCSVで取り込めること。サンプルCSVのJ列以降が各項目の入力欄で、A列の「Version」が必須、B列の「従業員識別子」かC列の「従業員番号」のどちらかが必要なこと。勤怠項目の値を設定された単位と一致させる必要があり、「0.0時間」なら小数、「000時間00分」なら半角コロンで入力すること。空欄で取り込んだ項目は上書きされずに表示中の値が残り、「備考」を空欄で取り込むと内容が削除されることマネーフォワード クラウド給与 使い方ガイド: 支給・控除・勤怠項目をCSVでインポートする方法2026-09-29

手当の支給要件や割増の計算方法の判断は、社会保険労務士と顧問先で行ってください。 本記事は上記の公開情報で確認できた範囲だけを扱っています。

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

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

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

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