FrancodesystemsFran<code>systems
n8n community node · MIT

Nodo n8n para Holded con la API v2 completa.

42 recursos y 323 operaciones de la API v2 oficial expuestas como nodo nativo de n8n. Open source bajo MIT, publicado en npm con provenance attestation firmada por GitHub Actions y mantenido por Francodesystems.

Qué es

n8n + Holded sin pegamento manual

n8n es el motor de workflow open source más usado para conectar SaaS sin escribir código completo. Holded es el ERP español más extendido entre pymes. Lo que faltaba era un nodo n8n que cubriera de verdad la API v2 — no las 10 operaciones más comunes, sino las 323. Eso es lo que es este paquete.

El nodo se genera desde el catálogo oficial del portal Holded developers, así que cuando Holded amplía v2, regeneramos y publicamos una nueva versión. El recursoContact lleva trabajo manual extra (UX pulida para los casos más usados).

Cobertura

42 recursos · 323 operaciones

Todo lo que la API v2 oficial expone, agrupado por área funcional. Cada recurso lleva sus operaciones CRUD habituales más las específicas que la API ofrece (bulk, anular, firmar, etc.).

Ventas

  • Invoice
  • Sales Order
  • Sales Receipt
  • Estimate
  • Proforma
  • Credit Note
  • Sales Credit Note
  • Delivery Note
  • Recurring Invoice
  • Billing Forecast
  • Numbering Series

Compras

  • Purchase
  • Purchase Order
  • Purchase Delivery Note

Catálogo

  • Product
  • Service
  • Price List
  • Warehouse
  • Production Order

CRM

  • Contact
  • Contact Group
  • Opportunity
  • Funnel
  • Tag
  • Event
  • Booking

Contabilidad

  • Accounting
  • Payment
  • Payment Method
  • Bank Account
  • Expense Account
  • Tax
  • Remittance

Proyectos y equipo

  • Project
  • Project Time Tracking
  • Task
  • Employee
  • Employee Time Tracking
  • Payroll Record

Otros

  • Sales Channel
  • Inbox
  • Document
Ejemplos

Workflows reales

Pinceladas de lo que la gente monta con el nodo. No son tutoriales — son recordatorios de qué casos cubre el paquete.

Shopify → Holded · factura por pedido

Shopify Trigger (orders/create) → Holded (Invoice / Create)

Genera la factura correspondiente en Holded en cuanto Shopify confirma un pedido, con cliente vinculado y serie correcta.

Stripe → Holded · contacto al cobrar

Stripe Trigger (charge.succeeded) → Holded (Contact / Update, tag: paid)

Marca el contacto como cliente activo cuando Stripe confirma el cobro, sin esperar a sync nocturno.

Recordatorio diario de leads

Schedule (daily) → Holded (Contact / Get Many, filter: lead) → Slack

Cada mañana llega al canal de ventas el listado de leads creados en Holded el día anterior.

HubSpot deal-won → Holded contact + proforma

HubSpot Trigger (deal.stage = closed-won) → Holded (Contact / Create or Update) → Holded (Proforma / Create)

Convierte una oportunidad ganada en CRM en proforma generada y enviable, sin tocar Holded a mano.

Detalles técnicos

Lo que cuida el paquete por dentro

API v2 oficial

URL base consolidada (/api/v2/<resource>), Bearer token con scopes, paginación cursor con has_more, errores estructurados RFC 7807.

Cobertura completa

42 recursos y 323 operaciones generadas desde el catálogo oficial del portal Holded developers. Cuando Holded amplía v2, regeneramos.

Contact hand-tuned

El recurso Contact lleva UX cuidado a mano: address anidado, defaults collection, custom fields como JSON y subida/descarga de adjuntos multipart.

npm provenance

Cada release se publica con attestation firmada por GitHub Actions vía OIDC. Cualquiera puede verificar criptográficamente que el paquete viene de este repo y commit exacto.

Compatible con n8n 1.0+

Node.js 20.15 o superior. Soporta tanto self-hosted como n8n Cloud.

MIT

Sin condiciones raras: úsalo, fórkalo, modifícalo. Solo te pedimos mantener la atribución.

FAQ

Preguntas frecuentes

¿Cómo lo instalo en mi n8n?

Settings → Community Nodes → Install → escribes @francodesystems-npm/n8n-nodes-holded y le das. Para n8n self-hosted en Docker hay que asegurarse de que la variable N8N_COMMUNITY_PACKAGES_ENABLED esté a true. En n8n Cloud funciona directamente.

¿Cubre todos los endpoints de la API v2?

Sí. 42 recursos y 323 operaciones, regenerados del catálogo oficial. El recurso Contact lleva trabajo manual extra para UX (address anidado, custom fields como JSON, adjuntos multipart). El resto se expone con sus path params, query filters y body fields como inputs nativos de n8n.

¿Y la API v1?

Hasta v0.3.x el paquete soportaba v1 y v2 en paralelo. Desde v0.4.0 (junio 2026) nos enfocamos en v2 solo — Holded recomienda v2 para todo desarrollo nuevo y la v1 queda archivada. Si necesitas v1 puntualmente, pin a 0.3.8 o abre un issue.

¿Es oficial de Holded?

No. Es una integración community no oficial mantenida por Francodesystems. "Holded" y su logo son marcas de Holded Technologies S.L. y se usan bajo nominative fair use para identificar el servicio con el que integra el nodo. No estamos afiliados ni patrocinados por Holded — solo somos consultora especializada en su API.

¿Puedo contribuir?

Sí, por favor. Abre issues, manda PRs o sugiere recursos que falten o que tengan UX mejorable. La forma rápida de empezar es probar el nodo con tu caso real y abrir un issue con lo que no encaja.

¿Y si necesito algo más complejo que un workflow n8n?

Para integraciones serias (procesos críticos con SLAs, idempotencia bajo concurrencia, volúmenes altos, lógica fiscal complicada) recomendamos construir el servicio dedicado fuera de n8n con la API directamente. n8n es excelente para automatizar workflows pero no es la herramienta correcta para reemplazar un servicio backend. Si dudas qué encaja, lo hablamos sin compromiso.

¿Habrá nodo verificado en n8n.io?

En proceso. La verified community node submission requiere al menos un release con provenance (ya cumplido en v0.4.0) más la review del Creator Portal. Cuando esté aprobado aparecerá con badge "Verified" en el browser de community nodes de n8n.io.

¿Necesitas algo más que un nodo n8n?

Para procesos críticos (volumen alto, idempotencia bajo concurrencia, lógica fiscal seria, SLAs) el nodo n8n es un buen punto de partida pero a menudo conviene un servicio dedicado contra la API. Lo construimos, lo mantenemos, y si encaja, lo liberamos también aquí.