Excelレポート自動化実践:n8n + Claude + Notionの三点セットで週報作成時間を4時間から12分に短縮

自動化事例 Excelレポート自動化 n8n Claude Notion

n8nでワークフローを実行し、Claudeが要約を作成、Notionにバージョン管理を行います。38名のB2B企業の週報作成時間を4時間から12分に短縮し、月間12.6時間の工数削減を実現。構築期間は2週間、月額運用費用は1,420元です。

なぜn8n + Claude + Notionの三点セットを使うのか(単一ツールではない理由)

経営者からは「Excelレポート自動化は単一ツールで十分では?RPAを購入すれば良いのでは?」とよく質問されます。

私たちは3社の中小企業で実装を行い、単一ツールでは対応困難であることを確認しました。各ツールが役割を分担し合うことで安定稼働を実現しています。

n8nの役割:「ワークフローの骨格」- スケジューリング、ファイル取得、条件分岐、エラーリトライ

n8nはワークフローエンジンであり、ビジネスロジックエンジンではありません。毎週月曜9時にトリガーし、Google DriveからExcelを取得、ファイルがなければ3回リトライ、処理失敗時はSlackに通知を送る役割を担います。

「なぜ今週の業績が低下したのか」といった判断はClaudeの役割です。n8nの価値は繰り返し実行しても問題なく、休暇もなく、途中で処理が止まることがない点にあります。

Claudeの役割:「意味解析」- 数値の読み取り、差異の解釈、人間が理解できる要約作成

ここが従来のRPAが苦手とする部分です。RPAは複数のExcelを結合し、前週比の差異を抽出できますが、「第三シフトの応答時間が12分から28分に延びたのは、木曜夜の新規スタッフ2名が研修中であるため」といった要約は作成できません。

Claudeは構造を理解し、異常を検出し、管理者が直接閲覧できる文章を作成します。詳細はClaude + MCPの企業内活用をご参照ください。

Notionの役割:「結果の保存」- バージョン管理、意思決定の軌跡、部門間共有

Notionは単なるデータベースではなく、「対話記録+意思決定の軌跡」として活用します。毎週の要約、管理者からの質問、後続の対応アクションをNotion DBに記録。次回管理者から「先月の異常はどう対応したか?」と問われた際にすぐに回答可能です。

Notionに記録しなければ、3ヶ月後に管理者が数字の出所を疑問視した際、元のExcelを再計算する必要があります。

三つのツールを組み合わせる理由は、単独ではそれぞれの課題を解決できないためです。n8n単体では意味要約ができず、Claude単体ではスケジューリングができず、Notion単体では元データを取得できません。

事例背景:38名のB2B企業における週報の課題

この企業は中規模製造業向けSaaSを販売し、6名のカスタマーサポートチームが毎週「カスタマーサポート週次パフォーマンスレポート」を運営管理者に提出しています。

従来の4時間プロセス:サポートデータのエクスポート → 手動結合 → 手動注釈 → 管理者へ送付

毎週月曜朝、サポート管理者は以下の5ステップを実施します:

  1. サポートシステムから3種類のExcel(着信数、応答時間、満足度)をエクスポート
  2. vlookupでマスターテーブルに結合
  3. 各項目の前週比および月平均を計算
  4. 600字程度の「今週のポイント+異常説明+来週の重点」を記述
  5. メールで管理者に送付し、Notionにアップロード

全工程で約4時間かかり、通常は9時から13時までかかります。途中でエンジニアからの問い合わせも多く、作業が中断されます。

真のボトルネックは結合ではなく「差異注釈の作成」に90分かかる点

プロセスを分解すると、最初の4ステップで90分かかりますが、最も時間を要するのは5ステップ目の「差異注釈の記述」です。

管理者は「なぜ第三シフトの応答時間が急に延びたのか?離職、研修、シフト配置の問題か?」といった判断を、前週、前月、同時期の顧客クレーム、シフト表を参照しながら行います。

この注釈作成に毎週90分を費やし、内容も定型化しがちで、管理者は差異を読み取りにくくなっていました。

過去にRPAやZapierで失敗した理由(意味解析ができなかった)

過去に2回自動化を試みました:

1回目はUiPathで前4ステップをロボット化しましたが、5ステップ目の人間らしい要約は作成できず、結局管理者が90分かけて手作業で記述しました。

2回目はZapierとChatGPTを連携しましたが、プロンプトが曖昧で週ごとにスタイルが不統一、時には数値の誤記もあり、管理者は3週間で信頼を失いました。

私たちが介入した際、管理者は「中途半端な自動化はもう要らない。時間を節約するか、手作業を続けるかどちらかにしてほしい」と話していました。

三点セットの構成図とデータフロー

パイプラインは5段階:トリガー → ファイル取得 → 処理 → 書き戻し → 失敗処理。各段階は1つ以上のn8nノードに対応します。

トリガー層:n8nのcron(毎週月曜9時)+ webhookによるバックアップ

メインフローはn8nのSchedule Triggerで週月曜9時に起動します。ただしサポートシステムのファイル出力が遅れ9時30分になることもあるため、webhookも設置し、ファイル出力完了後にn8nを呼び出します。

2つの入口は後続ノードを共有し、どちらかが成功すれば当週の処理完了とマークし、再実行は行いません。

n8nのセルフホストとクラウド版のコスト差についてはn8nセルフホストとクラウドの2026年展望をご参照ください。

ファイル取得層:n8nのGoogle Driveノードでサポートが出力したExcelを取得+簡易カラム検証

n8nのGoogle Driveノードはサービスアカウントを使い、特定フォルダの当週Excel(ファイル名規則:weekly-cs-{YYYY-MM-DD}.xlsx)を取得します。

取得後、以下3点を検証します:ファイルサイズが10KB以上(空ファイル回避)、必須カラムが揃っているか(着信数、応答時間、満足度)、カラムのデータ型が正しいか(数値が文字列でないか)。

いずれかの検証に失敗した場合は失敗処理層へ移行し、Claudeのトークン消費を抑制します。

処理層:n8nのHTTP Requestノード経由でClaudeに当週+前週データを送信

n8nは当週と前週のExcelを読み込み、Codeノードで比較対象カラムを抽出し、簡潔なJSONを生成します。

その後、HTTP RequestノードでAnthropic API(https://api.anthropic.com/v1/messages)にプロンプトとJSONデータを送信し、markdown形式の要約を受け取ります。

Claudeの呼び出しは毎週約8,500トークン(入力6,200+出力2,300)で、コストは約18台湾ドルです。

書き戻し層:Claudeのmarkdown要約をn8nでNotion DBに書き込み→Slackへ通知

Claudeからのmarkdownをn8nが解析し、Notion DBの以下カラムにマッピングします:

Notion書き込み後、SlackにNotionページリンクと要約の冒頭200字を通知。管理者はスマホでSlackを開くだけで内容を確認可能です。

失敗処理:Notionにraw payloadを保存+Slackで人力介入を通知

いずれかのノードで失敗した場合、n8nはError Triggerサブフローに移行し、エラーメッセージと当時のrawデータをNotionの失敗記録DBに保存し、Slackでエンジニアに通知します。

これによりワークフローが停止してもrawデータは失われず、人力で要約作成に切り替え可能です。

Claudeプロンプト設計のポイント:Excel全体を渡さないこと

多くの方はExcel全体をcsvに変換してClaudeに渡す簡単な方法を試しますが、実際にはトークン消費が3倍になり、モデルがカラムの意味を把握できず、カラム順序も誤認することがあります。

まずn8nでExcelを必要なカラムだけ抽出し、簡潔なJSONに変換

n8nのCodeノードで前処理を行います。元のExcelは60カラムありますが、週報に必要なのは12カラムのみです。

JSON構造は以下のようになります:

{
  "week": "2026-W19",
  "previous_week": "2026-W18",
  "metrics": {
    "incoming_count": {"current": 1842, "previous": 1601, "change_pct": 15.1},
    "first_response_min": {"current": 14.2, "previous": 12.1, "change_pct": 17.4},
    "csat": {"current": 4.6, "previous": 4.7, "change_pct": -2.1}
  },
  "shift_breakdown": [
    {"shift": "morning", "agents": 3, "incoming": 612, "first_response_min": 11.8},
    {"shift": "afternoon", "agents": 2, "incoming": 824, "first_response_min": 13.5},
    {"shift": "evening", "agents": 3, "incoming": 406, "first_response_min": 28.1}
  ],
  "anomalies_hint": ["evening shift first_response_min +132% vs previous"]
}

トークン消費はExcel全体の約28,000から約6,200に削減され、モデルの応答品質も向上します。

プロンプトは3段構成:背景+データ+出力形式

プロンプトは必ず3段に分け、混ぜないこと。背景では会社の状況、製品、チーム規模を説明し、データはJSONで渡し、出力形式はmarkdownで段落分けと異常項目の⚠️マークを指定します。

この構造により毎週スタイルが一定化し、管理者は特定の段落順序に慣れます。

なぜcsvを直接渡さないか:トークン増加と意味把握の困難さ

実際に同じExcelをcsvで渡す場合とJSONで渡す場合を比較しました:

方法入力トークン数出力品質異常検出
csv直接渡し約28,000段落が混乱5件中2件漏れ
JSON変換後渡し約6,200構造が明確5件中5件検出

差はClaudeの性能低下ではなく、csvに意味情報がなく、モデルが数値の意味を認識できないためです。

すぐ使えるプロンプトテンプレート(プレースホルダー付き)

以下はお客様が実際に使用している簡易版です。ご自由にご活用ください:

あなたは{{COMPANY_NAME}}のカスタマーサポート運営分析担当者です。毎週のカスタマーサポートパフォーマンス週報の要約を作成してください。

# 背景
- 会社規模:{{TEAM_SIZE}}名、カスタマーサポートチーム{{CS_TEAM_SIZE}}名
- 製品:{{PRODUCT_TYPE}}
- 管理者の関心事項:応答時間、着信数、満足度
- 異常閾値:単一指標の前週比変化が15%以上は異常とみなす

# データ(JSON)
{{METRICS_JSON}}

# 出力形式(厳格)
- markdownのみを出力し、前後に説明文を加えない
- 構成は4段落:## 本週のポイント(3行以内)/ ## 異常説明(項目ごと)/ ## 来週の重点(2行以内)/ ## 備考
- 異常項目は先頭に⚠️を付ける
- 数値の後に変化率(例:応答時間14.2分 ⚠️ +17.4%)を記載
- 「以上の分析」や「この報告がお役に立てば幸いです」などの定型文は書かない

プレースホルダーはn8nのSetノードで置換後、HTTP Requestに渡します。

ワークフローのノード化についてはn8n + Claude Skills + MCPのworkflowノード化をご覧ください。トークン課金ルールはAnthropic Claude API messagesドキュメントを参照してください。

実際のコストと時間:2週間で構築、月額1,420元で運用

経営者が最も気にするのは「どれくらいの期間で稼働できるか」と「月額費用」です。

構築コスト:コンサルティングで1週間、n8nフロー構築3日、プロンプト調整3日

構築手順は以下の通りです:

経験者の外注で2週間、社内初導入の場合は約4週間かかります。

月額運用費用:Claude API約720元、n8nクラウド約600元、Notionは既存利用

月額費用内訳:

項目月額費用説明
Claude API(sonnet 4.6)NT$7204週×約18元+リトライや他ワークフロー共有分含む
n8nクラウド(スタータープラン)NT$600月5,000実行回数、当案件は約200回使用
Notion0既存ライセンス利用
Google Workspace0既存利用
合計NT$1,320雑費100元を加え、合計NT$1,420

セルフホストn8n(VPS月300元)を利用すればさらに300元節約可能です。

時間節約効果:週次でカスタマーサポート3.5時間+管理者0.5時間、月間12.6時間削減

カスタマーサポート管理者は週3.5時間節約(従来4時間→12分でチェック+微調整)、運営管理者は週0.5時間節約(5つのExcelを確認する代わりに要約を読むだけ)。

月4.2週換算で、カスタマーサポート管理者は16時間、運営管理者は2時間、合計18時間節約。月3回程度の小トラブル対応に1.8時間×3回=5.4時間を要するため、純粋な節約時間は12.6時間です。

6ヶ月以内の投資回収:36,000元の構築費用÷月8,820元節約=約4.9ヶ月で回収

回収計算:

余裕を持って6ヶ月以内に回収可能と見ています。詳細は自動化前後のROI計算方法をご参照ください。本事例は「まず時間を節約し、その後顧客単価を計算する」典型的なパターンです。

90日間導入ロードマップ:まず1レポートを完成させてから拡張

多くの企業は最初から全レポートの自動化を目指しますが、部門ごとにルールが異なり、特定レポートの例外でつまずき、プロジェクトが停滞します。

D0~D14:毎週必須かつルールが単純なレポートを選定し着手

選定基準は3点:毎週必須(例:月次・四半期報告は除く)、カラムロジックが頻繁に変わらない、問題発生時に部門の混乱が少ない。

典型例はカスタマーサポート週報、営業週報、製品利用週報です。まず1つに絞り、完成後に拡張します。

D15~D45:管理者が最も頻繁に質問する3つの比較カラム(前週比、同期比、警告閾値)を追加

初版リリース後、管理者から「Xも見たい」と要望が出ることが多いです。最も多い3項目に絞って追加し、全項目を詰め込まないことが重要です。

通常は前週比(先週との比較)、同期比(前年同週との比較)、警告閾値(2週連続超過で赤マーク)です。

D46~D90:同テンプレートで2つ目のレポートを作成し、3つ目以降はセルフサービステンプレートで他部門に展開

45日目に1つ目のレポートが安定稼働したら、ワークフローをコピーしプロンプト変数を変更して2つ目のレポートを作成。通常1週間で完了します。

90日目には2つの定期レポートと1つのテンプレートが完成し、他部門はテンプレートを使い、プロンプトの変更方法を学ぶだけで自動化可能です。

5つの注意点:同じ失敗を繰り返さないために

3社の導入経験から5つのよくある落とし穴をまとめました。ぜひご注意ください。

落とし穴1:n8nセルフホストでバックアップを取らず、ワークフロー再起動で全消失

対策:毎週ワークフローJSONをNotionにエクスポートしバージョン管理、Gitリポジトリにも保存。コンテナアップグレード前にスナップショットを取得。コミュニティノードの使い方はn8n公式ドキュメント community nodeを参照。

落とし穴2:Claudeプロンプトが曖昧で要約の週ごとのスタイルが不統一

対策:プロンプトに厳格な出力形式、段落順序、禁止用語を明記。お客様の中には「『総括すると』などの定型句を使わない」と明示する例もあります。

落とし穴3:Excel全体をプロンプトに貼り付けてトークンが爆発的に増加

対策:n8nで必須カラムを抽出しJSON化し、Claudeには本当に必要な情報だけを渡す。60カラムのExcelでも実際に使うのは10~15カラムです。

落とし穴4:Notion DBのスキーマ設計が不十分で後からレポートの逆引きが困難

対策:1週目にスキーマを確定し、最低限「週次」「要約」「異常項目」「前週比」「raw payloadリンク」の5カラムを設ける。ビューも管理者用、チーム用、監査用を事前に用意。

落とし穴5:監査用のトレイルを残さず、管理者が数字の根拠を検証できない

対策:raw JSONはR2/S3に90日間保存し、Notionの記録にリンクを設置。数字の出所を問われた際に1分以内に回答可能にする。


もし貴社でも週報、月報、顧客レポートで「結合はできるが要約作成が負担」という課題をお持ちでしたら、私たちが分解してご支援いたします。

30分の戦略対話を予約すると、現在最も負担の大きいレポートを一緒に分析し、具体的かつ定量的な改善案をお持ち帰りいただけます。30分以内で実行可能な一歩をご提案します。

FAQ

Excelレポート自動化にn8n + Claude + Notionはどの規模の企業に適していますか?

20~150名規模が最適です。20名未満はレポート頻度やルールが安定せず自動化が逆効果になることがあります。150名以上はBIツール(TableauやPower BI)を導入済みの場合が多く、三点セットはBIツールで対応できない意味要約部分を補完する役割です。

2週間の構築後、自社でメンテナンス可能ですか?

n8nフローはほとんど変更不要で、主にClaudeプロンプトのメンテナンスが必要です。社内に「ワークフローに詳しく、markdown記述ができる」担当者(通常は業務分析や運営担当者)を1名選び、4時間のプロンプト調整トレーニングを受ければ自社で改修可能です。月平均1~2回、1回30分以内の調整が目安です。

失敗した場合のリカバリー方法は?

3段階のリカバリーがあります:

  1. 単週の失敗:n8nのError TriggerがSlackに通知し、カスタマーサポート管理者が手動で旧プロセスに戻して対応
  2. ワークフロー全体の障害:Notionに前週バージョンが保存されており、raw JSONもR2にあるため、単発で再実行可能
  3. Claude APIが利用不可:n8nがバックアップの簡易プロンプトに切り替え、暫定的に構造化要約を生成し、管理者に「ダウングレード版要約」として通知