Перейти к содержимому

Expressions

Синтаксис и возможности expressions в n8n

Expressions заключаются в двойные фигурные скобки:

{{ выражение }}
// Поле верхнего уровня
{{ $json.name }}
// Вложенное поле
{{ $json.user.email }}
// Поле с дефисом
{{ $json["field-name"] }}
// Элемент массива
{{ $json.items[0] }}
{{ $binary.data }}
{{ $binary.data.fileName }}
{{ $binary.data.mimeType }}
{{ $binary.data.fileSize }}
// По имени ноды
{{ $('HTTP Request').item.json.data }}
// Все items из ноды
{{ $('HTTP Request').all() }}
// Первый item
{{ $('HTTP Request').first().json }}
// Последний item
{{ $('HTTP Request').last().json }}
// По индексу
{{ $('HTTP Request').itemMatching(0).json }}
МетодОписание
$input.all()Все items
$input.first()Первый item
$input.last()Последний item
$input.itemТекущий item (в Run Once for Each)
ПеременнаяОписаниеПример
$nowТекущее время (Luxon DateTime){{ $now.toISO() }}
$todayСегодня (начало дня){{ $today.toISO() }}
$itemIndexИндекс текущего item{{ $itemIndex }}
$runIndexНомер итерации в цикле{{ $runIndex }}
$envПеременные окружения{{ $env.API_KEY }}
$varsГлобальные переменные{{ $vars.BASE_URL }}
$execution.idID выполнения{{ $execution.id }}
$workflow.idID workflow{{ $workflow.id }}
$workflow.nameИмя workflow{{ $workflow.name }}
// Регистр
{{ $json.name.toUpperCase() }} // "JOHN"
{{ $json.name.toLowerCase() }} // "john"
// Обрезка
{{ $json.text.trim() }} // Убрать пробелы
{{ $json.text.substring(0, 10) }} // Первые 10 символов
{{ $json.text.slice(-5) }} // Последние 5 символов
// Замена
{{ $json.text.replace('old', 'new') }}
{{ $json.text.replaceAll(' ', '_') }}
// Разделение
{{ $json.text.split(',') }} // ['a', 'b', 'c']
{{ $json.text.split(',')[0] }} // 'a'
// Поиск
{{ $json.text.includes('search') }} // true/false
{{ $json.text.startsWith('Hello') }}
{{ $json.text.endsWith('!') }}
{{ $json.text.indexOf('find') }} // Индекс или -1
// Округление
{{ $json.price.toFixed(2) }} // "99.50"
{{ Math.round($json.value) }} // 100
{{ Math.floor($json.value) }} // 99
{{ Math.ceil($json.value) }} // 100
// Математика
{{ Math.abs($json.num) }} // Модуль
{{ Math.max(1, 2, 3) }} // 3
{{ Math.min(1, 2, 3) }} // 1
{{ Math.random() }} // 0-1
// Преобразование
{{ parseInt($json.str) }} // String → Integer
{{ parseFloat($json.str) }} // String → Float
{{ Number($json.str) }} // String → Number
// Доступ
{{ $json.items[0] }} // Первый элемент
{{ $json.items.length }} // Длина
// Методы
{{ $json.items.join(', ') }} // "a, b, c"
{{ $json.items.includes('a') }} // true/false
{{ $json.items.indexOf('b') }} // Индекс
// Трансформация (в Code Node)
{{ $json.items.map(i => i.name) }}
{{ $json.items.filter(i => i.active) }}
{{ $json.items.find(i => i.id === 1) }}
{{ $json.items.sort((a, b) => a - b) }}

n8n использует Luxon для работы с датами.

{{ $now.toFormat('dd.MM.yyyy') }} // "15.01.2025"
{{ $now.toFormat('HH:mm:ss') }} // "14:30:00"
{{ $now.toFormat('dd MMMM yyyy', { locale: 'ru' }) }} // "15 января 2025"
{{ $now.toISO() }} // ISO формат
{{ $now.toMillis() }} // Timestamp
{{ $now.plus({ days: 1 }) }} // Завтра
{{ $now.minus({ hours: 2 }) }} // 2 часа назад
{{ $now.startOf('day') }} // Начало дня
{{ $now.endOf('month') }} // Конец месяца
{{ $now > DateTime.fromISO($json.date) }}
{{ $now.diff(DateTime.fromISO($json.date), 'days').days }}
{{ $now.setZone('Europe/Moscow').toFormat('HH:mm') }}
{{ $json.status === 'active' ? 'Активен' : 'Неактивен' }}
{{ $json.name ?? 'Без имени' }} // Если null/undefined
{{ $json.count || 0 }} // Если falsy
{{ $json.user?.address?.city }} // Безопасный доступ
{{ $json.items?.[0]?.name }} // К элементу массива
// Объект → Строка
{{ JSON.stringify($json.data) }}
{{ JSON.stringify($json.data, null, 2) }} // С форматированием
// Строка → Объект
{{ JSON.parse($json.jsonString) }}
// Проверка
{{ /^[a-z]+$/.test($json.value) }}
// Поиск
{{ $json.text.match(/\d+/g) }} // Все числа
// Замена
{{ $json.text.replace(/\s+/g, ' ') }} // Убрать лишние пробелы
{{ $json.phone.replace(/[^\d]/g, '').replace(/^7/, '+7 ') }}
{{ `${$now.toMillis()}-${Math.random().toString(36).substr(2, 9)}` }}
{{ $json.user?.name || 'Anonymous' }}
{{ new Intl.NumberFormat('ru-RU', { style: 'currency', currency: 'RUB' }).format($json.price) }}