Media > AI活用ユースケース > 生産 > 建設現場で協力会社からメール・チャットでばらばらの形で届く作業日報を拾い、元請けの工事日報の様式(作業内容・人数・資機材)にそろえてまとめる

建設現場で協力会社からメール・チャットでばらばらの形で届く作業日報を拾い、元請けの工事日報の様式(作業内容・人数・資機材)にそろえてまとめる

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

協力会社の職長からメールやチャットで届く作業日報を拾い、作業内容・人数・資機材などの決まった項目に読み取ります。現場ごと・日ごとに並べ、元請けの工事日報の様式にそろえた下書きにします。

サマリー
生成AI
ChatGPT/Claude/Gemini
連携・自動化
Make/n8n/Power Automate/Zapier
対象業界
建設/製造
対象部門
生産
対象業務
データ入力・転記/記録・議事録作成
主な課題
人手が足りない/入力作業が多い/期限・対応漏れが起きる
AIで行う処理
抽出
主な効果
入力漏れ削減/対応スピード向上/工数削減
導入難易度
★★☆☆☆
実装レベル
半自動化
費用感
ノーコード連携(中)
人間の確認
条件付き
現在工数
40h/月
AI導入後
12h/月
想定削減
70%
年間削減
336h
モデル条件による試算値です。実在企業の実績ではありません。

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

導入前(Before)
  1. 夕方、工事担当者が現場のチャンネルと代表アドレスのメールを開き、その日の日報を探す
  2. 1件ずつ読み、協力会社名、作業場所、作業内容、人数、資機材を工事日報の様式に打ち込む
  3. 手書きの日報の写真は、拡大して読む。読めない字は職長に電話で聞く
  4. その日の作業予定と見比べ、日報が届いていない協力会社に電話かチャットで催促する
  5. 全社分がそろったら、工事日報を所長に回して確認を受ける
  6. 月末に、日報から協力会社ごとの出面を集計する
導入後(After)
  1. 人協力会社の職長が、これまでどおり現場のチャンネルか代表アドレスへ日報を送る
  2. 自動ワークフローが新しいメールとチャットの書き込みを拾い、送り主から協力会社を特定する
  3. 自動本文と添付の写真を、生成AIに渡せる形にそろえる
  4. 自動生成AIが、作業日・作業場所・作業内容・人数・作業時間・資機材・翌日の予定・安全上の特記事項を読み取る。書かれていない項目は「不明」とする
  5. 自動資機材の名前を、現場の資機材の辞書に照らして正式な名前にそろえる
  6. 自動読み取った結果を、現場・日付・協力会社ごとの一覧に1行ずつ書く
  7. 自動夕方6時に、その日の作業予定と一覧を突き合わせ、日報が届いていない協力会社と、項目が「不明」の行を工事担当者に知らせる。確認の文面の下書きを添える
  8. 人工事担当者が一覧を見て、「不明」の行と読み取りに自信のない行を確かめ、必要なら職長に確認する
  9. 自動工事担当者が確定した一覧から、工事日報の様式の文書を作る
  10. 人所長が工事日報を確認する
各工程の詳しい説明を読む
  1. 夕方、工事担当者が現場のチャンネルと代表アドレスのメールを開き、その日の日報を探す
  2. 1件ずつ読み、協力会社名、作業場所、作業内容、人数、資機材を工事日報の様式に打ち込む
  3. 手書きの日報の写真は、拡大して読む。読めない字は職長に電話で聞く
  4. その日の作業予定と見比べ、日報が届いていない協力会社に電話かチャットで催促する
  5. 全社分がそろったら、工事日報を所長に回して確認を受ける
  6. 月末に、日報から協力会社ごとの出面を集計する

(a)書き方がばらばらで、読む場所が決まらない。 「3F 型枠 5人 ユニック1」と書く会社もあれば、「本日は3階の柱・壁の型枠の建て込みを行いました。作業員は職長を含め5名」と文章で書く会社もあります。同じ内容を、毎回違う場所から拾う作業になります。

(b)人数の書き方が一定しない。 「5名」と書く会社、職長と作業員を分けて書く会社、作業員の氏名を並べるだけの会社。氏名の列挙から人数を数え直すのは、毎日の地味な手間です。 数え間違えると、月末の出面の集計がずれます。

(c)届いていない日報に気づくのが遅い。 打ち直しが夜までかかると、4番目の催促ができないまま一日が終わります。職長が帰った後では、翌日まで日報がそろいません。 翌朝の朝礼の資料に穴が開きます。

(d)資機材の名前がそろわない。 「ユニック」「4tユニック」「クレーン付きトラック」。同じ車両でも会社によって呼び方が違い、月末に台数を数えるときに困ります。 揚重の計画と突き合わせることもできません。

  1. 【人】 協力会社の職長が、これまでどおり現場のチャンネルか代表アドレスへ日報を送る
  2. 【自動】 ワークフローが新しいメールとチャットの書き込みを拾い、送り主から協力会社を特定する
  3. 【自動】 本文と添付の写真を、生成AIに渡せる形にそろえる
  4. 【自動】 生成AIが、作業日・作業場所・作業内容・人数・作業時間・資機材・翌日の予定・安全上の特記事項を読み取る。書かれていない項目は「不明」とする
  5. 【自動】 資機材の名前を、現場の資機材の辞書に照らして正式な名前にそろえる
  6. 【自動】 読み取った結果を、現場・日付・協力会社ごとの一覧に1行ずつ書く
  7. 【自動】 夕方6時に、その日の作業予定と一覧を突き合わせ、日報が届いていない協力会社と、項目が「不明」の行を工事担当者に知らせる。確認の文面の下書きを添える
  8. 【人】 工事担当者が一覧を見て、「不明」の行と読み取りに自信のない行を確かめ、必要なら職長に確認する
  9. 【自動】 工事担当者が確定した一覧から、工事日報の様式の文書を作る
  10. 【人】 所長が工事日報を確認する

8番目が、この設計の分かれ目です。 全行を読み直すのではなく、「不明」と自信のない行だけを見ます。 全部を確かめる運用にすると、打ち直しが読み直しに変わるだけで時間は減りません。

7番目の催促の文面は、下書きまでにします。 送るかどうかは工事担当者が決めます。職長が日報を別の経路で送っていた、その日は作業が中止になった、といった事情は一覧からは分からないからです。

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

構成図
協力会社の職長
   ├─ 現場の代表アドレスへメール(本文・写真の添付)
   └─ 現場の Slack のチャンネルへ書き込み(本文・写真)
   │
   ▼【トリガー】Make の Gmail「Watch emails」/Slack「Watch Private Channel Messages」
Make(シナリオ1:届いた日報の読み取り)
   ├──▶ 送り主から協力会社を特定(協力会社の一覧)
   ├──▶ 添付の写真を取り出す(List email attachments and media/Download a File)
   ▼
Claude API(Make の Anthropic Claude アプリ「Make an API Call」)
   │   本文と写真から、決まった項目を読み取る
   │   structured outputs で決まった形のJSONを返す
   ▼
Make ── 資機材の名前を辞書でそろえる → 日報の一覧(スプレッドシート)へ1行
   ▼【トリガー】毎日18時のスケジュール
Make(シナリオ2:取りまとめ)
   ├──▶ 作業予定と突き合わせ、未着と「不明」を出す → 工事担当者へ通知
   ▼
【人】工事担当者が確認・確定
   ▼
Make ── 工事日報の様式に流し込む(Google ドキュメント「Create a Document from a Template」)
役割想定する製品代替候補
ワークフローMakeZapier、Power Automate、n8n
生成AIClaude API(Make の Anthropic Claude アプリ)OpenAI API、Gemini API
連携Slack(現場のチャンネル)Microsoft Teams
文書Google ドキュメント(工事日報の様式)Microsoft Word
保管Google スプレッドシート(日報の一覧・協力会社の一覧・資機材の辞書・作業予定)SharePoint リスト

新しく足すのは、ワークフローと生成AIだけです。 メールとチャットの経路は協力会社がすでに使っているものをそのまま使い、職長に新しいアプリの入力を頼みません。 入力の手間を協力会社の側に移すと、日報そのものが届かなくなるからです。

メールの取り込みには、Make の Gmail の「Watch emails」を使います。 新しいメールが届いたときに動くトリガーで、条件の指定に、選択式の「Simple filter」と、Gmail の検索式を書く「Gmail filter」があります。送り主のアドレス、件名、含む語、添付の有無で絞り込めます。 1回に取る件数の上限は500件以下とされています。添付は「List email attachments and media」で取り出します。

個人の @gmail.com アカウントには制約があります。 Google は Make のようなアプリから Gmail へのアクセスを、個人の @gmail.com アカウントでは6か月に制限しており、6か月ごとに再認証が要るとされています。現場の代表アドレスは、会社の Google Workspace のアカウントにします。

チャットの取り込みには、Slack の「Watch Private Channel Messages」を使います。 非公開のチャンネルに新しい書き込みがあったときに動くモジュールで、公開チャンネル用、ダイレクトメッセージ用のものもあります。Slack のモジュールは、Slack のユーザーのアカウントでの接続が前提です。写真は「Download a File」で取り出します。

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

Step1

処理の起点を決める

トリガーは2つあります。届いた日報を1件ずつ読むものと、夕方にまとめるものです。

1件ずつ読む側は、Gmail の「Watch emails」と Slack の「Watch Private Channel Messages」です。どちらも、届いた順に動かします。 夕方にまとめて読むと、未着に気づくのが遅れ、催促が職長の帰った後になります。Make のシナリオのスケジュールを「一定間隔」にし、15分ごとに見に行く設定にします(最短の間隔は契約のプランで異なります)。

まとめる側は、毎日18時に動くスケジュールです。 その日の作業予定と一覧を突き合わせ、未着と「不明」を工事担当者に知らせます。19時30分にもう一度動かし、遅れて届いたものを反映します。

Gmail の側は、送り主で絞ります。 協力会社の一覧に登録されたアドレスから届いたものだけを拾い、広告や他の連絡を読み取りに回しません。 一覧に無いアドレスから「日報」を含む件名で届いたものは、別のラベルを付けて工事担当者に回します。

Step2

入力データを集める

データ中身取得元
日報の本文メールの本文、チャットの書き込みGmail/Slack
日報の写真手書きの日報、ホワイトボードの写真メールの添付、チャットのファイル
協力会社の一覧会社名、職種、職長の氏名、メールアドレス、Slack のユーザースプレッドシート
作業予定日付、現場、入る予定の協力会社、作業場所、予定の作業工程表から作った予定表
資機材の辞書正式な名前と、協力会社が使う呼び方の一覧スプレッドシート
過去の訂正同じ日・同じ会社の、前に届いた日報と訂正の書き込み日報の一覧

質を決めるのは、協力会社の一覧と資機材の辞書です。 一覧にメールアドレスや Slack のユーザーが登録されていなければ、送り主から会社を特定できません。辞書が無ければ、「ユニック」と「4tユニック」は別の資機材として数えられます。

作業予定は、未着を見つけるために使います。 予定に載っていない会社から日報が届いたときも、一覧に出します。予定の変更が現場で決まって、予定表に反映されていないことがあるからです。

Step3

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

取るものどこから何に使うか
メールの本文と添付Gmail の「Watch emails」と「List email attachments and media」日報の本文と写真
チャットの書き込みとファイルSlack の「Watch Private Channel Messages」と「Download a File」同上
送り主の会社協力会社の一覧の検索協力会社名と職種を確定させる
その日の作業予定予定表の検索未着の判定、作業場所の候補

協力会社は、送り主のアドレスとユーザーで決めます。AIに本文から推し量らせません。 職長が本文に会社名を書かないことは珍しくなく、書いていても略称です。会社の特定を誤ると、出面が別の会社に計上されます。

チャットは、スレッドの返信も拾います。 「さっきの人数、6名に訂正です」のような訂正は、元の書き込みへの返信として届くことが多いからです。訂正は、元の日報と同じ日・同じ会社の行に結び付けて扱います。

Step4

AIへ渡す前に整形する

  1. 送り主の特定 … アドレスまたは Slack のユーザーから、協力会社の一覧を引きます。一覧に無ければ「送り主不明」として人へ回します
  2. 日報かどうかの見分け … 件名や本文に、日報の語や日付がなく、短いあいさつや質問だけのものは、読み取りに回しません
  3. 署名と引用の除去 … メールの署名と、過去のやり取りの引用部分を外します
  4. 写真の形式の確認 … Claude が受け付ける形式は JPEG、PNG、GIF、WebP です。それ以外の形式は変換します
  5. 写真の大きさの確認 … 直接のAPIで1枚10MBまで、縦横8000ピクセルまでとされています。スマートフォンの写真は大きいので、縮小して送ります
  6. 作業日の候補を付ける … 届いた日時を渡します。深夜0時を過ぎて届いた日報は、前日のものの可能性があることを指示に書きます
  7. 同じ日・同じ会社の前の日報を探す … 2件目なら、訂正か追加かを判断する材料として前の内容を渡します

5番目は、読み取りの精度と費用の両方に効きます。 公式の説明では、画像は大きすぎると縮小されて処理され、縮小で文字が読みにくくなることがあるとされています。手書きの日報は、用紙の部分だけを切り出してから送るのが確実です。

6番目を忘れると、作業日がずれます。 夜遅くに送ってくる職長は少なくありません。届いた日付をそのまま作業日にすると、月末の出面の集計で、ある日が0名、次の日が倍になります。

Step5

AIに処理させる

させるのは、本文と写真から決まった項目を読み取り、書かれていない項目を「不明」と返すことだけです。

読み取る項目読み取り方書かれていないときの扱い
作業日本文の日付。無ければ届いた日時を候補にする候補のまま、date_source に「受信日時」と書く
作業場所階、工区、通り芯、部屋名unknown
作業内容何の作業を行ったか(型枠の建て込み、配筋、配管など)unknown
人数職長と作業員の人数。合計だけならその値unknown。氏名だけなら列挙された数を別の欄に
作業時間開始と終了、または残業の有無unknown
資機材名前と台数none_stated
翌日の予定翌日の作業と予定人数unknown
安全上の特記事項ヒヤリハット、けが、指摘を受けたことnone_stated

人数の行がいちばん大事です。 「作業員:山田、佐藤、鈴木」のように氏名だけが並ぶ日報は、人数が書かれているわけではありません。 列挙された氏名の数は別の欄に入れ、headcount は unknown のままにします。職長が自分を数えていない、応援の作業員を書き忘れた、という食い違いがあるためです。 確定は工事担当者が行います。

させないこと理由
協力会社の特定送り主で決める。本文の略称から推し量らない
書かれていない人数の推定出面は安全管理と精算の根拠。前日の人数で埋めない
資機材の名前の言い換え辞書でそろえる。AIに正式名を作らせない
安全上の特記事項の評価重さの判断は工事担当者と所長が行う
作業予定との食い違いの判断突き合わせはワークフローの規則で行う

2行目の「前日の人数で埋めない」は、指示に明記します。 同じ会社の前日の日報を渡していると、今日の人数が書かれていないときに前日の値を写してくることがあります。値として正しく見えるので、人の確認でも見落とされます。

Step6

指示内容を固定する

あなたは建設現場の元請けで、協力会社から届いた作業日報を
工事日報の項目に読み取る立場です。
渡された本文と画像に書かれていることだけを読み取ってください。

【読み取る項目】
work_date / location / work_description / headcount(foreman, workers, total)/
work_hours / equipment(name_as_written, count)/ next_day_plan / safety_notes

【厳守事項】
- 書かれていない項目は "unknown" にしてください。推測で埋めないでください
- 人数は、数字で書かれているものだけを headcount に入れてください。
  氏名が並んでいるだけのときは、headcount は unknown のままにし、
  listed_names_count に並んでいた氏名の数を入れてください
- 前に届いた日報(previous_report)の値を、今日の値として写さないでください。
  previous_report は、訂正か追加かを判断するためだけに使ってください
- 資機材は、書かれていた呼び方のまま name_as_written に入れてください。
  正式な名前に言い換えないでください
- 作業日が本文に無いときは、受信日時を候補として入れ、
  date_source を "received_at" にしてください。
  受信が0時から5時の間なら、date_note に「前日の作業の可能性」と書いてください
- 手書きの文字が読めないときは、その項目を unreadable にし、
  evidence に読めなかった箇所の様子を書いてください
- 安全上の特記事項は、書かれていた文をそのまま写してください。評価しないでください
- 日報ではない書き込みと判断したときは、document_type を "other" にしてください
- 訂正の書き込みのときは、is_correction を true にし、訂正された項目だけを入れてください

【協力会社】{company_name}(職種:{trade})
【受信日時】{received_at}
【前に届いた日報】{previous_report}
【本文】{body}
【画像】(添付)

「氏名の数を headcount に入れない」を書かないと、AIは数えて入れます。 数えること自体は正しいのですが、日報に書かれた人数と、工事担当者が確かめた人数の区別が消えます。 出面の記録として後から説明できなくなります。

「前の日報を写さない」は、渡し方の副作用への手当てです。 訂正を見分けるために前の日報を渡すと、それが空欄を埋める材料に見えます。使い道を限ることを、渡すのと同じ場所に書きます。

Step7

出力形式を固定する

次の形のJSONで受け取ります。 Messages API の structured outputs で output_config.format に json_schema を指定し、スキーマに沿った応答を受け取ります。

{
  "document_type": "daily_report | other",
  "is_correction": false,
  "work_date": "",
  "date_source": "body | received_at",
  "date_note": "",
  "location": "",
  "work_description": "",
  "headcount": { "foreman": "", "workers": "", "total": "" },
  "listed_names_count": 0,
  "work_hours": "",
  "equipment": [ { "name_as_written": "", "count": "" } ],
  "next_day_plan": "",
  "safety_notes": "",
  "unreadable_fields": [],
  "evidence": ""
}

1つ目の理由は、「不明」を値として持てることです。 unknown、none_stated、unreadable を区別して返させると、書かれていないのか、資機材を使わなかったのか、読めなかったのかが一覧で分かります。工事担当者が職長に聞く内容が、それぞれ違います。

2つ目は、name_as_written と辞書を分けられることです。 資機材の正式な名前は、ワークフローが辞書で引いて別の列に入れます。辞書に無い呼び方は空欄のまま一覧に出し、工事担当者が辞書に足します。 足すほど、次からは自動でそろいます。

3つ目は、is_correction で訂正を機械的に扱えることです。 訂正なら同じ日・同じ会社の行を更新し、元の値を履歴の列に残します。

一覧の状態付ける条件(ワークフローの規則)
確認不要すべての項目が読み取れ、人数が数字で書かれている
要確認unknown または unreadable の項目がある。人数が氏名の列挙だけ
未着作業予定に載っているのに、18時までに日報が無い
予定外作業予定に無い会社から日報が届いた
送り主不明協力会社の一覧に無いアドレス・ユーザー
Step8

システムへ連携する

つなぎ先方式内容
Gmail(現場の代表アドレス)「Watch emails」「List email attachments and media」日報のメールと添付の写真
Slack(現場のチャンネル)「Watch Private Channel Messages」「Download a File」日報の書き込みと写真
Claude APIAnthropic Claude アプリの「Make an API Call」項目の読み取り
日報の一覧・協力会社の一覧・辞書・予定表スプレッドシートの読み書き1件1行の記録、会社の特定、名前の統一、未着の判定
工事日報の様式Google ドキュメントの「Create a Document from a Template」確定した一覧から現場ごと・日ごとの工事日報

協力会社への返信は、自動で送りません。 未着と「不明」の確認の文面は、工事担当者への通知に下書きとして添えます。送るのは工事担当者で、Slack なら自分のアカウントから書き込みます。

工事日報の文書は、工事担当者が一覧を確定してから作ります。 確定前の一覧から作ると、unknown の欄が空白のまま所長に回ります。空白は「0名」と読まれることがあります。

Step9

人が確認する

工事担当者が見るのは、18時の通知に出た行だけです。

  1. 「未着」を最初に見る … 職長が帰る前に確認します。作業が中止になった、別の会社にまとめて書いてもらった、といった事情を一覧の備考に書きます
  2. 「要確認」の人数を確かめる … 氏名の列挙だけの行は、職長に人数を確かめます。応援の作業員や職長自身を含むかを聞きます
  3. 読めなかった箇所を確かめる … unreadable の項目は、写真を開いて読むか、職長に聞きます
  4. 安全上の特記事項を読む … 書かれていたら、その日のうちに所長へ伝えます。翌朝の工事日報を待ちません
  5. 辞書に無い資機材の呼び方を足す … 空欄の正式名を埋め、辞書に1行足します
  6. 一覧を確定する … 確定した時点で工事日報の文書が作られます

4番目は、取りまとめとは別の流れとして扱います。 日報に「足場の手すりが外れていた」と書かれていたら、工事日報の項目として記録するだけでなく、すぐに動くべき連絡です。 通知の中でも、安全上の特記事項がある行は先頭に出します。

月末の出面の集計は、確定した人数だけを使います。 unknown が残っている日があれば、集計の段階で一覧に出し、常用の精算の前に必ず埋めます。

Step10

例外に対処する

起きること対応
送り主が協力会社の一覧に無い「送り主不明」として人へ回す。新しく入った会社なら一覧に登録する
1通に2社分の日報が書かれている会社を分けられないので「要確認」。職長に会社ごとに送ってもらうよう頼む
1通に2日分が書かれている作業日ごとに分けて読み取らせ、date_source を確かめる
写真が暗い・斜め・小さいunreadable として人へ。用紙を正面から撮ってもらうよう頼む
Excel や PDF の日報が添付されている当面は人へ回す。本文か写真で送ってもらう運用に寄せる
訂正が届いた同じ日・同じ会社の行を更新し、元の値を履歴に残す
応答が拒否された・途中で切れたstop_reason を見て、その件を「要確認」として人へ
作業が中止になった日予定表の側で中止にする。未着として毎日催促しない
19時30分を過ぎて届いた翌朝の取りまとめに含める。作業日は本文の日付で決める

1行目と2行目が、運用を始めた最初の月に多く出ます。 新しい協力会社の登録漏れと、1人の職長が複数の会社の作業員をまとめて報告する書き方です。どちらも取り決めで減らせるので、件数を数えて協力会社との打合せで伝えます。

Step11

記録を残す

  • 届いたメール・書き込みの原文と、添付の写真
  • 生成AIの応答のJSONの全文と、stop_reason
  • 工事担当者が確かめて直した値と、直す前の読み取りの値
  • 訂正の履歴(いつ、どの項目が、何から何に変わったか)
  • 未着の催促を送った日時と、日報が届いた日時
  • 辞書に足した資機材の呼び方

3つ目の「直す前の値」は、出面の記録を説明するためにも残します。 月末に協力会社から「この日は6名入っていた」と言われたとき、日報に何と書かれていて、誰がいつ確かめたかを示せます。

5つ目の未着の記録は、協力会社ごとに数えます。 毎週同じ会社が遅れるなら、送り方の取り決めを見直す材料になります。

04実装レベルの3段階

最小構成:日報を手で生成AIの画面に貼り、項目を読み取らせる / 1件ずつの読み取り
半自動化:上記+Make でメールとチャットを拾い、一覧に書き、18時に未着と「不明」を知らせる / 日報の拾い出し、読み取り、未着の検出、工事日報の下書き
本格構成:上記+出面の月末の集計、揚重の計画と資機材の突き合わせ、協力会社ごとの遅れの報告まで / 取りまとめと月次の集計

最小構成では、毎日の量はさばけません。 1件ずつ貼るので、読み取れるかを確かめるための段階です。 本記事の想定は半自動化です。 1件5分が1.5分になります。残るのは、「要確認」の行の確認と、未着の催促の判断です。読み取りが自動になっても、出面の確定は人が持ちます。 本格構成に進む前に、辞書と協力会社の一覧を整えてください。 半自動化を1か月回すと、辞書に無い呼び方と、一覧に無い送り主が一通り出そろいます。そこを埋めてから月末の集計を自動にしないと、集計の数字に穴が残ります。

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

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

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

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

AI活用について相談する

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

向いている
  1. 1つの現場に毎日5社以上の協力会社が入り、作業日報がメール本文、チャットの書き込み、手書きの日報の写真とばらばらの形で届く元請けの建設会社。工事担当者や現場事務が夕方にそれを読み、自社の工事日報の様式に打ち直している場合。協力会社の職長に、決まったメールアドレスか現場のチャットのチャンネルへ送ってもらう取り決めができる場合。
向いていない
  1. 協力会社が数社に限られ、全社が元請けの指定した施工管理の仕組みに直接入力している場合。日報を紙で手渡ししており、メールやチャットで届く形がない場合。現場が月に数日しか稼働しない場合。なお、出面(人数)を常用の精算の根拠として確定させることや、安全上の判断は、この構成では代替できません。

07最小構成で試す方法

  1. 先週の1つの現場の日報を、5日分集める(メール、チャット、手書きの写真を混ぜる)
  2. その日に工事担当者が打ち込んだ工事日報も用意する
  3. 手元の生成AIの画面に、日報を1件ずつ貼り付ける(写真はそのまま添付する)
  4. 「この日報から、作業日・作業場所・作業内容・人数・作業時間・資機材・翌日の予定・安全上の特記事項を読み取ってください。書かれていない項目は不明としてください。氏名だけが並んでいる場合は人数を数えず、不明としてください」と指示する
  5. 出てきた結果を、工事担当者が打ち込んだ工事日報と項目ごとに突き合わせる

5日分でよいので、必ず手書きの写真を入れてください。 本文の読み取りはほぼ問題なく進むはずで、差が出るのは写真と人数の書き方です。

出てきた内容判断
工事日報と同じ値が読み取れ、書かれていない項目が不明になっているワークフローの組み立てに進む
氏名を数えて人数に入れた、前日の値で埋めた指示の書き方で直る。構成は有効
手書きの写真の大半が読めない撮り方の取り決めが先。 AIの問題ではない

3行目が出たときは、写真の撮り方を職長にお願いします。 用紙を正面から、影が入らないように、用紙だけが写るように。それだけで読める割合は大きく変わります。 日報の用紙そのものを、元請けの様式に寄せてもらうのも効きます。

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

問題対策
氏名の数が人数として入るheadcount と listed_names_count を分け、指示で数えないよう明記する
前日の人数で空欄が埋まる前の日報の使い道を指示で限る。人数が前日と完全に同じ行に印を付ける
深夜に届いた日報の作業日がずれる受信日時を候補とし、0時〜5時の受信に注記を付ける
会社を取り違える送り主で決める。本文の略称から推し量らない
資機材の数え方がそろわない辞書でそろえ、辞書に無いものは空欄で人へ
手書きの写真が読めない用紙だけを正面から撮ってもらう。大きすぎる写真は縮小する
個人の Gmail で6か月ごとに接続が切れる会社の Google Workspace のアカウントを使う
訂正が別の行になるスレッドの返信も拾い、is_correction で同じ行を更新する
空欄が「0名」と読まれる確定前の一覧から工事日報を作らない
安全上の特記事項が翌朝まで埋もれる通知の先頭に出し、その日のうちに所長へ伝える

上の2行が、この構成の失敗のほとんどです。 どちらも人数の欄に、日報に書かれていない値が入る形です。値がそれらしく見えるので、人の確認でも通ってしまいます。 書かれていない人数は「不明」のまま、人が確かめて埋める。これを崩さないことが、出面の記録を信用できるものにします。

下の2行も、早いうちに決めておきます。 空欄の扱いと安全上の連絡は、取りまとめの手間とは別の問題です。工事日報を早く作ることより、正しく伝わることを優先してください。

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

この構成で扱うデータ: 協力会社の会社名、職長と作業員の氏名、人数と作業時間、作業場所、現場の写真、そして安全上の出来事の記録です。

  1. 外部へ渡す範囲を絞る … 生成AIに渡すのは、日報の本文と写真、協力会社名と職種までです。作業員の氏名は読み取りに必要ないので、本文から伏せて渡す設計にできます。人数の確認に氏名が要るときは、工事担当者が原文を見ます
  2. 現場の写真に写り込むものに気をつける … 手書きの日報の写真に、図面や施主の情報、他の作業員の顔が写っていることがあります。用紙だけを写すよう取り決め、送る前に切り出します
  3. 協力会社へ自動で送らない … 催促や確認の文面は下書きまでです。相手は他社の職長で、誤った催促は取引の関係にひびきます
  4. 出面を確定させない … この構成が出すのは、日報に書かれていた人数の読み取りまでです。常用の精算の根拠となる人数は、工事担当者が確かめて確定します
  5. 安全上の判断をさせない … 安全上の特記事項は、書かれた文をそのまま写させ、重さの判断と対応は工事担当者と所長が行います
  6. チャットの権限を絞る … Slack の接続は、取りまとめ用のアカウントにし、読む範囲を現場のチャンネルに限ります。 他のチャンネルの書き込みを拾わないようにします

誤りが起きた場合のリスクは、人数を誤って記録すること、会社を取り違えること、安全上の連絡が遅れることの3つです。 1つ目は unknown を埋めない指示と人の確認、2つ目は送り主での特定、3つ目は通知の先頭に出す規則で防ぎます。どれもAIの判断の外側で守るように組みます。

10まず何から始めるか

1週目:協力会社の一覧と送り先を整える

1つの現場の協力会社の一覧に、職長のメールアドレスと Slack のユーザーを登録します。あわせて、日報の送り先を現場の代表アドレスと現場のチャンネルの2つに決め、職長に伝えます。1通に1社分、写真は用紙を正面から、の2点も伝えます。

2週目:5日分で試す

先週の日報を5日分集め、手元の生成AIに読み取らせます。工事担当者が打ち込んだ工事日報と項目ごとに突き合わせ、氏名の数を人数に入れていないか、前日の値で埋めていないかを最優先で見ます。

3週目:辞書と予定表を作る

その現場でよく使う資機材の呼び方を集め、正式な名前との対応の辞書を作ります。工程表から、日ごとに入る予定の協力会社の予定表を作ります。予定表が無いと、未着が判定できません。

4週目:Make で一覧と18時の通知までをつなぐ

Gmail と Slack のトリガー、生成AIの呼び出し、一覧への書き込み、18時の未着と「不明」の通知までを作ります。最初の2週間は、工事担当者がこれまでどおり打ち込みも続け、両方を見比べます。

2か月目: 工事日報の様式への流し込みを足し、打ち込みをやめます。「要確認」の件数を協力会社ごとに数えます。3か月目以降: 他の現場に広げ、1件5分が何分になったかを実測します。月末の出面の集計で unknown が残らなくなった時点で、この構成は完成です。


11関連ユースケース

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

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

技術仕様確認日:2026-10-06/最終更新:2026-10-06
確認した内容情報源確認日
Gmail のモジュールに、新しいメールで動く Watch emails、添付を取り出す List email attachments and media などがあること。Watch emails に Simple filter と Gmail filter があり、送り主・件名・含む語・添付の有無で絞れ、取得件数の上限が500以下であることMake Apps: Gmail modules2026-10-06
Google が Make のようなアプリからの Gmail へのアクセスを、個人の @gmail.com アカウントでは6か月に制限し、6か月ごとに再認証が要ることMake Apps: Gmail2026-10-06
Slack のモジュールに Watch Public Channel Messages、Watch Private Channel Messages、Get a File、Download a File などがあり、Slack のユーザーのアカウントでの接続が前提であることMake Apps: Slack modules2026-10-06
Iterator が配列の要素をそれぞれ別のバンドルとして出力し、メールの複数の添付を1件ずつ扱う例があることMake Help Center: Iterator2026-10-06
Create a Document from a Template が既存のテンプレート文書を複製してタグを置き換えることMake Apps: Google Docs modules2026-10-06
画像の形式が JPEG・PNG・GIF・WebP であること。直接のAPIで1枚10MB、縦横8000ピクセルまでであること。大きな画像は縮小され、文字が読みにくくなることがあること。低品質・回転・小さい画像で誤りが起きうることClaude Docs: Vision2026-10-06
output_config.format に json_schema を指定するとスキーマに沿った応答が返ること。拒否や max_tokens 到達時はスキーマに合わない出力になりうることClaude Docs: Structured outputs2026-10-06

出面の確定と常用の精算の扱いは、自社と協力会社との取り決めで決めてください。 本記事は上記のページで確認できた範囲だけを扱っています。

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

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

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

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