【n8n】月次決算のタスク管理を自動化|進捗確認と遅延アラートをSlackで

この記事は約11分で読めます。

月次決算の時期になると、「売掛金の消込は終わった?」「経費精算の締めはいつ?」と、進捗確認のチャットや声かけが一気に増えます。タスク一覧はExcelやスプレッドシートにあっても、更新が追いつかず、遅れに気づくのが締め日の直前になることも少なくありません。

この記事では、ワークフロー自動化ツールのn8nを使い、月次決算のタスク管理を自動化する方法を解説します。タスクの期限を営業日ベースで計算し、担当者へSlackでリマインドし、完了報告をボタンで受け付け、遅れがあれば上長へ知らせる仕組みです。さらに生成AIで進捗サマリーを作る方法も紹介します。

対象読者は、経理部門の責任者・担当者や、月次決算の早期化を任された管理部門の方です。プログラミング経験がなくても、ノードの組み合わせ方と設定のポイントが分かるように説明します。

スポンサーリンク

月次決算のタスク管理をn8nで自動化すると何が変わるか

スプレッドシート管理で起きがちな課題

月次決算のタスク管理は、多くの会社でスプレッドシートのチェックリストが使われています。一覧性は高い一方で、次のような課題が生まれがちです。

  • 担当者がシートを更新しないため、責任者が個別に確認して回る
  • 「月末から3営業日目」などの期限を、毎月手で日付に置き換えている
  • 前工程の遅れが後工程の担当者に伝わらず、手待ちが発生する
  • 遅延が見えるのが締め日の前日で、リカバリーの時間が残っていない

どれも「記録」ではなく「確認と連絡」の負担です。ここは自動化と相性のよい領域です。

n8nで自動化する範囲と人が残す判断

n8nに任せるのは、期限の計算、リマインドの送信、完了報告の記録、遅延の検知と通知です。一方で、遅延時にどう挽回するか、見積計上で先に進めるかといった判断は人が行います。この線引きを最初に決めておくと、仕組みが複雑になりすぎません。

生成AIは、進捗状況を読みやすい文章にまとめる用途に限定して使います。タスクの完了判定や数値の正しさをAIに判断させる設計は避けるのが無難です。

n8n月次決算ワークフローの全体像(ノード構成)

ワークフローは「月初の準備」と「毎朝の進捗チェック」の2本に分けると管理しやすくなります。それぞれのノード構成は次のとおりです。

ワークフロー1:月初のタスク展開

  • Schedule Trigger:毎月1日の朝に起動
  • Data Table(Get):タスクマスタを全件取得
  • Code:対象月と期限日(営業日ベース)を計算
  • Data Table(Insert):当月の進捗テーブルへ行を追加
  • Slack:経理チャンネルへ「今月の決算タスク一覧」を投稿

ワークフロー2:毎朝の進捗チェックと通知

  • Schedule Trigger:平日の朝9時に起動
  • Data Table(Get):当月の未完了タスクを取得
  • Code:本日期限・期限超過を判定
  • Switch:判定結果で分岐(本日期限/期限超過/対象外)
  • Slack(Send and Wait for Response):担当者へ完了確認を送信
  • Data Table(Update):承認されたら状態を「完了」に更新
  • Slack:期限超過を上長と経理チャンネルへ通知
  • AI Agent(任意):進捗サマリー文を作成して投稿

Data Tableは、n8nに組み込まれた表形式のデータ保存機能です。外部のデータベースを用意せずに、ワークフローから行の追加・取得・更新ができます。

タスクマスタをn8nのData tablesで作る手順

まず、月次決算のタスク一覧をn8nのData tablesに登録します。既存のチェックリストがあれば、CSVで書き出して取り込むのが早道です。

  1. 既存のチェックリストを、下表の列構成に整えてCSVで保存する
  2. n8nの画面でData tablesのタブを開き、CSVを取り込んでタスクマスタを作る
  3. 同じ列に「対象月」「状態」「完了日時」を加えた進捗テーブルを別に作る
  4. 担当者の列には、Slackのメンバーを特定できるユーザーIDを入れる
  5. 前工程がある場合は、依存元のタスクIDを入れておく
列名 内容 入力例
task_id タスクの識別番号 AR-01
task_name タスク名 売掛金の入金消込
owner_slack_id 担当者のSlackユーザーID U0123ABCD
manager_slack_id エスカレーション先 U0456EFGH
due_bd 月末から何営業日目が期限か 2
depends_on 前工程のタスクID BANK-01
status 状態(todo/done) todo

執筆時点の公式ドキュメントによると、Data tablesはインスタンス全体の既定の保存容量が200MiB(設定で変更可能な場合があります)で、軽〜中程度のデータ保存向けとされています。タスク管理程度の行数なら十分ですが、証憑データなどの保管には使わないようにしましょう。

Slackで月次決算の進捗確認と遅延アラートを送る設定

営業日ベースの期限計算(Codeノード)

月次決算の期限は「月末から何営業日目」で決めることが多いため、土日と会社の休業日を除いて日付を計算します。次のコードは、前段のData Tableで取得したタスクを受け取り、期限日と判定結果を付け加える例です。休業日のリストは自社のカレンダーに合わせて登録してください。

// 休業日(例):自社カレンダーに合わせて毎年更新する
const holidays = new Set(['2026-11-23', '2026-12-29', '2026-12-30', '2026-12-31']);

// 日本時間の「今日」と、前月の末日(決算対象月の月末)
const jst = new Date(Date.now() + 9 * 60 * 60 * 1000);
const todayStr = jst.toISOString().slice(0, 10);
const monthEnd = new Date(Date.UTC(jst.getUTCFullYear(), jst.getUTCMonth(), 0));

function addBusinessDays(base, n) {
  const d = new Date(base.getTime());
  let count = 0;
  while (count < n) {
    d.setUTCDate(d.getUTCDate() + 1);
    const ymd = d.toISOString().slice(0, 10);
    const dow = d.getUTCDay();
    if (dow !== 0 && dow !== 6 && !holidays.has(ymd)) count++;
  }
  return d.toISOString().slice(0, 10);
}

return $input.all().map(item => {
  const due = addBusinessDays(monthEnd, Number(item.json.due_bd));
  let alert = 'none';
  if (item.json.status !== 'done' && due < todayStr) alert = 'overdue';
  else if (item.json.status !== 'done' && due === todayStr) alert = 'today';
  return { json: { ...item.json, due_date: due, alert } };
});

Codeノードからは、Data tablesの値を直接読めないと公式ドキュメントに記載があります。必ずData Tableノードで取得してから、Codeノードに渡す順番にしてください。

また、Schedule Triggerはワークフローのタイムゾーン設定に従って動きます。未設定だとインスタンスの設定が使われ、セルフホストの既定は米国ニューヨーク時間です。ワークフロー設定で「Asia/Tokyo」を指定しておきましょう。

Send and Wait for Responseで完了報告を受ける

期限当日のタスクには、Slackノードの「Send and Wait for Response」を使って担当者に確認を送ります。この操作は、相手が応答するまでワークフローを一時停止できる機能です。

  1. Slackノードで、MessageのSend and Wait for Responseを選ぶ
  2. 送信先に担当者のユーザーIDを指定し、タスク名と期限日を本文に入れる
  3. Response TypeをApprovalにし、Capture Who Respondedをオンにする
  4. Restrict Who Can Approveで、担当者本人だけが押せるように制限する
  5. 承認後の分岐でData Table(Update)を置き、状態をdoneに更新する

Capture Who Respondedをオンにすると、Slack上のボタンで承認・却下ができ、押した人の情報も記録されます。誰がいつ完了報告したかが残るため、後から経緯を確認する際に役立ちます。

期限超過時のエスカレーション

判定が「overdue」のタスクは、担当者だけでなく上長と経理チャンネルにも通知します。あわせて、そのタスクを前工程とする後続タスクを抽出し、後続の担当者にも「前工程が遅れています」と伝えると手待ちを減らせます。通知は1日1回までに抑え、責める雰囲気にならない文面にするのが運用を長続きさせるコツです。

生成AIで月次決算の進捗サマリーを作るプロンプト例

毎朝の通知に加えて、責任者向けに全体の進捗を短くまとめると、朝会や経営陣への報告が楽になります。AI Agentノードなどで生成AIを呼び出し、未完了タスクの一覧を渡して要約させます。

あなたは経理部の月次決算の進行管理担当です。
以下のJSONは、今月の月次決算タスクの状況です。
責任者向けに、次の形式で日本語の進捗サマリーを作成してください。

# 出力形式
1. 全体の進捗(完了数/全タスク数)
2. 期限超過のタスク(タスク名・担当者・超過日数)
3. 本日期限のタスク
4. 遅延が後工程に与える影響(depends_onの関係から読み取れる範囲のみ)

# 制約
- JSONにない情報を推測で補わないこと
- 数値は入力データから数えた値だけを使うこと
- 担当者を責める表現は使わないこと

# データ
{{ $json.tasks }}

「JSONにない情報を推測で補わない」という制約は、AIがもっともらしい内容を作り出すハルシネーション(誤情報の生成)を抑えるためのものです。件数などの数値は、Codeノードで集計した値を別に渡し、AIの出力と照合すると安心です。

導入時の注意点・リスク

月次決算は会社の財務情報を扱う業務です。自動化の前に、次の点をチェックしておきましょう。

  • 送る情報を最小限にする:Slackや生成AIには、タスク名と状態だけを渡し、金額や取引先名は含めない
  • 生成AIの利用規程を確認する:社内ガイドラインで、外部AIサービスへの送信が許可された情報か確認する
  • 権限を分ける:ワークフローの編集者と、タスクマスタを更新できる人を限定する。Data tablesは既定でプロジェクトのメンバー全員に見える点に注意する
  • 認証情報を管理する:SlackやAIサービスのAPIキーは、n8nの認証情報機能で管理し、個人アカウントに依存させない
  • 完了報告の正しさは人が見る:ボタンでの完了報告は自己申告なので、重要タスクは責任者のレビューを別に設ける
  • 止まったときの代替手段を決める:n8nが停止しても決算が進むよう、元のチェックリストは残しておく

よくある質問(FAQ)

n8nとスプレッドシートを併用することはできますか?

できます。Data tablesの代わりに、Google SheetsノードでスプレッドシートのタスクをRead・Updateする構成も可能です。既存のチェックリストを使い続けたい場合や、経営陣がスプレッドシートで状況を見たい場合は、この方法が導入しやすいでしょう。ただし、シートの列名を変えるとワークフローが動かなくなるため、列の変更ルールを決めておくことが大切です。

Slackではなく、TeamsやGoogle Chatでも使えますか?

n8nにはMicrosoft TeamsやGoogle Chatなどのノードも用意されており、通知部分を差し替えれば同じ考え方で構築できます。ただし、承認ボタンなどの対応状況はノードごとに異なります。利用するツールの最新の公式ドキュメントで、使いたい操作に対応しているかを確認してから設計してください。

生成AIによる進捗サマリーは必須ですか?

必須ではありません。期限の計算、リマインド、完了記録、遅延通知だけでも、確認と連絡の手間は大きく減らせます。まずはAIなしで1〜2か月運用し、タスクマスタや期限設定が安定してから、責任者向けのサマリー機能を追加する進め方がおすすめです。段階的に広げると、問題が起きた際の原因も特定しやすくなります。

まとめ

n8nで月次決算のタスク管理を自動化すると、期限の計算、リマインド、完了報告の記録、遅延の通知を仕組みに任せられます。ポイントは、Data tablesでタスクマスタを整え、営業日ベースで期限を計算し、Slackの承認ボタンで完了を記録することです。生成AIは進捗サマリーの作成に限定し、判断は人が担う形にすると安全に運用できます。

次のアクションとして、まずは現在のチェックリストを本記事の列構成に整理してみてください。期限を「月末から何営業日目」で表せるかを確認するだけでも、決算プロセスの見直しにつながります。

関連記事

参考リンク

※本記事の機能説明は執筆時点(2026年11月)のn8n公式ドキュメントに基づきます。最新情報は公式サイトをご確認ください。

タイトルとURLをコピーしました