# Usage Guide

Learn how to use n8n-skills effectively with Claude.

---

## How Skills Activate

Skills activate **automatically** based on your query content. You don't need to manually invoke them.

### Activation Triggers

Each skill has specific triggers defined in its frontmatter:

```markdown
---
name: n8n Expression Syntax
description: Validate n8n expression syntax and fix common errors. Use when writing n8n expressions, using {{}} syntax, accessing $json/$node variables, or troubleshooting expression errors in workflows.
---
```

When your query matches the description keywords, the skill activates.

---

## Individual Skill Usage

### 1. n8n Expression Syntax

**Activates on**: expression, {{}}  syntax, $json, $node, webhook data access

**Example Queries**:
```
"How do I write n8n expressions?"
"Why is {{$json.email}} showing undefined?"
"Access webhook data in Slack node"
"What's wrong with my $node reference?"
```

**What You'll Learn**:
- Correct {{}} syntax
- Webhook data structure ($json.body.*)
- Node references ($node["Node Name"].json)
- Common mistakes and fixes
- When NOT to use expressions (Code nodes)

**Example Response**:
```
[Skill activates]

n8n expressions must be wrapped in double curly braces:

✅ Correct: {{$json.body.email}}
❌ Wrong: $json.body.email

For webhook data, remember it's under .body:
{{$json.body.name}}  // Webhook form data
{{$json.body.message}}  // Webhook message

In Code nodes, use direct access (no {{}}):
const email = $json.body.email;  // Correct in Code node
```

---

### 2. n8n MCP Tools Expert

**Activates on**: search nodes, validate, find node, MCP tools, template, workflow

**Example Queries**:
```
"Find me a Slack node"
"How do I search for database nodes?"
"Validate this node configuration"
"What's the difference between get_node({detail: "full"}) and get_node?"
"Which MCP tool should I use to create workflows?"
```

**What You'll Learn**:
- Tool selection (which tool for which task)
- nodeType format differences
- Validation profiles (minimal/runtime/ai-friendly/strict)
- Common MCP tool mistakes
- Workflow management tools

**Example Response**:
```
[Skill activates]

To find the Slack node, use search_nodes:

search_nodes({query: "slack"})

This returns:
- nodeType: "nodes-base.slack" (for search/validate tools)
- workflowNodeType: "n8n-nodes-base.slack" (for workflows)

⚠️ Important: Use different formats for different tools!

Next, get node details:
get_node({nodeType: "nodes-base.slack"})

This returns focused 5KB data vs 100KB+ from get_node({detail: "full"}).
```

---

### 3. n8n Workflow Patterns

**Activates on**: build workflow, webhook, pattern, architecture, workflow structure

**Example Queries**:
```
"Build a webhook to Slack workflow"
"What's the best pattern for API integration?"
"Create a scheduled database workflow"
"Show me webhook processing pattern"
```

**What You'll Learn**:
- 5 proven patterns (webhook, HTTP API, database, AI, scheduled)
- Workflow creation checklist
- Node connection best practices
- Real template examples
- Pattern selection guide

**Example Response**:
```
[Skill activates]

For webhook to Slack, use the Webhook Processing pattern:

Pattern Structure:
Webhook Trigger → [Transform] → Slack Notification

Workflow Checklist:
□ Search for nodes (search_nodes)
□ Get node configurations (get_node)
□ Create workflow structure
□ Add data mappings (expressions)
□ Validate workflow
□ Test with sample data

Real Example from Template #2947:
Webhook → OpenStreetMap → NWS → Slack
(1,500 views, proven pattern)
```

---

### 4. n8n Validation Expert

**Activates on**: validation, error, fix, debug, validate workflow

**Example Queries**:
```
"Why is my workflow validation failing?"
"Fix this validation error"
"Explain this validation warning"
"What does auto-sanitization do?"
```

**What You'll Learn**:
- Validation loop workflow
- Error interpretation
- Auto-sanitization system
- False positives handling
- Profile selection

**Example Response**:
```
[Skill activates]

Validation Error: "Required field 'channel' missing"

Fix:
validate_node({
  nodeType: "nodes-base.slack",
  config: {
    resource: "message",
    operation: "post",
    channel: "#general",  // Add this!
    text: "Message"
  },
  profile: "runtime"
})

Auto-sanitization will fix:
✅ Binary operator structures (equals, contains)
✅ Unary operator structures (isEmpty, isNotEmpty)
✅ Missing metadata in IF/Switch nodes

But cannot fix:
❌ Broken connections
❌ Branch count mismatches
```

---

### 5. n8n Node Configuration

**Activates on**: configure node, property, operation, dependencies, AI workflow

**Example Queries**:
```
"How do I configure the HTTP Request node?"
"What properties does the Slack node need?"
"Explain property dependencies"
"Set up AI Agent workflow"
```

**What You'll Learn**:
- Operation-specific requirements
- Property dependencies (sendBody → contentType)
- AI connection types (8 types)
- Common configuration patterns

**Example Response**:
```
[Skill activates]

HTTP Request node property dependencies:

1. Set sendBody = true
   ↓ Reveals: contentType

2. Set contentType = "json"
   ↓ Reveals: specifyBody

3. Set specifyBody = "json"
   ↓ Reveals: jsonBody

This cascade of 32 dependencies ensures you see only relevant properties!

For AI workflows, 8 connection types:
- ai_languageModel (OpenAI, Anthropic)
- ai_tool (HTTP Request Tool, Code Tool)
- ai_memory (Window Buffer Memory)
- ai_outputParser, ai_embedding, ai_vectorStore...
```

---

## Cross-Skill Composition

Skills work **together automatically**. Here's how:

### Example: Complete Workflow Build

**Your Query**:
```
"Build and validate a webhook to Slack workflow with proper data mapping"
```

**What Happens** (all automatic):

**Step 1**: n8n Workflow Patterns activates
```
→ Identifies: Webhook Processing Pattern
→ Provides: Workflow structure
```

**Step 2**: n8n MCP Tools Expert activates
```
→ Searches: search_nodes({query: "webhook"})
→ Searches: search_nodes({query: "slack"})
→ Gets details: get_node for both
```

**Step 3**: n8n Node Configuration activates
```
→ Guides: Webhook node setup (path, httpMethod)
→ Guides: Slack node setup (resource, operation, channel)
```

**Step 4**: n8n Expression Syntax activates
```
→ Provides: {{$json.body.message}} for data mapping
→ Warns: Webhook data is under .body!
```

**Step 5**: n8n Validation Expert activates
```
→ Validates: Complete workflow structure
→ Checks: Node configurations
→ Reports: Any errors or warnings
```

**Result**: Complete, validated, working workflow!

---

## Common Use Cases

### Use Case 1: Quick Node Search

```
You: "Find email nodes"

[n8n MCP Tools Expert activates]
Claude: Uses search_nodes({query: "email"})
Returns: Gmail, Email Send, IMAP Email, etc.
```

### Use Case 2: Fix Expression Error

```
You: "My {{$json.name}} is showing undefined in webhook workflow"

[n8n Expression Syntax activates]
Claude: Webhook data is under .body!
Fix: {{$json.body.name}}
```

### Use Case 3: Understand Validation Error

```
You: "Validation says 'binary operator cannot have singleValue'"

[n8n Validation Expert activates]
Claude: Binary operators (equals, contains) should NOT have singleValue.
Auto-sanitization will fix this on next update.
```

### Use Case 4: Build AI Workflow

```
You: "Create an AI Agent workflow with HTTP Request tool"

[n8n Workflow Patterns + Node Configuration activate]
Claude: AI Agent Workflow Pattern:
1. Connect language model: sourceOutput="ai_languageModel"
2. Connect tool: sourceOutput="ai_tool"
3. Connect memory: sourceOutput="ai_memory"

[Provides complete configuration]
```

---

## Best Practices

### 1. Be Specific

**Good**: "Build a webhook that receives form data and posts to Slack"
**Better**: "Build a webhook to Slack workflow with form validation and error handling"

**Why**: More specific queries activate relevant skills with better context.

### 2. Ask Follow-Up Questions

Skills provide deep knowledge. Don't hesitate to ask:
```
"Explain property dependencies in HTTP Request node"
"Show me more webhook examples"
"What are validation profiles?"
```

### 3. Request Validation

Always ask for validation:
```
"Build this workflow AND validate it"
"Check if this configuration is correct"
```

### 4. Leverage Cross-Skill Knowledge

```
"Build, validate, and explain the expressions in this workflow"
→ Activates: Patterns + Validation + Expression Syntax
```

### 5. Reference Real Templates

```
"Show me template #2947 and explain how it works"
→ Uses n8n-mcp tools to fetch and analyze real templates
```

---

## Skill Limitations

### What Skills CAN Do:
✅ Teach n8n concepts
✅ Guide MCP tool usage
✅ Provide workflow patterns
✅ Interpret validation errors
✅ Explain configurations
✅ Reference real templates

### What Skills CANNOT Do:
❌ Execute workflows (use n8n for that)
❌ Access your n8n instance directly (use n8n-mcp API tools)
❌ Modify running workflows
❌ Debug runtime execution errors (only configuration errors)

---

## Tool Availability

**Always Available** (no n8n API needed):
- search_nodes, search_nodes, get_node ✅
- validate_node({mode: "minimal"}), validate_node ✅
- validate_workflow, get_node({mode: "search_properties"}) ✅
- search_templates, get_template ✅

**Requires n8n API** (N8N_API_URL + N8N_API_KEY):
- n8n_create_workflow ⚠️
- n8n_update_partial_workflow ⚠️
- n8n_validate_workflow (by ID) ⚠️
- n8n_list_workflows, n8n_get_workflow ⚠️
- n8n_trigger_webhook_workflow ⚠️

If API tools unavailable, skills use templates and validation-only workflows.

---

## Troubleshooting

### Skill Not Activating

**Problem**: Skill doesn't activate when expected

**Solution**: Rephrase query to match activation keywords
```
Instead of: "How do I use expressions?"
Try: "How do I write n8n expressions with {{}} syntax?"
```

### Wrong Skill Activates

**Problem**: Different skill than expected activates

**Solution**: This is usually fine! Skills complement each other.
If needed, be more specific:
```
"Using n8n MCP tools, search for webhook node"
```

### Multiple Skills Needed

**Problem**: Need knowledge from multiple skills

**Solution**: Ask a comprehensive question:
```
"Build, configure, and validate a webhook workflow with explanations"
```

All relevant skills will activate automatically.

---

## Advanced Usage

### Request Specific Tool Usage

```
"Use get_node to show me Slack node configuration"
```

### Ask for Real Examples

```
"Show me real template examples of webhook workflows"
```

### Request Step-by-Step

```
"Step by step: build a webhook to database workflow with validation at each step"
```

### Debug with Skills

```
"My workflow fails validation. Debug it using validation expert knowledge."
```

---

## Next Steps

- **Getting Started**: Try example queries above
- **Deep Dive**: Read individual SKILL.md files in skills/
- **Contribute**: See [DEVELOPMENT.md](DEVELOPMENT.md)

---

## Support

- **Issues**: https://github.com/czlonkowski/n8n-skills/issues
- **Discussions**: https://github.com/czlonkowski/n8n-skills/discussions

---

**Ready to build amazing n8n workflows with Claude? Start asking questions!** 🚀

---

Conceived by Romuald Członkowski - [www.aiadvisors.pl/en](https://www.aiadvisors.pl/en)
