mcpbeat Sign in

N8n Workflows Skill for Claude

n8n otomasyon workflow'lari. Webhook, cron trigger, API entegrasyon, CI/CD otomasyon.

3k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
521
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/vibeeval/vibecosystem --skill n8n-workflows

The instruction itself

50 sections, as written by the author

n8n Workflows

n8n MCP Server Kurulumu

NPM Kurulum

npm install -g n8n
n8n start  # http://localhost:5678

Docker Kurulum

docker run -d \
  --name n8n \
  -p 5678:5678 \
  -v n8n_data:/home/node/.n8n \
  -e N8N_BASIC_AUTH_ACTIVE=true \
  -e N8N_BASIC_AUTH_USER=admin \
  -e N8N_BASIC_AUTH_PASSWORD=<strong-password> \
  n8nio/n8n

MCP Server Config

{
  "mcpServers": {
    "n8n": {
      "command": "npx",
      "args": ["-y", "@anthropic/n8n-mcp-server"],
      "env": {
        "N8N_API_URL": "http://localhost:5678/api/v1",
        "N8N_API_KEY": "<n8n-api-key>"
      }
    }
  }
}

API Key Olusturma

n8n UI > Settings > API > Create API Key
Scope: workflow:read, workflow:write, execution:read

Workflow Olusturma

Temel Yapi

{
  "name": "My Workflow",
  "nodes": [
    {
      "name": "Trigger",
      "type": "n8n-nodes-base.webhook",
      "position": [250, 300],
      "parameters": {
        "path": "my-webhook",
        "httpMethod": "POST"
      }
    },
    {
      "name": "Process",
      "type": "n8n-nodes-base.function",
      "position": [450, 300],
      "parameters": {
        "functionCode": "return items.map(item => ({ json: { processed: true, ...item.json } }));"
      }
    }
  ],
  "connections": {
    "Trigger": {
      "main": [[{ "node": "Process", "type": "main", "index": 0 }]]
    }
  }
}

MCP ile Workflow Olustur

n8n.create_workflow({
  name: "Deploy Notification",
  nodes: [...],
  connections: {...},
  active: true
})

Workflow Listele

n8n.list_workflows({
  active: true,
  tags: ["production"]
})

Workflow Calistir

n8n.execute_workflow({
  workflow_id: "123",
  data: {
    environment: "production",
    version: "v1.2.3"
  }
})

Trigger Tipleri

Webhook Trigger

{
  "type": "n8n-nodes-base.webhook",
  "parameters": {
    "path": "deploy-hook",
    "httpMethod": "POST",
    "authentication": "headerAuth",
    "options": {
      "responseMode": "responseNode",
      "responseCode": 200
    }
  }
}

Cron Trigger

{
  "type": "n8n-nodes-base.cron",
  "parameters": {
    "triggerTimes": {
      "item": [
        { "mode": "everyDay", "hour": 9, "minute": 0 },
        { "mode": "custom", "cronExpression": "0 */6 * * *" }
      ]
    }
  }
}

Event Trigger'lar

| Trigger | Kaynak | Kullanim |

|---------|--------|----------|

| Webhook | Dis sistem | GitHub push, Stripe payment |

| Cron | Zamanlama | Gunluk rapor, cleanup |

| Email (IMAP) | Email | Support ticket olusturma |

| RSS | Feed | Icerik izleme |

| Telegram | Bot mesaj | Komut isleme |

| GitHub | Repo event | CI/CD tetikleme |

| Slack | Mesaj/mention | Team notification |

| Database | Row change | Data sync |

Poll Trigger

{
  "type": "n8n-nodes-base.pollTrigger",
  "parameters": {
    "pollTimes": {
      "item": [{ "mode": "everyMinute", "minute": 5 }]
    },
    "url": "https://api.example.com/status"
  }
}

Node Tipleri ve Kullanimi

HTTP Request

{
  "type": "n8n-nodes-base.httpRequest",
  "parameters": {
    "url": "https://api.example.com/data",
    "method": "POST",
    "authentication": "predefinedCredentialType",
    "nodeCredentialType": "httpHeaderAuth",
    "sendBody": true,
    "bodyParameters": {
      "parameters": [
        { "name": "key", "value": "={{ $json.value }}" }
      ]
    },
    "options": {
      "timeout": 10000,
      "retry": { "maxRetries": 3, "retryInterval": 1000 }
    }
  }
}

Function Node (JavaScript)

{
  "type": "n8n-nodes-base.function",
  "parameters": {
    "functionCode": "const results = [];\nfor (const item of items) {\n  const data = item.json;\n  results.push({\n    json: {\n      name: data.name.toUpperCase(),\n      processed_at: new Date().toISOString()\n    }\n  });\n}\nreturn results;"
  }
}

IF Node (Kosul)

{
  "type": "n8n-nodes-base.if",
  "parameters": {
    "conditions": {
      "string": [
        {
          "value1": "={{ $json.status }}",
          "operation": "equal",
          "value2": "success"
        }
      ]
    }
  }
}

Switch Node

{
  "type": "n8n-nodes-base.switch",
  "parameters": {
    "dataType": "string",
    "value1": "={{ $json.priority }}",
    "rules": {
      "rules": [
        { "value2": "critical", "output": 0 },
        { "value2": "high", "output": 1 },
        { "value2": "low", "output": 2 }
      ]
    }
  }
}

Merge Node

{
  "type": "n8n-nodes-base.merge",
  "parameters": {
    "mode": "mergeByKey",
    "propertyName1": "id",
    "propertyName2": "userId"
  }
}

Yaygin Node'lar

| Node | Amac | Ornek |

|------|------|-------|

| HTTP Request | API cagir | REST endpoint |

| Function | Kod calistir | Data transform |

| IF/Switch | Dallanma | Kosula gore yonlendir |

| Set | Data ata | Field ekle/degistir |

| Merge | Birlestir | Iki kaynak birlestir |

| Split In Batches | Parcala | Rate limiting |

| Wait | Bekle | Delay/approval |

| Error Trigger | Hata yakala | Hata notification |

| Slack | Mesaj gonder | Team bildirim |

| Gmail | Email gonder | Notification |

| Postgres/MySQL | DB islem | CRUD |

| Redis | Cache | Key-value store |

API Entegrasyonu

Credential Yonetimi

n8n UI > Settings > Credentials > New Credential
Tipler: API Key, OAuth2, Basic Auth, Header Auth

// Workflow'da kullanim
"authentication": "predefinedCredentialType",
"nodeCredentialType": "slackApi"

REST API Cagirma

{
  "type": "n8n-nodes-base.httpRequest",
  "parameters": {
    "url": "https://api.github.com/repos/{{ $json.owner }}/{{ $json.repo }}/pulls",
    "method": "GET",
    "authentication": "predefinedCredentialType",
    "nodeCredentialType": "githubApi",
    "options": {
      "response": { "response": { "fullResponse": true } }
    }
  }
}

Pagination Handling

// Function node: paginated API cagirma
const allResults = [];
let page = 1;
let hasMore = true;

while (hasMore) {
  const response = await this.helpers.httpRequest({
    url: `https://api.example.com/items?page=${page}&per_page=100`,
    method: 'GET',
  });
  allResults.push(...response.data);
  hasMore = response.data.length === 100;
  page++;
}

return allResults.map(item => ({ json: item }));

Error Handling

Try/Catch Pattern

{
  "nodes": [
    {
      "name": "Try",
      "type": "n8n-nodes-base.httpRequest",
      "continueOnFail": true,
      "parameters": { "url": "https://api.example.com/data" }
    },
    {
      "name": "Check Error",
      "type": "n8n-nodes-base.if",
      "parameters": {
        "conditions": {
          "boolean": [
            { "value1": "={{ $json.error }}", "value2": true }
          ]
        }
      }
    },
    {
      "name": "Error Handler",
      "type": "n8n-nodes-base.slack",
      "parameters": {
        "channel": "#alerts",
        "text": "Workflow error: {{ $json.error.message }}"
      }
    }
  ]
}

Error Workflow

n8n UI > Workflow Settings > Error Workflow
Global error handler: her basarisiz workflow bu workflow'u tetikler

Error workflow node'lari:
1. Error Trigger → hata bilgisini al
2. Function → hatayi formatla
3. Slack/Email → bildirim gonder
4. HTTP Request → incident sisteme kaydet

Retry Stratejisi

{
  "parameters": {
    "options": {
      "retry": {
        "maxRetries": 3,
        "retryInterval": 2000,
        "retryOnTimeout": true
      }
    }
  }
}

Workflow Debugging

Execution Log

n8n.list_executions({
  workflow_id: "123",
  status: "error",
  limit: 10
})

Execution Detayi

n8n.get_execution({
  execution_id: "456",
  include_data: true
})
// Her node'un input/output data'sini gosterir

Debug Teknikleri

1. Manual execution: UI'da "Execute Workflow" tikla
2. Node output: Her node'un ciktisini incele
3. Expression editor: {{ $json.field }} ifadelerini test et
4. Console log: Function node'da console.log() kullan
5. Test webhook: Postman/curl ile webhook'u test et
6. Pin data: Test data'yi node'a sabitle (development icin)

CI/CD Entegrasyonu

GitHub Actions ile n8n

# .github/workflows/deploy.yml
name: Deploy
on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Deploy
        run: ./deploy.sh
      - name: Notify n8n
        run: |
          curl -X POST https://n8n.example.com/webhook/deploy-complete \
            -H "Content-Type: application/json" \
            -H "Authorization: Bearer ${{ secrets.N8N_WEBHOOK_TOKEN }}" \
            -d '{
              "repo": "${{ github.repository }}",
              "branch": "${{ github.ref_name }}",
              "commit": "${{ github.sha }}",
              "actor": "${{ github.actor }}"
            }'

Claude Code'dan Workflow Tetikleme

# Webhook ile tetikle
curl -X POST http://localhost:5678/webhook/my-workflow \
  -H "Content-Type: application/json" \
  -d '{"action": "deploy", "version": "v1.2.3"}'

# API ile tetikle
curl -X POST http://localhost:5678/api/v1/workflows/123/execute \
  -H "X-N8N-API-KEY: <api-key>" \
  -H "Content-Type: application/json" \
  -d '{"data": {"key": "value"}}'

Workflow Export/Import (GitOps)

# Export (backup)
curl -s http://localhost:5678/api/v1/workflows \
  -H "X-N8N-API-KEY: <key>" | jq '.' > workflows-backup.json

# Import
curl -X POST http://localhost:5678/api/v1/workflows \
  -H "X-N8N-API-KEY: <key>" \
  -H "Content-Type: application/json" \
  -d @workflow.json

Ornek Workflow'lar

1. Deploy Notification

Trigger: Webhook (GitHub Actions'dan)
  → Function: Deploy bilgisini formatla
  → Slack: #deployments kanalina bildir
  → IF: Production deploy mi?
    → YES: Telegram'a da bildir
    → NO: Sadece Slack
{
  "name": "Deploy Notification",
  "nodes": [
    {
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "parameters": { "path": "deploy-notify", "httpMethod": "POST" }
    },
    {
      "name": "Format",
      "type": "n8n-nodes-base.function",
      "parameters": {
        "functionCode": "const d = items[0].json;\nreturn [{ json: { text: `Deploy: ${d.repo} (${d.branch}) by ${d.actor}\\nCommit: ${d.commit.substring(0,7)}` } }];"
      }
    },
    {
      "name": "Slack",
      "type": "n8n-nodes-base.slack",
      "parameters": { "channel": "#deployments", "text": "={{ $json.text }}" }
    }
  ]
}

2. Issue Triage

Trigger: GitHub (issue opened)
  → Function: Label belirle (title/body analizi)
  → GitHub: Label ata
  → IF: Bug mu?
    → YES: Slack #bugs kanalina bildir, P1 ise mention
    → NO: Backlog'a ekle

3. PR Review Reminder

Trigger: Cron (her gun 10:00)
  → GitHub: Acik PR'lari listele
  → IF: 24+ saat review bekleyen var mi?
    → YES: Slack'te reviewer'a mention at
    → NO: Bos geç

4. Daily Standup Collector

Trigger: Cron (her gun 09:00)
  → Slack: #standup kanalina soru gonder
  → Wait: 2 saat
  → Slack: Cevaplari topla
  → Function: Ozet olustur
  → Notion: Standup sayfasina kaydet

5. Error Alert Pipeline

Trigger: Webhook (app error handler'dan)
  → Function: Error dedup (son 5dk ayni hata var mi)
  → IF: Yeni hata mi?
    → YES:
      → Switch (severity):
        → Critical: PagerDuty + Slack + Telegram
        → High: Slack + Email
        → Low: Slack only
    → NO: Counter artir, sessiz kal

Best Practices

Workflow Tasarimi

| Kural | Aciklama |

|-------|----------|

| Tek sorumluluk | Her workflow tek bir is yapsin |

| Error handling | Her dis API call'da continueOnFail |

| Idempotent | Ayni input, ayni output (retry-safe) |

| Timeout | HTTP request'lere timeout koy |

| Rate limit | Split In Batches ile API limit'e uy |

| Credential | Hardcode yapma, n8n credential store kullan |

| Naming | Node isimlerini aciklayici yap |

| Testing | Pin data ile test et, sonra production'a al |

Guvenlik

1. Webhook'lara authentication ekle (header auth veya HMAC)
2. Credential'lari n8n credential store'da tut
3. Sensitive data'yi log'lama
4. Network: n8n'i public internet'e ACMA (reverse proxy kullan)
5. API key'leri environment variable'dan al
6. Workflow export'larinda credential'lar OLMAZ (import sonrasi set et)

Performans

1. Batch processing: Split In Batches node kullan
2. Parallel execution: baska node'lara dallan
3. Caching: Redis node ile sik kullanilan data'yi cache'le
4. Pagination: Buyuk data set'lerde sayfalama yap
5. Timeout: Uzun workflow'lara timeout koy (workflow settings)
6. Cleanup: Eski execution log'larini sil (Settings > Pruning)

Anti-Patterns

| Anti-Pattern | Dogru Yol |

|-------------|-----------|

| Monolithic workflow | Kucuk, tek sorumluluk workflow'lar |

| No error handling | continueOnFail + error workflow |

| Hardcoded credentials | n8n credential store |

| No retry | Retry config ekle |

| Polling every second | Webhook kullan veya 5min+ interval |

| No dedup | Duplicate event kontrolu ekle |

| No monitoring | Execution log + error alert workflow |

Other skills for the same job

different authors, same section of the catalogue
Azure Kubernetes Automatic Readiness
by microsoft
vendor ×3

Assess Kubernetes workloads and cluster configuration for AKS Automatic compatibility. Identifies incompatibilities, generates fixes, and guides migration from AKS Standard to AKS Automatic. WHEN: migrate to AKS Automatic, check AKS Automatic readiness, validate manifests for Automatic, assess cluster for Automatic compatibility, fix deployment for Automatic compatibility, identify AKS Automatic migration blockers, is my cluster ready for AKS Automatic.

13k tokens
Capacity
by microsoft
vendor ×3

Discovers available Azure OpenAI model capacity across regions and projects. Analyzes quota limits, compares availability, and recommends optimal deployment locations based on capacity requirements. USE FOR: find capacity, check quota, where can I deploy, capacity discovery, best region for capacity, multi-project capacity search, quota analysis, model availability, region comparison, check TPM availability. DO NOT USE FOR: actual deployment (hand off to preset or customize after discovery), quota increase requests (direct user to Azure Portal), listing existing deployments.

6k tokens scripts
Customize
by microsoft
vendor ×3

Interactive guided deployment flow for Azure OpenAI models with full customization control. Step-by-step selection of model version, SKU (GlobalStandard/Standard/ProvisionedManaged), capacity, RAI policy (content filter), and advanced options (dynamic quota, priority processing, spillover). USE FOR: custom deployment, customize model deployment, choose version, select SKU, set capacity, configure content filter, RAI policy, deployment options, detailed deployment, advanced deployment, PTU deployment, provisioned throughput. DO NOT USE FOR: quick deployment to optimal region (use preset).

8k tokens
Deploy Model
by microsoft
vendor ×3

Unified Azure OpenAI model deployment skill with intelligent intent-based routing. Handles quick preset deployments, fully customized deployments (version/SKU/capacity/RAI policy), and capacity discovery across regions and projects. USE FOR: deploy model, deploy gpt, create deployment, model deployment, deploy openai model, set up model, provision model, find capacity, check model availability, where can I deploy, best region for model, capacity analysis. DO NOT USE FOR: listing existing deployments (use foundry_models_deployments_list MCP tool), deleting deployments, agent creation (use agent/create), project creation (use project/create).

26k tokens scripts
Preset
by microsoft
vendor ×3

Intelligently deploys Azure OpenAI models to optimal regions by analyzing capacity across all available regions. Automatically checks current region first and shows alternatives if needed. USE FOR: quick deployment, optimal region, best region, automatic region selection, fast setup, multi-region capacity check, high availability deployment, deploy to best location. DO NOT USE FOR: custom SKU selection (use customize), specific version selection (use customize), custom capacity configuration (use customize), PTU deployments (use customize).

9k tokens
Lamindb
by christophacham
×3

This skill should be used when working with LaminDB, an open-source data framework for biology that makes data queryable, traceable, reproducible, and FAIR. Use when managing biological datasets (scRNA-seq, spatial, flow cytometry, etc.), tracking computational workflows, curating and validating data with biological ontologies, building data lakehouses, or ensuring data lineage and reproducibility in biological research. Covers data management, annotation, ontologies (genes, cell types, diseases, tissues), schema validation, integrations with workflow managers (Nextflow, Snakemake) and MLOps platforms (W&B, MLflow), and deployment strategies.

22k tokens
Latchbio Integration
by christophacham
×3

Latch platform for bioinformatics workflows. Build pipelines with Latch SDK, @workflow/@task decorators, deploy serverless workflows, LatchFile/LatchDir, Nextflow/Snakemake integration.

12k tokens
Modal
by christophacham
×3

Run Python code in the cloud with serverless containers, GPUs, and autoscaling. Use when deploying ML models, running batch processing jobs, scheduling compute-intensive tasks, or serving APIs that require GPU acceleration or dynamic scaling.

17k tokens

How to use it

Copy the folder

Take vibeeval/n8n-workflows from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.

Install what it needs

The instructions reference npm, docker. Without those the skill loads but fails at the first command.