Skip to content

Instantly share code, notes, and snippets.

@hirokidaichi
Last active February 18, 2026 08:21
Show Gist options
  • Select an option

  • Save hirokidaichi/1bc22f7702684baaa213e0ffe50cfff1 to your computer and use it in GitHub Desktop.

Select an option

Save hirokidaichi/1bc22f7702684baaa213e0ffe50cfff1 to your computer and use it in GitHub Desktop.
しらせくん: Claude Code + n8n で業務自動化を「コードとして管理」する方法
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

しらせくん: Claude Code + n8n で業務自動化を「コードとして管理」する方法

ひとり法人の業務をn8nで自動化し、Claude Codeから操作・管理する仕組みを構築した。ワークフローをGitで管理し、自作CLIでデプロイからデバッグまで完結させている。この記事では、その全体像とやりかたをまとめる。

全体像

3つの層で構成される。

Claude Code(操作層) がユーザーとの接点。スキルとして /n8n-shirase(ワークフロー設計支援)、/n8ncli(API操作)、n8n-mcp(ノード情報取得・検証)などを組み合わせて、自然言語でワークフロー管理を行える。

n8ncli(CLIツール層) はTypeScriptで書いた自作のCLIツール。n8nのPublic APIをラップして、ワークフローの一覧取得、デプロイ、実行テスト、履歴確認、バリデーションをコマンドラインから実行できる。

n8n.rector.co.jp(実行基盤層) が本番のn8nサーバー。30以上のアクティブなワークフローが常時稼働し、メール分析からSNS投稿、議事録生成、タスクリマインドまでを自動処理している。

この3層の横に、shirase/ ディレクトリがある。全ワークフローのJSONバックアップ38件をGitリポジトリで管理しており、n8ncliとの間で双方向に同期できる。

ワークフローの全体マップ

ワークフローは12のカテゴリに分類される。命名規則は {2桁番号}-{カテゴリ名}-{機能名} で統一している。

カテゴリ一覧

番号 カテゴリ WF数 処理内容
01 Mail 1 未読メールをAIで分析し、返信要否を判定。重要メールはSlack DM通知
02 Schedule 2 Google Calendar予定を自動分類し色分け。未確定予定をSlack報告
03 SNS 7 記事からツイート生成、AIモデレーション、X自動投稿
04 Research 2 ニュース収集・論文調査
05 Event 3 登壇イベントのカウントダウン告知を自動生成・投稿
06 Meeting 5 TLDV連携で会議録音→議事録を自動作成。会議前に前回議事録を通知
07 Client 1 取引先企業のニュースを定期監視
08 Insight 4 議事録から知見を自動抽出し、ツイートやブログ記事へ展開
09 Admin 2 給与明細の振込額変動チェック、郵便物の到着通知
10 Remind 2 Notion広木確認表の未完了タスクを12時・17時にリマインド
13 Inquiry 2 HPからの問い合わせをWebhookで受信し、AIが返信文を生成
90 System 6 汎用AIエージェント、エラーハンドラ、MCPサーバーなどの基盤

全てのワークフローに共通する構造がある。トリガー → データ取得 → AI処理 → アクション という流れだ。AIモデルは用途に応じてClaude(テキスト生成・複雑な判断)とGPT(高速な分類・構造化出力)を使い分けている。

出力先

ワークフローの出力は3つのチャネルに集約される。

  • Slack : #remind(タスク)、#schedule(予定)、#tweet(投稿通知)、#error(エラー)、DM(重要メール)
  • Gmail : 問い合わせへのAI返信
  • X (Twitter) : 記事紹介・イベント告知・インサイトのツイート自動投稿

Webhook API

一部のワークフローはREST APIとしても公開している。

エンドポイント 内容
POST /webhook/03-sns-article-api 記事一覧をJSON取得(カテゴリ・ツイート対象フィルタ)
POST /webhook/05-event-api イベント予定をJSON取得(upcoming_onlyフィルタ)

認証は X-Webhook-Token ヘッダー。Claude Codeのスキル(/n8n-shiraseなど)からこのAPIを叩いて、ワークフローが管理しているNotionデータにアクセスできる。

n8ncli: 自作CLIツールの機能

n8nのPublic APIにはワークフローを直接実行するエンドポイントがない。GUIでの操作は手軽だが、複数ワークフローの一括管理やCI/CD的な運用には向いていない。そこでTypeScriptでCLIツールを作った。

ワークフロー管理

# 一覧取得(アクティブのみ・テーブル表示)
n8ncli wf ls --active true --table

# 詳細取得
n8ncli wf get <ID>

# バックアップファイルからインポート(新規作成)
n8ncli wf import shirase/10-Remind-Todo.json

# 既存ワークフローを更新(ファイル内IDを自動読み取り)
n8ncli wf update shirase/10-Remind-Todo.json

# n8nサーバーから最新を取得してローカルに同期
n8ncli wf sync shirase/10-Remind-Todo.json

# 有効化 / 無効化
n8ncli wf activate <ID>
n8ncli wf deactivate <ID>

ポイントは ファイル内IDベースの操作 だ。shirase/ のJSONファイルにはtop-levelに id フィールドが含まれているため、wf updatewf sync もIDを引数で渡す必要がない。ファイルパスだけで操作が完結する。

テスト実行

# Webhook経由でワークフローを実行
n8ncli wf run <workflowId>

# 入力データを渡して実行
n8ncli wf run <workflowId> -d '{"category": "Qiita"}'

前提として、ワークフローにWebhookトリガーノードが必要。定期実行トリガーしかないワークフローをテストするには、一時的にWebhookノードを追加するか、過去の実行をリトライする。

実行履歴と障害対応

# 実行履歴(ワークフロー指定、エラーのみ)
n8ncli exec ls -w <workflowId> -s error

# 実行詳細(データ含む)
n8ncli exec get <executionId> -d

# 失敗した実行を最新版ワークフローで再実行
n8ncli exec retry <executionId> --load-workflow

exec retry --load-workflow は便利で、JSONを修正してデプロイした後に、過去の失敗データを使って最新ロジックで再実行できる。入力データを手作業で用意しなくてよい。

バリデーション

# 単一ファイル検証
n8ncli validate shirase/10-Remind-Todo.json

# shirase/ 全ファイルを一括検証
n8ncli validate shirase/

# CI向け(警告もエラー扱い)
n8ncli validate shirase/ --strict

バリデーションは3層構造。

  1. Zodスキーマ: JSON構造の妥当性(必須フィールド、型チェック)
  2. セマンティックルール: コネクションの整合性、ノード名の一意性
  3. ノード固有ルール: resource/operationの妥当性、式構文チェック

npm run test:shirase でビルドと全ファイル検証をまとめて実行できる。

その他の操作

# 認証情報の一覧
n8ncli cred ls

# タグ管理
n8ncli tags ls

# 変数・設定確認
n8ncli var ls
n8ncli config

運用サイクル

日常の運用は6ステップのサイクルで回る。

1. JSON編集

shirase/ ディレクトリのJSONファイルを直接編集する。Claude Codeが /n8n-shirase スキルのパターン知識に基づいてノード構成を提案し、JSONを生成する。

2. 検証

n8ncli validate shirase/10-Remind-Todo.json

デプロイ前に必ずローカルで検証する。3層バリデーションが構造エラーから式構文の問題まで検出する。

3. デプロイ

n8ncli wf update shirase/10-Remind-Todo.json
n8ncli wf activate <ID>

ファイル内IDで自動的に対象ワークフローを特定し、更新する。

4. テスト実行

n8ncli wf run <ID> -d '{"test": true}'

Webhook経由で実際にワークフローを動かし、期待通りの動作を確認する。

5. 監視

n8ncli exec ls -w <ID>
n8ncli exec get <executionId> -d

実行履歴を確認し、エラーがあれば詳細データを取得して原因を特定する。全ワークフロー共通で 90-System-ErrorHandler が Slack #error にエラーを通知するため、異常にはすぐ気づける。

6. 同期・保存

n8ncli wf sync shirase/10-Remind-Todo.json
git add shirase/10-Remind-Todo.json && git commit -m "update 10-Remind-Todo"

n8nサーバーの最新状態をローカルに同期し、Gitにコミットする。これで変更履歴が残り、いつでも過去の状態に戻せる。

スキル連携の仕組み

Claude Codeからn8nを操作するために、複数のスキルとMCPツールを組み合わせている。

スキル構成

スキル 役割 使いどころ
/n8n-shirase 親スキル。パターン知識・設計指針を提供 新規ワークフロー設計、構成相談
/n8ncli n8n API操作 一覧、デプロイ、履歴確認、検証
/noti Notion操作 ワークフローが参照するDB(Tweet Bank等)の確認・編集
/slakky Slack操作 通知チャンネルの確認、メッセージ投稿
/gog-google-workspace Gmail・Calendar操作 メール検索、予定確認

n8n-mcp MCPサーバー

n8nのノード情報にプログラマティックにアクセスするためのMCPサーバーも接続している。

  • search_nodes : ノード検索(「slack」でSlack関連ノード一覧)
  • get_node : ノードの設定スキーマ取得(プロパティ一覧、型情報)
  • validate_node : 個別ノード設定の妥当性チェック
  • validate_workflow : ワークフロー全体の構造検証
  • search_templates / get_template : n8n公式テンプレートの検索・参照

ワークフローを新規作成するとき、Claude Codeが「Notionノードにどんなプロパティがあるか」をMCPで調べ、パターン知識と組み合わせて正しいJSONを生成する流れになる。

n8n-mcp-skills(MCPスキル集)

MCPツールの使い方を最適化するための補助スキルも用意している。

スキル 内容
n8n-node-configuration ノード設定の段階的な取得ガイド
n8n-code-javascript Codeノード内のJavaScript記法($input, $json等)
n8n-expression-syntax n8n式構文({{ }} 内の書き方)の検証
n8n-workflow-patterns 実証済みのワークフロー構造パターン
n8n-validation-expert バリデーションエラーの解釈と修正ガイド

ワークフローの構成パターン

実際のワークフローは、いくつかの定型パターンの組み合わせでできている。新規作成時はこれらのパターンをベースにする。

パターン1: 定期実行 → AI分析 → 通知

Schedule Trigger → 外部サービス(Gmail/Notion) → Code(整形) → LLM Chain(分析) → Filter(分岐) → Slack通知

01-Mail-Check、10-Remind-Todo が代表例。定期的にデータを取得し、AIが内容を判定して、条件に合うものだけSlackに通知する。

パターン2: コンテンツ生成パイプライン

Schedule Trigger → Notion(記事取得) → HTTP Request(本文取得) → LLM Chain(生成) → Notion(保存)

03-SNS-Article が代表例。Notionの記事一覧からツイート生成し、Tweet Bankに保存する。後続の03-SNS-Moderationがモデレーションして投稿する、2段構えの構成。

パターン3: イベントトリガー → AI分類 → 更新

Google Calendar Trigger → LLM Chain(分類) → Google Calendar(colorId更新)

02-Schedule-Classify が代表例。予定が作成・更新されるたびに、AIがカテゴリを判定して色を自動設定する。

パターン4: サブワークフロー

Execute Workflow Trigger → 処理ロジック → Return

90-System-FnResearch(Web検索)、90-System-FnSlack(Slack送信)など。他のワークフローから呼び出される部品。90-System-AgentShiraseは、これらをツールとして使えるAIエージェントとして機能する。

認証情報の管理

n8nの認証情報はサーバー上に暗号化されて保存される。n8ncli cred ls で一覧を確認できる。

サービス 用途
Gmail (仕事用 / 個人用) メール取得・ラベル操作
Slack チャンネル投稿・DM
Notion データベース読み書き
Google Calendar 予定取得・色設定
Anthropic (Claude) AI分析・テキスト生成
OpenAI (GPT) メール判定・構造化出力
X (Twitter) ツイート投稿
TLDV 会議録音サービス連携

ワークフローJSONには認証情報の idname が含まれるが、シークレット自体はサーバー側にある。JSONをGitに入れても認証キーは漏れない。

新しいワークフローを作る手順

  1. 要件を整理する: トリガー種類、入力ソース、AI処理内容、出力先を決める
  2. パターンを選ぶ: 上記の4パターンから最も近いものをベースにする
  3. JSONを組み立てる: /n8n-shirase スキルがパターン知識とノードテンプレートから生成する。n8n-mcpでノード設定を検証しながら進める
  4. ローカル検証: n8ncli validate shirase/XX-NewWorkflow.json
  5. インポート: n8ncli wf import shirase/XX-NewWorkflow.json
  6. ID付与: n8ncli wf export <新ID> shirase/XX-NewWorkflow.json でIDを書き戻す
  7. 有効化: n8ncli wf activate <ID>
  8. テスト: n8ncli wf run <ID> で動作確認
  9. Gitに保存: git add && git commit

まとめ

この仕組みの要点は3つ。

ワークフローをコードとして管理する。n8nのGUIで作ったワークフローをJSONとしてエクスポートし、Gitで変更履歴を追跡する。「いつ何を変えたか」が残るし、壊れたら git revertwf import で戻せる。

CLIで操作を完結させる。n8ncliがn8n APIをラップし、一覧表示からデプロイ、テスト実行、障害対応までコマンドラインで行える。ブラウザでn8nのGUIを開かなくても、Claude Codeの会話の中でワークフロー管理ができる。

パターンを蓄積して再利用する。30以上のワークフローを運用する中で見えてきた構成パターンを、スキルの知識として整理した。新しいワークフローは既存パターンの組み合わせで作れるから、毎回ゼロから設計する必要がない。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment