Первый результат в n8n

Данные между узлами: items, JSON и expressions

Содержание курса

Типичные ошибки: опечатка в имени поля и забытые фигурные скобки

Две ошибки в expressions встречаются чаще всего — и обе коварны тем, что не вызывают явного сбоя. Workflow выполняется, узел отрабатывает, Output появляется. Только данные в нём не те.

Ошибка 1: опечатка в имени ключа → пустое поле в Output

Предположим, входной item содержит поле priority, а в expression написано:

{{ $json.prioryty }}

Типичная опечатка — переставлена буква. n8n не выдаст ошибку выполнения, потому что с точки зрения JavaScript обращение к несуществующему ключу — это не исключение, а просто undefined.

Результат: поле в Output есть, но его значение пустое.

Симптом в Output: колонка присутствует, значение — пусто или отображается как -.

Диагностика: открываете панель Input предыдущего узла, переключаетесь в режим JSON и смотрите точное написание ключа — не «на глаз», а посимвольно. После этого исправляете expression.

// Было (ошибка)
{{ $json.prioryty }}

// Стало (правильно)
{{ $json.priority }}

Практический совет: если скопировать имя ключа прямо из JSON-режима панели Input (или использовать drag-and-drop), риск опечатки и ошибки регистра исчезает — n8n подставит точное написание за вас. Набор вручную оправдан только для простых и хорошо знакомых имён.

Ошибка 2: забытые фигурные скобки → строковый литерал вместо значения

Вторая ошибка выглядит так: вы вводите в поле значения:

$json.priority

...без {{ }}. Если поле при этом остаётся в режиме статического текста (иконка молнии не нажата), n8n не вычисляет ничего — он просто записывает это как строку.

Результат в Output: поле получает значение $json.priority — буквально эти символы, а не то, что в них подразумевалось.

Симптом в Output: значение поля — это дословно написанный текст expression, например $json.priority или {{ $json.priority }} (если скобки были, но режим не переключён).

Диагностика и исправление: проверяете, активен ли режим expression — рядом с полем должна гореть иконка ⚡. Если нет — нажимаете её. Либо убеждаетесь, что значение обёрнуто в {{ }}:

// Было (ошибка — статический текст)
$json.priority

// Стало (правильно — expression)
{{ $json.priority }}

Как читать Output, чтобы поймать обе ошибки

Оба сбоя диагностируются одним действием: смотрите в Output и задаёте себе два вопроса.

  • Значение поля пустое? → скорее всего, опечатка в имени ключа. Идёте в JSON-режим Input и сверяете.
  • Значение поля — это дословный текст expression? → поле работает в режиме статического текста. Переключаете в expression.

Оба случая лечатся за одно действие, как только поставлен правильный диагноз. Именно поэтому привычка проверять Output в JSON-режиме после каждого изменения экономит время: визуального взгляда на таблицу часто достаточно, чтобы сразу увидеть, что что-то пошло не так.