n8n-code-javascript
🤖 AI Summary
**n8n-code-javascript** provides expert guidance for writing JavaScript in n8n Code nodes, covering data access patterns (`$input.all()`, `$input.first()`), the required return format (`[{json: {...}}]`), and built-in helpers like `$helpers.httpRequest()` and DateTime (Luxon). It also warns about common pitfalls like webhook data being under `$json.body` and unavailable features like `$helpers.httpRequestWithAuthentication`.
How to Install
Claude Code:
git clone --depth 1 https://github.com/czlonkowski/n8n-skills.git && cp n8n-skills/skills/n8n-code-javascript ~/.claude/skills/n8n-code-javascript -r# JavaScript Code Node
Expert guidance for writing JavaScript code in n8n Code nodes.
---
## Quick Start
```javascript
// Basic template for Code nodes
const items = $input.all();
// Process data
const processed = items.map(item => ({
json: {
...item.json,
processed: true,
timestamp: new Date().toISOString()
}
}));
return processed;
```
### Essential Rules
1. **Choose "Run Once for All Items" mode** (recommended for most use cases)
2. **Access data**: `$input.all()`, `$input.first()`, or `$input.item`
3. **CRITICAL**: Must return `[{json: {...}}]` format
4. **CRITICAL**: Webhook data is under `$json.body` (not `$json` directly)
5. **Built-ins available**: $helpers.httpRequest() (no auth), DateTime (Luxon), $jmespath(). **Not available**: $helpers.httpRequestWithAuthentication, $env (when N8N_BLOCK_ENV_ACCESS_IN_NODE=true), require() (unless allowlisted)
6. **Instance-allowlisted libraries**: Self-hosted instances can allowlist modules via `N8N_RUNNERS_ALLOWED_BUILT_IN_MODULES` and `N8N_RUNNERS_ALLOWED_EXTERNAL_MODULES` (legacy: `NODE_FUNCTION_ALLOW_BUILTIN` / `NODE_FUNCTION_ALLOW_EXTERNAL`). If the user says their instance allows specific modules (e.g. `axios`, `lodash`, `crypto`), use them via `require()` — don't refuse. If unsure, ask or default to built-ins only.
7. **Wrong skill?** If you're writing code for a **Custom Code Tool** attached to an AI Agent (`@n8n/n8n-nodes-langchain.toolCode`), stop — that node has a different contract (input via `query`, must return a string, no `$input`/`$helpers`). Use the **n8n-code-tool** skill.
---
## Mode Selection Guide
The Code node offers two execution modes. Choose based on your use case:
### Run Once for All Items (Recommended - Default)
**Use this mode for:** 95% of use cases
- **How it works**: Code executes **once** regardless of input count
- **Data access**: `$input.all()` or `items` array
- **Best for**: Aggregation, filtering, batch processing, transformations, API calls with all data
- **Performance**: Faster for multiple items (single execution)
```javascript
// Example: Calculate total from all items
const allItems = $input.all();
const total = allItems.reduce((sum, item) => sum + (item.json.amount || 0), 0);
return [{
json: {
total,
count: allItems.length,
average: total / allItems.length
}
}];
```
**When to use:**
- ✅ Comparing items across the dataset
- ✅ Calculating totals, averages, or statistics
- ✅ Sorting or ranking items
- ✅ Deduplication
- ✅ Building aggregated reports
- ✅ Combining data from multiple items
### Run Once for Each Item
**Use this mode for:** Specialized cases only
- **How it works**: Code executes **separately** for each input item
- **Data access**: `$input.item` or `$item`
- **Best for**: Item-specific logic, independent operations, per-item validation
- **Performance**: Slower for large datasets (multiple executions)
```javascript
// Example: Add processing timestamp to each item
const item = $input.item;
ret
Details
| Category | Coding → generation |
| Source | czlonkowski/n8n-skills |
| SKILL.md | View on GitHub → |
| Repo Stars | ★ 5.5K |
| Est. per Skill | 369 (shared across 15 skills from this repo) |
| Difficulty | Intermediate |
| Risk Level | N/A |
Related Skills
git-pr-workflows-pr-enhance
Pull Request Enhancement You are a PR optimization expert specializing in creating high-quality pull
code-documentation-code-explain
Code Explanation and Analysis You are a code education expert specializing in explaining complex cod
fp-either-ref
Either Quick Reference Either = success or failure. Right(value) or Left(error). When to Use You nee
fp-pipe-ref
pipe & flow Quick Reference pipe - Transform a Value import { pipe } from 'fp-ts/function' // pi
Works Well With
Skills from the same repository — often designed to work together
n8n-code-python
Python Code Node (Beta) Expert guidance for writing Python code in n8n Code nodes. --- ⚠️ Important:
n8n-code-tool
n8n Custom Code Tool Expert guidance for writing code inside @n8n/n8n-nodes-langchain.toolCode — the
n8n-expression-syntax
n8n Expression Syntax Expert guide for writing correct n8n expressions in workflows. --- Expression