CommunityRedacción y edicióngithub.com

Habilidad de Flujo de Trabajo n8n

Habilidades probadas en producción para Claude Code: colócalas en .claude/skills/ y listo

¿Qué es Habilidad de Flujo de Trabajo n8n?

Esta habilidad permite a los agentes de IA (como Claude Code) construir, desplegar y gestionar flujos de trabajo de n8n completamente a través de la API, utilizando fragmentos de nodos preconstruidos y patrones probados en batalla. Es útil para desarrolladores y equipos de automatización que desean crear y mantener integraciones complejas sin necesidad de usar la interfaz web de n8n, ahorrando tiempo y reduciendo errores. La habilidad es compatible con Claude Code (a través del directorio .claude/skills/) y potencialmente con otras herramientas de agente que usen SKILL.md. Funciona proporcionando una guía detallada sobre configuración (URL de instancia, clave API, ID del proyecto), formato de conexiones entre nodos, estructura JSON del flujo de trabajo, y endpoints API clave (crear, obtener, actualizar, activar/desactivar). También incluye reglas críticas como 'GET antes de PUT', verificación tras la actualización, preferencia por nodos nativos, y manejo de expresiones. La habilidad referencia una biblioteca de fragmentos de nodos en ./references/nodes/, que deben ser copiados y personalizados en lugar de escribir desde cero, y se recomienda guardar nuevos tipos de nodos en la biblioteca para reutilización futura.

Compatible con✓Claude Code✓Codex CLI~Cursor
npx skills add AIforOperations/claude-skills

Installed? Explore more Redacción y edición skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace Habilidad de Flujo de Trabajo n8n?

Construye, despliega y gestiona flujos de trabajo de n8n completamente a través de la API usando fragmentos de nodos preconstruidos y patrones probados en batalla.

Configuración

Antes del primer uso, completa los detalles de tu instancia a continuación. Obtén tu clave API desde n8n Configuración > API.

  • URL: https://TU_INSTANCIA.app.n8n.cloud
  • Clave API: TU_CLAVE_API
  • ID del Proyecto: TU_ID_DE_PROYECTO (opcional, para instancias con múltiples proyectos)

Credenciales

Asigna aquí tus alias de credenciales. Obtén los IDs desde GET /api/v1/credentials.

AliasTipo de CredencialIDNombre
gmailgmailOAuth2
sheetsgoogleSheetsOAuth2Api
slackslackOAuth2Api
openaiopenAiApi
anthropicanthropicApi
telegramtelegramApi
notionnotionApi

Añade filas según sea necesario. El campo name debe coincidir exactamente con el nombre que le diste a la credencial en tu instancia de n8n (Configuración > Credenciales). Los fragmentos de nodos en ./references/nodes/ usan credenciales placeholder — Claude reemplaza tus IDs de esta tabla al construir flujos de trabajo.


Inicio Rápido: Nuevo Flujo de Trabajo

  1. Revisa ./references/nodes/ en busca de fragmentos de nodos preconstruidos. Cópialos, renómbralos y establece posiciones.
  2. Construye el JSON (arreglo de nodos + objeto de conexiones).
  3. Escribe en /tmp/<nombre>.json.
  4. Ejecuta: bash ./references/deploy.sh /tmp/<nombre>.json
  5. Listo. El script maneja POST, transferencia de proyecto, verificación y actualización de índice.

Formato de Conexión

"Nombre de Origen": { "main": [[{"node": "Destino", "type": "main", "index": 0}]] }
  • Ramificación (una fuente, múltiples destinos): "main": [[{"node": "A", ...}, {"node": "B", ...}]]
  • Combinar entradas: la fuente A se conecta con "index": 0, la fuente B con "index": 1
  • Ramificación IF: "main": [ [destinos verdaderos], [destinos falsos] ]
  • Subnodo de IA: "ai_languageModel": [[{"node": "Nombre del Modelo", "type": "ai_languageModel", "index": 0}]]
  • Subnodo de herramienta de IA: "ai_tool": [[{"node": "Nombre de la Herramienta", "type": "ai_tool", "index": 0}]]

Estructura JSON del Flujo de Trabajo

{
  "name": "Nombre del Flujo de Trabajo",
  "nodes": [...],
  "connections": {...},
  "settings": { "executionOrder": "v1", "callerPolicy": "any" }
}
  • El cuerpo del POST NO debe incluir el campo active (solo lectura, usa PATCH para activar)
  • Elimina todas las claves de configuración excepto: executionOrder, callerPolicy, saveDataSuccessExecution, errorWorkflow (si existe)
  • Claves que DEBEN eliminarse antes de PUT: binaryMode, availableInMCP, timeSavedMode

Puntos Finales de la API

POST   /api/v1/workflows              — crear
GET    /api/v1/workflows/{id}         — obtener (SIEMPRE antes de PUT)
PUT    /api/v1/workflows/{id}         — actualizar
PATCH  /api/v1/workflows/{id}         — activar/desactivar: { "active": true }
PUT    /api/v1/workflows/{id}/transfer — mover a proyecto
GET    /api/v1/executions/{id}?includeData=true — obtener datos de ejecución
GET    /api/v1/credentials            — listar todas las credenciales

Reglas

  • GET antes de PUT — nunca modifiques desde caché, siempre obtén la versión actual primero
  • Verificar después de PUT — obtén nuevamente y confirma que los cambios se aplicaron
  • Las conexiones usan NOMBRES de nodos, nunca UUIDs
  • Prefiere nodos nativos de la plataforma sobre HTTP Request (muestra los logotipos de la plataforma en la interfaz)
  • Nodos de código con caracteres !: escribe JS en /tmp/*.js primero, luego léelo de vuelta (el escape de cadenas en Python convierte ! en \!)
  • includeData=true en las obtenciones de ejecución (sin ello, data.resultData.runData es nulo)
  • Valores permitidos para callerPolicy: any, none, workflowsFromAList, workflowsFromSameOwner

Sintaxis de Expresiones (cuerpo de HTTP Request)

  • FUNCIONA: ={{ ({ key: value }) }} — objeto entre paréntesis, sin JSON.stringify
  • ROTO: ={{ JSON.stringify({...}) }} — causa "sintaxis inválida"
  • ROTO: ={{ }} incrustado dentro de un cuerpo JSON estático — no se evalúa
  • Referencia entre nodos: $item(0).$node["NombreDelNodo"].json.campo

Biblioteca de Nodos

Los fragmentos de nodos preconstruidos se encuentran en ./references/nodes/. Cada archivo es un objeto JSON de nodo listo para usar.

Flujo de trabajo obligatorio:

  1. Antes de construir cualquier nodo, busca con glob ./references/nodes/*.json para ver qué está disponible.
  2. Si el tipo de nodo existe en la biblioteca, copia su JSON y personaliza (nombre, posición, parámetros). NO lo escribas desde cero.
  3. Si el tipo de nodo NO existe en la biblioteca, constrúyelo desde cero.
  4. Después de desplegar el flujo de trabajo, guarda cualquier nuevo tipo de nodo que hayas construido en la biblioteca como ./references/nodes/<nombre-del-nodo>.json.

Referencias Detalladas (cargar solo cuando sea necesario)

  • ./references/patterns.md — patrones de reintento, estado persistente, dificultades con expresiones
  • ./references/rules.md — reglas de PUT/POST, lista blanca de configuraciones, convenciones de nomenclatura
  • ./references/node-types.md — referencia de parámetros para tipos de nodos comunes

Skills relacionados