Tutorial · n8n · Finanzas y Control

Consolidación Multi-Filial con n8n

Cuando el grupo tiene filiales con ERPs distintos (SAP, Navision, Holded), n8n extrae los balances de cada sistema en paralelo, normaliza el plan contable con un mapa de equivalencias y vuelca los datos consolidados al data warehouse central — sin exportaciones manuales de Excel.

• Mensual / Trimestral n8n Self-hosted ~4 horas de configuración 4 pasos Finanzas y Control Avanzado
← Volver a todos los tutoriales
Visión General

¿Qué hace este flujo y qué problema resuelve?

El problema: Los grupos empresariales que adquieren otras compañías suelen heredar diferentes sistemas: la matriz usa SAP, la filial A usa Navision, la filial B usa Holded. Consolidar las cuentas a final de mes es una pesadilla manual de exportaciones de Excel, mapeo de cuentas con VLOOKUP y cuadre de operaciones vinculadas que consume días del equipo de controlling.

La solución: n8n actúa como middleware (bus de integración). Extrae los balances de comprobación de las APIs o bases de datos de cada filial de forma paralela y automática, normaliza el plan contable mediante un nodo de código que aplica el mapa de equivalencias de la matriz, y vuelca los datos limpios en el sistema de consolidación o data warehouse central.

Cron
Cierre mensual
ERPs filiales
SAP / Navision / Holded
Mapeo ETL
Normalización
Data Warehouse
Balance consolidado

Impacto esperado: El cierre contable mensual pasa de 3 días a 2 horas. El CFO tiene el balance consolidado disponible el mismo día del cierre sin intervención manual del equipo de controlling.

¿Quién hace qué?

Directivo (Finanzas): Proporciona el mapa de equivalencias del plan general contable (ej. la cuenta 4300 de la filial equivale a la 4300000 de la matriz) y las reglas de eliminación de operaciones intercompany.

Equipo Técnico (IT/Data): Desarrolla las conexiones a múltiples bases de datos heterogéneas, programa la lógica de mapeo de cuentas en JavaScript y gestiona el manejo de errores con Error Triggers.
⚠ Complejidad técnica elevada: Este flujo requiere conocimientos de bases de datos y APIs de ERP. Si tu empresa no tiene equipo técnico interno, considera contratar un consultor n8n especializado en integraciones ERP antes de implementarlo en producción.

Contexto

Cuándo usar este flujo

Úsalo cuando… No lo uses cuando…
  • Grupo con 2 o más filiales con ERPs distintos
  • Cierre contable mensual que consume más de 1 día de trabajo manual
  • Necesidad de reporting financiero consolidado en tiempo real o near-real-time
  • Operaciones intercompany frecuentes que hay que eliminar en la consolidación
  • Empresa con una sola entidad jurídica y un único ERP
  • Cuando el ERP ya incluye módulo de consolidación nativo (ej. SAP Group Reporting)
  • Si el volumen de transacciones es muy bajo (menos de 500 apuntes/mes por filial)

Preparación

Prerrequisitos

Antes de empezar, asegúrate de tener acceso a las siguientes herramientas y credenciales:

HerramientaRequisitoUso en el flujo
n8nInstancia self-hosted (recomendado por volumen de datos)Orquestador central del flujo ETL
APIs / BBDD de cada ERPCredenciales de acceso de solo lectura a SAP, Navision, Holded u otrosExtracción de balances de comprobación de cada filial
Mapa de equivalencias contablesTabla Excel o JSON con la equivalencia entre cuentas de filiales y plan de la matrizNormalización del plan contable en el nodo ETL
Data Warehouse / BIBigQuery, Snowflake, PostgreSQL o Power BI con API de escritura habilitadaDestino del balance consolidado normalizado
Slack / EmailCanal o dirección para alertas automáticasNotificación al CFO cuando el proceso finaliza o hay errores

Paso 01

Mapeo del plan contable

Antes de extraer ningún dato, el flujo carga el mapa de equivalencias contables que el equipo de finanzas ha preparado. Este mapa es la pieza clave que permite traducir las cuentas de cada filial al plan de la matriz.

  • 1Prepara el mapa en Google Sheets: Crea una hoja con tres columnas: filial_id, cuenta_filial y cuenta_matriz. El equipo de finanzas es responsable de mantener este archivo actualizado.
  • 2Carga el mapa en n8n: Usa el nodo “Google Sheets” con la operación “Get All Rows” para cargar el mapa al inicio del flujo. Convierte el array en un objeto clave-valor con un nodo “Code” para facilitar el lookup posterior.
Consejo: Guarda el mapa de equivalencias en Google Sheets en lugar de hardcodearlo en el flujo. Así el equipo de finanzas puede actualizarlo sin necesidad de tocar n8n.

Paso 02

Extracción paralela de balances

n8n extrae los balances de comprobación de todas las filiales en paralelo usando el nodo “Split In Batches” combinado con múltiples nodos de conexión a ERP.

  • 1Define la lista de filiales: Crea un nodo “Set” con un array JSON que contenga los datos de conexión de cada filial (ID, tipo de ERP, credenciales). Esto permite añadir nuevas filiales sin modificar la lógica del flujo.
  • 2Extrae en paralelo: Usa el nodo “Split In Batches” con el parámetro batchSize: 1 y activa la opción “Execute in parallel” para que n8n consulte todas las filiales simultáneamente.
  • 3Conecta cada ERP: Para cada tipo de ERP, usa el nodo correspondiente: “Postgres” o “MySQL” para bases de datos directas, “HTTP Request” para APIs REST, o el nodo nativo de SAP si está disponible en tu instancia.

Paso 03

Normalización de datos (ETL)

Con los balances de todas las filiales extraídos, el nodo “Code” aplica el mapa de equivalencias para traducir cada cuenta al plan de la matriz y genera el balance consolidado normalizado.

Código JavaScript — Nodo Code: Normalización contable
// Nodo Code: Normalizacion Contable const balances = $input.all(); const map = $items("Get Accounting Map")[0].json; let consolidated = []; for (let item of balances) { const originalAccount = item.json.account_id; const mappedAccount = map[originalAccount] || "999999"; consolidated.push({ json: { company_id: item.json.company_id, master_account: mappedAccount, original_account: originalAccount, debit: item.json.debit || 0, credit: item.json.credit || 0, period: item.json.period, mapped: mappedAccount !== "999999" } }); } return consolidated;
⚠ Cuentas sin equivalencia: Las cuentas asignadas a “999999” indican que el mapa está incompleto. Añade un nodo “IF” para filtrar estas cuentas y enviar una alerta al equipo de finanzas con la lista de cuentas no mapeadas.

Paso 04

Volcado al data warehouse y alertas

Con el balance consolidado normalizado, n8n lo vuelca al data warehouse central y notifica al CFO que el proceso ha finalizado correctamente.

  • 1Vuelca al data warehouse: Usa el nodo “Postgres”, “BigQuery” o “MySQL” con la operación “Insert” para escribir todos los registros normalizados. Usa la opción “Insert or Update” (upsert) para evitar duplicados en re-ejecuciones.
  • 2Notifica al CFO: Añade un nodo “Slack” o “Gmail” con un resumen: número de registros procesados por filial, cuentas no mapeadas y tiempo total de ejecución.
  • 3Configura el Error Trigger: Añade un nodo “Error Trigger” para que el equipo técnico reciba una alerta inmediata si alguna conexión a ERP falla durante el proceso.

Resultado

Output esperado del flujo

Cuando el flujo se ejecuta correctamente en el cierre mensual, produce los siguientes datos y artefactos:

Variables y artefactos generados
Variable / ArtefactoTipoDescripciónDestino
balance_consolidado[]Array JSONRegistros contables de todas las filiales normalizados al plan de la matrizData Warehouse
cuentas_no_mapeadas[]Array JSONLista de cuentas sin equivalencia en el mapa (asignadas a 999999)Alerta email/Slack a Finanzas
resumen_ejecucionJSONRegistros procesados por filial, errores y tiempo de ejecuciónNotificación CFO
tabla_consolidacionTabla DBTabla actualizada en el data warehouse lista para reporting en Power BI / LookerData Warehouse
Señal de éxito: El CFO recibe la notificación con el resumen de consolidación antes de las 9:00 del día siguiente al cierre, y el dashboard de Power BI ya muestra los datos actualizados sin ninguna intervención manual.


Errores comunes

Problemas frecuentes y cómo resolverlos

Estos son los errores más habituales al configurar este flujo por primera vez, con su causa y solución:

  • 1Los formatos de fecha son inconsistentes entre filiales: Cada ERP puede usar DD/MM/YYYY, MM/DD/YYYY o YYYY-MM-DD. Solución: en el nodo de normalización, detecta el formato de cada filial con una expresión regular y convíertelo a ISO 8601 antes de cualquier cálculo.
  • 2Los tipos de cambio no se actualizan y las conversiones son incorrectas: Si usas tipos de cambio estáticos en el código, los informes acumulan errores. Solución: añade un nodo HTTP Request al inicio del flujo que consulte la API del BCE (api.exchangeratesapi.io) para obtener los tipos del día.
  • 3El Data Warehouse rechaza filas con valores nulos: Algunas filiales no reportan todas las cuentas del plan contable. Añade una validación en el nodo Code que rellene los nulos con 0 y registre en un log qué cuentas faltaban para notificar al controller de la filial.
  • 4El flujo tarda más de 30 minutos y n8n lo cancela por timeout: Si hay más de 10 filiales con grandes volúmenes de datos, divide el flujo en subflujos paralelos usando el nodo Execute Workflow. Cada subflujo procesa una filial y el flujo principal consolida los resultados.

Variantes

Adaptaciones del flujo para otros contextos

Este flujo se puede adaptar fácilmente a otros casos de uso cambiando el trigger, la fuente de datos o el destino:

  • AVariante con alerta de desviación presupuestaria: Añade un paso que compare el consolidado con el presupuesto anual. Si alguna línea de P&L supera el 10% de desviación, envía una alerta automática al CFO con el detalle de la desviación y la filial responsable.
  • BVariante con informe ejecutivo en PDF: Añade un paso final que genere un PDF del consolidado usando la API de Google Docs o una plantilla de Canva. El PDF se envía automáticamente al Comité de Dirección cada lunes a las 08:00.
  • CVariante con forecasting automático: Usa los datos históricos del Data Warehouse para generar una proyección del cierre del trimestre con un modelo de regresión lineal en el nodo Code. El CFO recibe el consolidado real más la proyección en el mismo informe.

Siguiente paso

¿Qué hacer ahora?