概要
n8nを用いて構築した業務自動化ワークフロー集。情報収集・通知・データ変換など、業務でよく利用される自動化パターンをテンプレート化した。ニュース収集、GitHub通知ルーティング、CSVデータ変換の3つのワークフローを実装した。
対象ユーザー
- 定型的なデータ収集・通知処理を自動化したい開発チーム
- CSV等のデータ変換・クレンジングを定期的に行う事務・分析担当者
- ノーコード/ローコードツールで業務改善を進めたいチーム
GitHub
🔗 GitHub
スクリーンショット
RSS News Aggregator — ワークフローエディタ(実行成功)
実行履歴 — 複数回の自動実行が成功
Webhook出力 — RSSから取得したニュースデータ(JSON)
開発背景
フリーランスの業務自動化案件において、n8nのようなワークフローツールの実務経験を示す必要があった。RSS収集・Webhook連携・データ変換という業務でよく求められる3パターンを選び、テンプレートとして再利用可能な形で構築した。
解決した課題
- ニュースや情報源の手動チェックを、RSSフィードの定期自動取得に置き換え
- GitHub上のイベント(Push・Issue・PR)をイベント種別ごとに分岐して通知を構造化
- CSVデータの空行除去・フォーマット正規化・重複排除を一つのワークフローとして自動化
主な機能
- RSSニュース収集: NHKニュースRSSから記事を定期取得し、タイトル・リンク・公開日などを構造化して出力
- GitHub Webhookモニター: Push・Issue・PRの3種類のイベントを受信し、種別ごとに整形した通知メッセージを生成
- CSVデータ変換パイプライン: CSVデータをWebhookで受信 → パース → 空行除去 → キー名正規化・メール小文字化・電話番号整形・日付変換 → 重複排除 → JSON出力
使用技術
- ワークフロー: n8n(セルフホスト)
- インフラ: Docker / Docker Compose
- データ処理: JavaScript(Code Node)
- 主要ノード: Schedule Trigger / Webhook / RSS Feed Read / Switch / Filter / Set / Item Lists / Respond to Webhook
設計上の工夫
- トリガーの二重化: RSSワークフローはSchedule Trigger(定期実行)とWebhook(手動実行)の両方を用意し、自動・手動どちらでも起動できる構成にした
- イベントルーティング: GitHub Webhookでは、Switchノードでイベントヘッダーを判定し、Push/Issue/PRそれぞれに専用のフォーマット処理を分岐させる設計とした
- データクレンジングの段階的処理: CSVパイプラインでは、パース → フィルタ → 正規化 → 重複排除 → 出力整形を個別のノードに分離し、各ステップの役割を明確にした
- ワークフローのモジュール化: 各Workflowを「取得→判定→変換→出力」の共通構造で設計し、新しい自動化処理も既存パターンを流用して追加できる構成とした
- ノーコードとコードの使い分け: 標準ノードで実現できる処理はノードで構成し、データ正規化など複雑な処理のみCode Nodeを利用することで、保守性と柔軟性を両立した
アーキテクチャ
Docker
│
▼
n8n
├─ RSS Workflow
│ └─ Structured Output
├─ GitHub Workflow
│ └─ Notification
└─ CSV Workflow
└─ JSON Output
開発周期
2日
担当範囲
企画 / ワークフロー設計 / n8nノード構成 / データ変換ロジック / Docker環境構築
成果・実現したこと
- 3種類の業務自動化パターン(情報収集・イベント通知・データ変換)をテンプレート化した
- Docker Composeにより、環境構築からワークフロー実行まで一貫して再現できる構成を実現した
- CSVデータのクレンジング処理をワークフロー化し、再利用可能なテンプレートとして構築した
想定導入効果
- 情報収集の自動化による日常チェック工数の削減
- GitHubイベントの構造化通知によるチーム内共有の効率化
- CSVデータの手動加工を自動パイプライン化し、作業ミスと工数を削減
開発で直面した課題と解決方法
- ワークフローの汎用性確保: 特定の環境やデータに依存しすぎると再利用しにくい。ワークフローをJSONテンプレートとしてエクスポートし、インポートするだけで動作する構成にした
- データ形式のばらつきへの対応: 入力CSVのキー名やデータ形式がバラバラな場合を想定し、Code Nodeでキー名の小文字化・スペース除去、メール・電話番号・日付の型別正規化を実装した
このプロジェクトで学んだこと
- ワークフロー設計では、処理を小さなノードへ分割し、それぞれの責務を明確にすることで、可読性・保守性・デバッグ効率を高められることを学んだ
- ワークフロー自動化では、トリガー設計(いつ・どう起動するか)がフロー全体の使いやすさを左右することを実感した
- Docker Composeでn8nをセルフホストすることで、クラウドサービスに依存しない自動化環境を手軽に構築できることを学んだ