n8nのCodeノード入門|初心者向けに基本の使い方と実例をやさしく解説

n8nを使っていると、

  • 「この文字だけ取り出したい」
  • 「JSONの形を少し変えたい」
  • 「複数の項目を1つにまとめたい」
  • 「専用ノードだけでは少し足りない」

という場面が出てきます。

そこで使うのが「Codeノード」です。

Codeノードを使うと、JavaScriptを書いてデータを加工できます。

最初は、

  • 「コードなんて無理そう」
  • 「プログラミングができないと使えないのでは?」

と感じるかもしれません。

でも、n8nで使うCodeノードは、最初から難しい処理を書く必要はありません。

たとえば、

  • 文字をつなぐ
  • 必要な項目だけ残す
  • 数字を計算する
  • データの形を整える

といった小さな処理から使えます。

この記事では、n8nのCodeノードとは何か、どんな場面で使うのか、初心者向けの基本例や注意点までやさしく解説します。

n8nのCodeノードとは?

Codeノードは、JavaScriptを使ってデータを加工するためのノードです。

簡単に言うと、

「n8nの中で少し自由にデータを整える場所」

です。

n8nには、

  • Google Sheets
  • OpenAI
  • WordPress
  • HTTP Request

など便利な専用ノードがあります。

ただし、専用ノードだけでは細かいデータ加工がしにくいことがあります。

そんなときにCodeノードを使います。

JavaScriptとは?

JavaScriptは、WebサイトやWebサービスで広く使われているプログラミング言語です。

n8nのCodeノードでは、このJavaScriptを使って処理を書きます。

難しく聞こえますが、最初は数行のコードでも十分です。

たとえば、

名前とタイトルをつなぐ

だけなら、短いコードでできます。

つまり、

「プログラマー向けの難しい機能」

というより、

「専用ノードでは足りない部分を少し補う機能」

と考えるとわかりやすいです。

Codeノードはどんなときに使う?

よくある使い方は次のようなものです。

  • 文字列をつなぐ
  • 余計な文字を削除する
  • 必要な項目だけ残す
  • 項目名を変える
  • 数字を計算する
  • 配列を並べ替える
  • JSONを整える
  • 条件によって値を変える

たとえば、

タイトル
カテゴリ
URL

を1つの文章にまとめたい場合にも使えます。

まず理解したいitems

n8nのCodeノードでは、複数のデータをまとめて扱うことがあります。

そのデータのまとまりがitemsです。

たとえばGoogle Sheetsから3行取得すると、

記事A
記事B
記事C

という3件のデータがCodeノードに入ります。

Codeノードでは、その複数データをまとめて処理できます。

初心者のうちは、

items
=Codeノードに入ってきたデータ一覧

と覚えれば十分です。

1件ずつ処理する考え方

たとえば、

title
category

という項目があるデータを加工したいとします。

入力データが、

{
  "title": "n8n入門",
  "category": "n8n"
}

だった場合、

この2つをつないで、

n8n入門|n8n

という新しい文字列を作れます。

Codeノードでは、こうした小さな加工ができます。

文字をつなぐ基本例

たとえばtitleとcategoryをつなぎたい場合です。

考え方は、

title
+
区切り文字
+
category

です。

JavaScriptでは、文字列をつなぐ方法がいくつかあります。

たとえば、

const title = item.json.title;
const category = item.json.category;

item.json.label = `${title}|${category}`;

return item;

のように書けます。

すると、

title
category

に加えて、

label

という新しい項目を作れます。

`${}`は何?

${}は、文字の中に変数を入れる書き方です。

たとえば、

${title}

なら、titleに入っている文字が入ります。

もしtitleが、

n8n入門

なら、

${title}の記事です

と書くと、

n8n入門の記事です

になります。

最初は少し見慣れませんが、文章を組み立てるときに便利です。

必要な項目だけ残す

Codeノードでは、不要なデータを削って必要な項目だけ返すこともできます。

たとえば入力データに、

  • title
  • category
  • content
  • status
  • row_number
  • created_at

があったとします。

その中から、

  • title
  • category

だけ残したい場合です。

出力を、

{
  "title": "n8n入門",
  "category": "n8n"
}

のようにできます。

データが多すぎて見づらい場合に便利です。

項目名を変える

外部サービスから取得したデータの項目名がわかりにくいことがあります。

たとえば、

post_title

という項目を、

title

へ変更したい場合です。

Codeノードで新しい項目を作り、

title = post_title

のように変換できます。

あとでExpressionを書くときも、短くわかりやすい名前の方が管理しやすくなります。

数字を計算する

Codeノードでは計算もできます。

たとえば、

price
quantity

という項目がある場合、

価格 × 個数

を計算して、

total

という項目を作れます。

例として、

price:2000
quantity:3

なら、

total:6000

です。

売上管理や見積もり、在庫管理などでも使えます。

条件によって値を変える

簡単な条件処理もできます。

たとえば、

点数が80以上ならA

60以上ならB

それ以外ならC

のような処理です。

IFノードでも条件分岐できますが、

「値を少し変えるだけ」

ならCodeノード内で処理した方がシンプルになることがあります。

ただし、流れ自体を分けたい場合はIFノードの方がわかりやすいです。

JSONを整える

AI自動化ではJSONを扱うことが多くあります。

たとえばOpenAIから、

{
  "title": "n8n入門",
  "category": "n8n",
  "keyword": "n8n 初心者"
}

のようなデータが返ってきたとします。

Codeノードを使えば、

  • 必要な項目だけ抜き出す
  • 別の名前に変える
  • WordPress用の形へ変換する

といった処理ができます。

CodeノードとExpressionの違い

ExpressionとCodeノードは、どちらもデータを扱います。

ただし役割は少し違います。

Expression
=既存のデータを参照する

Code
=データそのものを加工する

というイメージです。

たとえば、

{{ $json["タイトル"] }}

は、タイトルを取得するだけです。

一方Codeノードなら、

  • タイトルの前に文字を付ける
  • 文字数を数える
  • 不要な部分を削る

といった加工ができます。

CodeノードとEdit Fieldsの違い

n8nにはEdit Fieldsというノードもあります。

簡単な項目追加や名前変更なら、Edit Fieldsだけで足りることもあります。

たとえば、

  • 固定値を追加する
  • 項目名を変える
  • 不要な項目を削る

くらいならEdit Fieldsの方がわかりやすいです。

一方、

  • 複雑な計算
  • 複数条件
  • 文字列加工
  • 繰り返し処理

が必要ならCodeノードが便利です。

初心者は、

簡単な加工
=Edit Fields

少し複雑な加工
=Code

くらいに考えるとわかりやすいです。

実例:記事タイトルを整える

たとえばAIが作ったタイトルに、

【初心者向け】

という文字を付けたい場合です。

元のタイトルが、

n8nの使い方

なら、

【初心者向け】n8nの使い方

に変えられます。

こうした文字加工はCodeノードで簡単にできます。

実例:空白を削除する

外部データには、余計な空白が入っていることがあります。

たとえば、

” n8n初心者 “

のような状態です。

JavaScriptではtrimという処理を使うと、

前後の空白を削除できます。

結果は、

“n8n初心者”

になります。

Google Sheetsやフォームデータを扱うときに役立ちます。

実例:文字数を数える

記事本文の文字数を確認したい場合もあります。

たとえば、

content

という本文があるなら、

本文の長さを調べて、

character_count

という項目に保存できます。

これを使えば、

3000文字未満なら修正

というIFノードにつなぐこともできます。

Code
↓
文字数を計算
↓
IF
↓
3000文字未満なら再処理

実例:WordPress投稿前のデータ整理

ブログ自動化では、

Google Sheets
↓
OpenAI
↓
Code
↓
WordPress

という構成も使えます。

Codeノードで、

  • タイトル
  • 本文
  • カテゴリ
  • スラッグ

などを整えてからWordPressへ送ります。

投稿前にデータを整理する場所としてCodeノードを使うイメージです。

実例:AI結果から必要部分だけ取り出す

OpenAIの出力に余計な文章が含まれる場合があります。

たとえば、

以下が結果です。

タイトル:n8n初心者向け解説

よろしくお願いします。

のような文章です。

Codeノードで文字列を加工すれば、

タイトル部分だけ

取り出すこともできます。

ただし、可能なら最初からAIにJSON形式で出力させる方が安定しやすいです。

Codeノードは、崩れたデータを無理やり直すためではなく、

「必要な加工をする場所」

として使う方が管理しやすくなります。

複数データをまとめて加工する

Google Sheetsから10行取得した場合、Codeノードで10件すべてを処理できます。

たとえば、

  • すべての商品価格に消費税を加える
  • すべての記事タイトルを整える
  • すべてのメールアドレスを小文字にする

といった処理です。

大量データを一括で加工できるのもCodeノードの強みです。

Run Once for All Itemsとは?

Codeノードでは、複数データをまとめて1回のコードで処理する方法があります。

これは、

Run Once for All Items

のような考え方です。

たとえば10件のデータがあった場合、

10件をまとめて受け取り、

  • 並べ替え
  • 合計計算
  • 重複削除

などができます。

複数データ全体を見ながら処理したいときに向いています。

Run Once for Each Itemとは?

一方で、

Run Once for Each Item

のように、データを1件ずつ処理する方法もあります。

たとえば10件の記事があった場合、

記事Aを加工

記事Bを加工

記事Cを加工

というように1件ずつ同じ処理を行います。

初心者にはこちらの方が理解しやすいこともあります。

エラーが出たらOUTPUTを見る

Codeノードでエラーが起きた場合は、

入力データ
コード
出力データ

を順番に確認します。

特に、

  • 項目名が違う
  • データが空
  • 数字だと思ったら文字だった

というケースが多いです。

前のノードのOUTPUTを確認して、

本当にtitleという項目があるか

本当に値が入っているか

を見ることが大切です。

undefinedとは?

Codeノードを使っていると、

undefined

という表示が出ることがあります。

これは、

「その値が見つからない」

という意味です。

たとえば、

item.json.title

を使っているのに、実際の項目名が、

タイトル

だった場合です。

Codeノードがtitleを探しても見つからないため、

undefined

になります。

この場合は、前のノードのOUTPUTと項目名を確認します。

データ型にも注意する

JavaScriptでは、

文字
数字
真偽値

などデータの種類があります。

たとえば、

"100"

は文字です。

100

は数字です。

見た目は似ていますが、処理によっては結果が変わります。

数字を計算したいときは、

本当に数字として扱われているか

を確認することが大切です。

いきなり長いコードを書かない

初心者がCodeノードを使うときは、長いコードを最初から書かない方が安全です。

おすすめは、

  • 1つの項目を追加
  • 1つの文字列を加工
  • 1つの計算をする

という小さな処理から始めることです。

正常に動いたら、少しずつ処理を追加します。

n8nのワークフローと同じで、

小さく作る
↓
実行する
↓
確認する
↓
追加する

の流れが安全です。

AIにコードを書いてもらうこともできる

現在は、ChatGPTなどのAIにCodeノード用のJavaScriptを書いてもらうこともできます。

たとえば、

「n8nのCodeノードで、titleとcategoryを結合してlabelという項目を作りたい」

と伝えれば、コード案を作ってもらえます。

ただし、そのまま使うのではなく、

  • 入力項目名
  • 期待する出力
  • 現在のn8nのデータ構造

が合っているか確認することが大切です。

AIが作ったコードでも、実際のデータと項目名が違えば動きません。

Codeノードを使いすぎない

Codeノードは便利ですが、何でもコードにするとワークフローがわかりにくくなります。

たとえば簡単な条件分岐ならIFノード。

簡単な項目変更ならEdit Fields。

複数データの結合ならMerge。

というように、専用ノードでわかりやすく作れるなら、そちらを使う方が管理しやすいです。

Codeノードは、

「専用ノードでは少し足りない」

ときに使うのがおすすめです。

Codeノードを使うメリット

Codeノードを使えるようになると、自動化の自由度がかなり上がります。

たとえば、

  • 外部APIから来たデータを整える
  • AIの出力を加工する
  • WordPress用にデータを変換する
  • 複数データを計算する

といったことができます。

専用ノードだけでは難しい細かい処理を作れるようになります。

自動化代行でも役立つ

実際の業務では、サービスごとにデータ形式が違います。

たとえば、

顧客名
customer_name

メールアドレス
email_address

商品番号
product_id

など、項目名もバラバラです。

Codeノードを使えば、こうしたデータを自分のワークフローで使いやすい形へ変換できます。

そのため、自動化代行や業務改善ではCodeノードが役立つ場面が多くあります。

初心者はこの3つから試そう

最初は、次の3つくらいから試すのがおすすめです。

  1. 文字をつなぐ
  2. 項目名を変える
  3. 数字を計算する

この3つだけでも、Codeノードの基本的な考え方がわかります。

そのあと必要になったら、

  • 配列
  • 繰り返し
  • 条件処理
  • JSON加工

などを少しずつ覚えていけば十分です。

まとめ

n8nのCodeノードは、JavaScriptを使ってデータを自由に加工するためのノードです。

たとえば、

  • 文字をつなぐ
  • 項目名を変える
  • 数字を計算する
  • JSONを整える
  • 必要なデータだけ残す

といった処理ができます。

ただし、最初から難しいコードを書く必要はありません。

簡単な処理なら、

  • Edit Fields
  • IF
  • Merge

などの専用ノードを使った方がわかりやすい場合もあります。

それでも専用ノードだけでは足りないときに、Codeノードを使います。

n8nでは、

専用ノードでつなぐ
↓
Expressionでデータを渡す
↓
必要ならCodeノードで加工する

という考え方ができるようになると、自動化の自由度が大きく広がります。

まずは短いコードで1つのデータを加工するところから試してみるのがおすすめです。

次に読む記事