Ep 10: The Built-in Toolbelt — Merge, Set, Edit Image & Date Nodes

⏱ Est. reading time: 12 min Updated on 4/9/2026

Utility Nodes Landscape

These nodes aren't as flashy as AI Agents, but they're the Swiss army knife you use every day.

graph TB
    subgraph "n8n Utility Node Map"
        Set[⚙️ Set/Edit Fields]
        Merge[🔗 Merge]
        Filter[🔍 Filter]
        Sort[📊 Sort]
        Limit[✂️ Limit]
        Remove[🗑️ Remove Duplicates]
        DateTime[🕐 Date & Time]
        Image[🖼️ Edit Image]
    end
    
    style Set fill:#22c55e,stroke:#16a34a,color:#fff
    style Merge fill:#6366f1,stroke:#4f46e5,color:#fff

1. Set / Edit Fields Node

Usage frequency: ⭐⭐⭐⭐⭐

// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// Three modes of the Set node
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

// Mode 1: Add new fields
// Field: fullName = {{ $json.firstName + ' ' + $json.lastName }}

// Mode 2: Keep Only Set (strip all other fields)
// Enable "Keep Only Set" → only specified fields survive

// Mode 3: Dynamic computation
// discountPrice = {{ Math.round($json.price * 0.85) }}
// isExpensive = {{ $json.price > 500 }}

2. Merge Node — Multi-Stream Join

graph TB
    subgraph "Three Core Merge Modes"
        subgraph "Append"
            A1[Stream 1: 3 Items] --> MA[Merge]
            A2[Stream 2: 2 Items] --> MA
            MA --> AR[Output: 5 Items]
        end
        
        subgraph "Combine by Position"
            B1["[A, B, C]"] --> MB[Merge]
            B2["[1, 2, 3]"] --> MB
            MB --> BR["[A+1, B+2, C+3]"]
        end
        
        subgraph "Combine by Field (SQL JOIN)"
            C1["Users [{id:1}]"] --> MC[Merge]
            C2["Orders [{uid:1}]"] --> MC
            MC --> CR["Joined [{id:1, name, amount}]"]
        end
    end

3. Date & Time

// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// Luxon-based time expressions
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

{{ $now.toISO() }}                    // "2026-04-09T12:30:00.000+08:00"
{{ $now.plus({ days: 7 }) }}          // 7 days from now
{{ $now.minus({ hours: 2 }) }}        // 2 hours ago
{{ $now.toFormat('yyyy-MM-dd') }}     // "2026-04-09"
{{ $now.setZone('America/New_York') }}  // Timezone conversion

4. Classic Combo: Data Cleaning Pipeline

graph LR
    Raw[Raw Data
100 Items] --> Filter[Filter
status=active] Filter --> Dedup[Remove Duplicates
by email] Dedup --> Sort[Sort
by score desc] Sort --> Limit[Limit
Top 10] Limit --> Clean[Clean Data
10 Items ✨] style Clean fill:#22c55e,stroke:#16a34a,color:#fff

Module 2 Complete!

mindmap
  root((Module 2: Logic & Data))
    Ep 06 Branching
      If Node
      Switch Node
      Loop Over Items
    Ep 07 Data Tables
      CRUD Operations
      Deduplication
    Ep 08 HTTP Request
      Auth (API Key / OAuth2)
      Pagination
      Retry
    Ep 09 Code Node
      JS Two Modes
      Python Support
      Built-in Variables
    Ep 10 Utility Nodes
      Set / Merge
      Date & Time
      Filter / Sort / Limit

Next Module

From Ep 11, we enter AI Agent territory — connecting LLMs to n8n workflows, transforming them from "execution machines" into "thinking agents."