「AI を使いたい」が「使いこなせている」に変わる境界線
「ChatGPT はすごい」「Claude は賢い」——そう思いながら、毎回チャット画面に貼り付けてコピペしていないか。
それが変わる転機は、AI を「ツール」ではなく「フローの中の部品」として扱うことにある。
この記事では n8n × Claude で実際に動く自動化フローを設計する全手順を解説する。コードは不要。ブラウザ上のノードをつなぐだけで、AI が自動で動き続ける仕組みが作れる。
n8n とは何か
n8n(エヌエイトエヌ)は、ノードをつなぐだけでシステム間の連携を自動化できるワークフローツールだ。
Zapier や Make と似ているが、決定的な違いが2つある。
- セルフホスト可能 — 自分のサーバーやPCで動かせる。クラウド版もある。
- 完全 OSS — コードノードで JavaScript が書ける。AI API を自由に呼べる。
Slack で受け取ったメッセージを Claude に渡して要約し、Notion に保存する——こういった「複数ツールをまたぐ処理」がノードをつなぐだけで作れる。
Claude API を n8n で呼ぶ基本構造
n8n で Claude を使うには HTTP Request ノード を使う。
[Trigger] → [データ加工] → [HTTP Request → Claude API] → [結果を送信]
HTTP Request ノードの設定:
| 項目 | 値 |
|---|---|
| Method | POST |
| URL | https://api.anthropic.com/v1/messages |
| Header: x-api-key | {{ $env.ANTHROPIC_API_KEY }} |
| Header: anthropic-version | 2023-06-01 |
| Header: content-type | application/json |
Body(JSON):
{
"model": "claude-haiku-4-5-20251001",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "{{ $json.prompt }}"
}
]
}$env.ANTHROPIC_API_KEY は n8n の環境変数に設定しておく。API キーをワークフロー内にハードコードしてはいけない。
実用例 1: 問い合わせフォーム → AI 要約 → Slack 通知
フロー構成
Webhook → Set(プロンプト組み立て) → HTTP Request(Claude) → Slack
各ノードの役割
Webhook ノード 問い合わせフォーム(Google フォーム等)の送信を受け取る。n8n が URL を発行するので、フォームの送信先 URL に設定する。
Set ノード 受け取ったフォームデータを Claude へのプロンプトに組み立てる。
以下の問い合わせを3行で要約してください。
緊急度(高/中/低)と対応担当部署(技術/営業/経理)も判定してください。
件名: {{ $json.subject }}
内容: {{ $json.body }}
送信者: {{ $json.name }} ({{ $json.email }})
HTTP Request ノード 上記プロンプトを Claude に送り、要約と判定を受け取る。
Slack ノード
Claude の返答を Slack に投稿する。緊急度「高」の場合は @channel でメンションするように条件分岐を加えると実用的だ。
効果
このフローがあれば、毎日30件の問い合わせを全件確認しなくてよくなる。Claude が「これは緊急・技術チーム担当」と振り分けてくれる。
実用例 2: 毎朝 AI がニュースをまとめて Slack に届ける
フロー構成
Schedule Trigger(毎朝7時) → HTTP Request(RSS取得) → Code(記事リスト整形) → HTTP Request(Claude要約) → Slack
Schedule Trigger ノード
毎朝 07:00 JST に起動するよう設定する。n8n の Cron 式: 0 22 * * *(UTC で 22:00 = JST で 07:00)。
HTTP Request(RSS 取得) Hacker News や TechCrunch Japan の RSS フィード URL を取得する。無料・認証不要。
https://hnrss.org/frontpage?points=100
Code ノード RSS の XML をパースして「タイトル + URL」のリストに整形する。
const items = $input.first().json.items;
const top10 = items.slice(0, 10);
return [{
json: {
articles: top10.map(i => `- ${i.title}\n ${i.url}`).join('\n')
}
}];HTTP Request(Claude 要約) 「以下の記事から日本のAI開発者に関係するものを3つ選んで1行ずつ要約してください」とプロンプトを送る。
Claude はコスト効率を考えると claude-haiku-4-5-20251001 が最適だ。1000トークンあたり約$0.001。1日30件まとめても月額 ¥100 以下で動く。
実用例 3: ブログ記事の自動 X(Twitter)告知文生成
フロー構成
Webhook(記事公開時) → HTTP Request(Claude) → Manual Approval(Slack) → X Post
Claude へのプロンプト
以下のブログ記事の告知ツイートを2パターン作成してください。
条件:
- 140字以内
- 技術系の読者向け
- 数字や実績を含める
- 末尾に「→ 記事URL」を入れる
記事タイトル: {{ $json.title }}
記事概要: {{ $json.description }}
記事 URL: {{ $json.url }}
Slack 承認ノード Claude が生成した2パターンを Slack に送り、担当者がボタンで選んで承認する。自動投稿ではなく「人間が最終確認してから投稿」する設計にすることで、品質を担保できる。
n8n でよく使うエラー対処
エラー1: Cannot read properties of undefined
Code ノードで $json.something が undefined になるパターン。前段のノードが期待通りの形式でデータを渡していない。
対処: Code ノードの前に Set ノードを入れてデータ構造を確認する。$json.toString() で実際の値を確認できる。
エラー2: Claude API から 400 Bad Request
anthropic-version ヘッダーの書き漏れが最多原因。
対処: ヘッダーに anthropic-version: 2023-06-01 が含まれているか確認する。
エラー3: n8n の Code ノードで fetch が使えない
n8n の Code ノード(task runner モード)では fetch は使えない。
対処: require('https').request(...) を使う。または HTTP Request ノードを別で立てて処理を分ける。
セルフホストでコストを最小化する
クラウド版 n8n は無料プランでも使えるが、ワークフロー数やステップ数に制限がある。本格利用するならセルフホストが圧倒的にコスパが良い。
自宅 PC(常時起動)か VPS(月 ¥500 ~)があれば Docker で動かせる:
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
n8nio/n8nhttp://localhost:5678 でアクセスできる。
セルフホストなら 実行回数無制限・ワークフロー数無制限。Claude API の課金だけ気にすれば、実質コストゼロで運用できる。
まとめ
- n8n は「ノードをつなぐだけ」で複数ツールを連携できる
- Claude API は HTTP Request ノードで呼ぶだけで使える
- 問い合わせ要約・ニュース収集・SNS告知の3パターンから始めると実用的
- セルフホストなら Claude API 代だけで無制限に動かせる
AI を「毎回チャット画面を開いて使うもの」から「フローの中で自動で動くもの」に変えると、体感できる自動化の範囲が大きく広がる。
Think You Lab では n8n × Claude × Supabase を使った実践 LMS を運営している。「知ってる。試した。でも、まだ動いていない」を卒業したい人向けに、実際に動くフローを一緒に作る環境を用意している。
LINE 公式アカウント
n8n × Claude の自動化テンプレートをLINEで無料配布中