n8n-expression-syntax について
n8n-expression-syntaxは、n8nワークフローの式の作成とデバッグを支援するガイドスキルです。式の構文やデータ参照を説明し、Codeノード、Webhookパス、認証情報フィールドなどの違いを示します。
主な機能
- 01n8nの{{ ... }}式構文の解説
- 02$jsonとノードデータ参照の説明
- 03ワークフローパラメーターでの式の例
- 04式とCodeノードの利用場面の区別
- 05認証情報と入力データの安全上の注意
活用シーン
- 01n8nノードで動的な値を作成
- 02ワークフローデータを参照する式のデバッグ
- 03Webhookや認証情報フィールドでの式利用の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill n8n-expression-syntaxインストール後、Claude Code で/n8n-expression-syntaxを入力して読み込まれたか確認します。
同梱ファイルreferences/detailed-guide.md
詳細
n8n の式構文
ワークフローで正しい n8n の式を書くための専門ガイドです。
実行とデータのスコープ
以下およびガイド内で参照されている EXAMPLES.md と COMMON_MISTAKES.md は同梱されていません。式パラメーター内の $json は、現在のノードの完了済み出力ではなく、現在の入力アイテムを表します。別のノードを参照する前に、実際の実行データとアイテムのリンクを確認してください。Code ノードの API は、アイテムごとのモードと全アイテムのモードで異なります。シークレットには認証情報を使用してください。このガイドの $env の例は値を公開する可能性があり、無効になっている場合もあります。メッセージやログにシークレットや個人情報を含む Webhook データを入れないでください。URL のパス要素やクエリ要素をエンコードし、配列やオブジェクトが欠落している場合に備えて処理し、信頼できない値を後続のアクションで使用する前に検証してください。合成入力を使って式をテストしてください。プレビューが成功しても、Slack やメールのメッセージを送信してよいことにはなりません。
詳細ガイド
このスキルを実行する前に、詳細ガイドをお読みください。手順と参考資料のすべてが含まれています。安全性、前提条件、検証要件を必須として扱ってください。特定の作業では関連するセクションを読み込み、最初から最後まで作業する場合はガイド全体をお読みください。
使用する場合
{{ ... }}構文を使って n8n の式を書いたり、デバッグしたりする必要がある場合。- タスクに
$json、$node、Webhook ペイロード、または式に関連するワークフローのエラーが含まれる場合。 - n8n のノードやパラメーター内で、構文が正しい動的な値を使いたい場合。
式を使用しない場合
❌ Code ノード
Code ノードでは式ではなく、JavaScript に直接アクセスします!
// ❌ WRONG in Code node
const email = '={{$json.email}}';
const name = '{{$json.body.name}}';
// ✅ CORRECT in Code node
const email = $json.email;
const name = $json.body.name;
// Or using Code node API
const email = $input.item.json.email;
const allItems = $input.all();
❌ Webhook パス
// ❌ WRONG
path: "{{$json.user_id}}/webhook"
// ✅ CORRECT
path: "user-webhook" // Static paths only
❌ 認証情報フィールド
// ❌ WRONG
apiKey: "={{$env.API_KEY}}"
// ✅ CORRECT
Use n8n credential system, not expressions
使用例
実際のワークフロー例については、EXAMPLES.md を参照してください。
例 1:Webhook から Slack へ
Webhook が受信するデータ:
{
"body": {
"name": "John Doe",
"email": "[email protected]",
"message": "Hello!"
}
}
Slack ノードのテキストフィールド:
New form submission!
Name: {{$json.body.name}}
Email: {{$json.body.email}}
Message: {{$json.body.message}}
例 2:HTTP Request からメールへ
HTTP Request が返すデータ:
{
"data": {
"items": [
{"name": "Product 1", "price": 29.99}
]
}
}
Email ノード内(HTTP Request を参照):
Product: {{$node["HTTP Request"].json.data.items[0].name}}
Price: ${{$node["HTTP Request"].json.data.items[0].price}}
例 3:タイムスタンプの書式設定
// Current date
{{$now.toFormat('yyyy-MM-dd')}}
// Result: 2025-10-20
// Time
{{$now.toFormat('HH:mm:ss')}}
// Result: 14:30:45
// Full datetime
{{$now.toFormat('yyyy-MM-dd HH:mm')}}
// Result: 2025-10-20 14:30
制限事項
- このスキルは、タスクが上記の説明に明確に当てはまる場合にのみ使用してください。
- 出力を、環境固有の検証、テスト、または専門家によるレビューの代わりとして扱わないでください。
- 必要な入力、権限、安全上の境界、または成功基準が不足している場合は、作業を中断して確認してください。