Tutorial · n8n · Director de Operaciones / Calidad

Gestión Automática de Incidencias de Calidad con Proveedores

Flujo que recibe el formulario de incidencia de planta, usa IA para categorizar la gravedad, busca el contacto del proveedor en el ERP y envía automáticamente la reclamación formal con las fotos del defecto y el enlace para el informe 8D.

• Evento / Formulario plantan8n Self-hosted~3 horas de configuración4 pasosOperacionesIntermedio
← Volver a todos los tutoriales

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

Resumen ejecutivo: Este flujo automatiza la gestión inicial de incidencias de calidad relacionadas con proveedores, desde la recepción del aviso en planta hasta la notificación formal al proveedor y la escalada interna cuando procede. El objetivo operativo es reducir el tiempo medio entre detección del defecto y notificación al proveedor de 24-48 horas a menos de 15 minutos, minimizando paradas de línea y liberando recursos del equipo de Calidad para análisis de causa raíz y acciones correctivas.

Problema que resuelve: En empresas manufactureras como MetalForm S.A. o ElectroParts Iberia, una pieza defectuosa en línea obliga al operario a completar un formulario. Hoy ese formulario es revisado manualmente por Calidad, que debe evaluar la gravedad, localizar al proveedor en el ERP, redactar un email 8D y solicitar evidencias. El proceso es lento, depende de disponibilidad humana y es propenso a errores en la comunicación. El flujo reduce latencia, estandariza comunicaciones y garantiza trazabilidad.

Qué hace el flujo, paso a paso (visión rápida):

  • Captura automática del formulario de planta con fotos y metadatos mediante un webhook n8n.
  • Análisis automático de gravedad y clasificación con un modelo de lenguaje (IA) que aplica la matriz de gravedad definida por Dirección.
  • Consulta en el ERP para localizar el proveedor y su contacto contractual.
  • Generación y envío automatizado de la notificación 8D al proveedor, con adjunto seguro para aportar fotos y enlace para subir el informe 8D.
  • Escalado automático al Director de Operaciones si la gravedad lo exige; notificaciones internas en Slack y registro en QMS/ERP.

Resultados esperados: disminución drástica del TTR (time to respond), respuesta consistente y trazable al proveedor, reducción de desperdicio por esperas, mejor rendimiento del equipo de Calidad y cumplimiento de SLA de incidencias. Para empresas ficticias del sector, por ejemplo "AvioParts Iberia", la implantación demuestra reducción del 70% en tiempos de notificación y mejora en el cumplimiento de acciones 8D en el plazo exigido.

Responsabilidades: Dirección (Director de Operaciones/Calidad) define la matriz de gravedad y aprueba plantillas; IT/automatización implementa nodos n8n, conexiones ERP y políticas de seguridad; Calidad valida filtros y contenidos de correo. Recomendación: ejecutar n8n en infraestructura self-hosted para proteger imágenes y datos sensibles.

Consejo: Antes de desplegar el flujo en producción, realice una validación operativa con casos representativos (por ejemplo, incidencias de MetalForm S.A. y ElectroParts Iberia). Configure umbrales de gravedad del modelo de lenguaje y active un modo de revisión humana para las categorías «media» y «alta» durante las primeras semanas. Asegure cifrado de credenciales ERP y límites de tamaño para imágenes adjuntas. Implemente reintentos y alertas de fallo para evitar pérdida de notificaciones y registre todas las acciones para trazabilidad y auditoría.

Cuándo usar este flujo

Contexto

Cuándo usar este flujo

✓ Úsalo cuando…✗ No lo uses cuando…
  • La empresa recibe más de 5 incidencias de calidad con proveedores al mes
  • El proceso actual de notificación al proveedor tarda más de 4 horas
  • Las incidencias críticas a veces no llegan al Director de Operaciones a tiempo
  • La empresa tiene un ERP con datos de contacto de proveedores accesibles via API
  • La empresa ya usa un QMS (Quality Management System) con flujos de incidencias integrados
  • El volumen de incidencias es tan bajo que el proceso manual es suficiente
  • Los proveedores no tienen email o no responden a comunicaciones digitales

Prerrequisitos

Infraestructura mínima requerida:

  • Instancia n8n desplegada en modalidad self-hosted o en cloud privada con acceso a la red donde reside el ERP y el repositorio de archivos. Recomendación: n8n con persistencia y copias de seguridad periódicas.
  • Formulario digital en planta (Typeform, Google Forms o aplicación móvil) que envíe los datos a un webhook n8n. Campos mínimos: referencia pieza, número lote, fotos (al menos 1), descripción operario, ubicación planta, timestamp.
  • Acceso API al ERP con endpoint para búsqueda de proveedor por SKU/part number o por contract ID. Autenticación: API Key, OAuth2 o credentials que el equipo de IT pueda gestionar.
  • Cuenta SMTP o servicio de correo transaccional (por ejemplo Exchange corporativo o SendGrid con API) configurado en n8n para envío de comunicaciones 8D formales.
  • Almacenamiento seguro para archivos (S3 interno, servidor FTP interno o Google Drive corporativo) con políticas de retención y acceso controlado.
  • Canal de notificación interna (Slack, Microsoft Teams o email) para alertas a Calidad y Dirección.

Requisitos de datos y gobernanza:

  • Matriz de gravedad aprobada por Dirección con criterios objetivos (ej.: impacto en seguridad, pérdida de producción por hora, probabilidad de repetición, criticidad del cliente final).
  • Plantillas de email 8D aprobadas legalmente y por Compras; deben incluir texto estándar, condiciones contractuales y enlace seguro para subida de evidencia.
  • Política de privacidad y cláusulas contractuales que permitan compartir fotos y datos de piezas con proveedores.

Credenciales y permisos técnicos:

  • Usuario API ERP con permisos readonly para búsqueda de proveedor y acceso a datos de contrato: [USUARIO_ERP_INCIDENCIAS].
  • Cuenta de servicio para subida de ficheros y generación de enlaces prefirmados: [SERVICE_STORAGE_USER].
  • Clave de servicio para el modelo de IA/LLM: [API_KEY_IA].

Ejemplo de preparación: La compañía ficticia "NexoComponentes" prepara un endpoint ERP '/api/providers?partNumber=[PART]' y da a IT un API key con permisos limitados. Además crea un bucket S3 interno 'incidencias-calidad' con políticas para enlaces expiring en 7 días.


Recepción de la incidencia

Explicación detallada del paso: La recepción inicia cuando un operario en planta detecta un defecto y completa un formulario digital que incluye fotos y metadatos. El flujo debe garantizar que los datos llegan íntegros a n8n y que las imágenes se almacenan en un repositorio seguro sin exponerlas a terceros. El objetivo es capturar la mayor cantidad de contexto durante la primera notificación para evitar consultas adicionales.

Configuración específica de nodos n8n:

  • Webhook (nodo 'Webhook - Incidencias'): Método POST, ruta '/webhook/incidencias-calidad'. Autenticación opcional con header 'X-Plant-Token' = [TOKEN_PLANTA]. Guardar en modo 'Accepts Binary Data' para fotos.
  • Set (nodo 'Set - Normalizar campos'): Mapear campos recibidos a esquema estándar: partNumber = {{$json['part_number']}}, lot = {{$json['lot']}}, description = {{$json['description']}}, plant = {{$json['plant']}}, reportedAt = {{$json['timestamp']}}.
  • Move Binary Data (nodo 'Store Photos S3'): Subir binarios al storage interno S3/FTP. Configuración: Bucket 'incidencias-calidad', Key 'incidencias/[reportedAt]_[partNumber]_[lot].jpg', Presigned URL expiración 7 días.
  • HTTP Request (nodo 'Register en QMS'): POST a [QMS_API_URL]/incidencias con payload JSON que referencia el presignedUrl y metadatos para trazabilidad.
  • IF (nodo 'Es crítica?'): Evaluación preliminar por reglas simples (por ejemplo si description contiene 'rotura' o si plant='Línea 1' y partNumber en lista crítica) para escalado inmediato.

Consideraciones técnicas y de negocio:

  • Validación de integridad: Verificar tamaño y tipo MIME de la foto; rechazar uploads que no cumplan (mínimo 800x600 o 200KB según política).
  • Seguridad: Usar enlace prefirmado en S3 con expiración corta y control de acceso interno. Evitar enviar fotos como adjunto de correo no cifrado.
  • Trazabilidad: Registrar UUID de incidencia retornado por QMS y guardar como referencia para posteriores llamadas al ERP o envíos al proveedor.
  • Retención: Política de conservación de imágenes y datos definida por Calidad y Legal (ej.: 2 años para reclamaciones contractuales).

Ejemplo concreto (datos ficticios):

  • Payload recibido: part_number='MP-2387', lot='L-2026-05', plant='Línea 2 - Valladolid', timestamp='2026-06-12T08:23:00Z', description='Fisura en nervio lateral tras ensamblado', photos=[binary file].
  • Acciones n8n: Webhook captura entrada; Set normaliza; Store Photos S3 devuelve presignedUrl 'https://s3-internal.company/…?X-Amz-Signature=…'; HTTP Request a QMS devuelve incidenceId='INC-2026-00421'; IF detecta no crítica y continúa a análisis IA.
  • Empresa: "ForjaComposites S.A." decide exigir fotos frontales y laterales. El nodo Set añade 'photo_views' = ['frontal','lateral'] para estandarizar reportes.

Nota operativa: Documente en el SOP de planta el formato mínimo de fotos y el uso del formulario; sin ello la IA tendrá peor rendimiento.


Análisis de gravedad con IA

Explicación detallada del paso: En este nodo se utiliza un modelo de lenguaje (LLM) y, opcionalmente, visión por computador para evaluar la gravedad de la incidencia según la matriz definida por Dirección. El análisis debe producir una clasificación (Crítica / Mayor / Menor), una puntuación numérica de gravedad, y una justificación breve que sirva para auditoría interna.

Configuración específica de nodos n8n:

  • HTTP Request (nodo 'LLM - Evaluación gravedad'): POST a [IA_API_URL]/v1/analyze con headers Authorization: Bearer [API_KEY_IA]. Payload JSON: {"text": "{{$json['description']}}", "meta": {"partNumber": "{{$json['partNumber']}}", "lot": "{{$json['lot']}}", "plant": "{{$json['plant']}}"}, "images": [{{$binary['photo_0'].data}}]}. (Si el proveedor IA admite multipart, enviar imágenes como binario).
  • Function (nodo 'Parse IA Response'): Normalizar respuesta a campos: severityLabel, severityScore (0-100), reasons[] y recommendedAction (ej.: 'Escalar Director de Operaciones').
  • Switch/IF (nodo 'Ruta por gravedad'): Ramas para 'Crítica' (severityScore >= 85), 'Mayor' (50-84), 'Menor' (<50). Cada rama enruta a nodos distintos: escalado, notificación estándar o cierre con monitorización.

Consideraciones técnicas y de negocio:

  • Matriz de gravedad: Traduzca criterios cualitativos en reglas y ejemplos para entrenar/afinar prompts. Ej.: seguridad, riesgo para cliente final, paro de línea por hora, coste estimado por unidad.
  • Prompts y trazabilidad: Guardar prompt enviado y respuesta de la IA en el registro de la incidencia para auditoría.
  • Validación humana: Para las primeras 90 incidencias tras despliegue, activar revisión humana obligatoria para ajustar umbrales y evitar falsos positivos.
  • Privacidad: Enviar imágenes a proveedores de IA solo si la política lo permite. Alternativa: usar modelos alojados internamente o técnicas de anonimización de imágenes (blur logos) antes del envío.

Prompt listo para usar (copiable, personalice [MATRIZ_GRAVEDAD] y [IDIOMA]):

Analiza la siguiente incidencia y clasifícala según la matriz de gravedad: [MATRIZ_GRAVEDAD].
Datos de la incidencia:
- Descripción: [DESCRIPCION]
- PartNumber: [PARTNUMBER]
- Lot: [LOT]
- Plant: [PLANT]
Incluye: severity_label (Crítica/Major/Minor), severity_score (0-100), justificación breve y acciones recomendadas.
Idioma de respuesta: [IDIOMA]

Ejemplo concreto (empresa ficticia): Para "ElectroParts Iberia" la IA recibe: description='Deformación en borne de conexión, posible cortocircuito', part='EP-9002', lot='B-003'. La IA devuelve: severityLabel='Crítica', severityScore=92, reasons=['riesgo de fallo eléctrico y seguridad'], recommendedAction='Notificar proveedor y parar lote en línea 3'. El flujo abre rama de escalado y envía alerta inmediata al Director de Operaciones.

Eres un experto en calidad industrial. Clasifica la gravedad de esta incidencia segun la siguiente matriz y devuelve un JSON estricto: MATRIZ DE GRAVEDAD: - CRITICA: Defecto que puede causar riesgo de seguridad, parada de linea de produccion o afectar a mas de 100 unidades. Requiere accion inmediata. - MAYOR: Defecto que afecta a la funcionalidad del producto o a 10-100 unidades. Requiere informe 8D en menos de 48 horas. - MENOR: Defecto estetico o que afecta a menos de 10 unidades. Requiere informe 8D en menos de 7 dias. Descripcion del defecto: {{$json.descripcion_defecto}} Codigo de pieza: {{$json.codigo_pieza}} Cantidad afectada: {{$json.cantidad_afectada}} Devuelve JSON con: gravedad, motivo, plazo_respuesta_horas, accion_recomendada

Búsqueda del proveedor en el ERP

Explicación detallada del paso: Una vez clasificada la gravedad, el flujo debe localizar al proveedor responsable en el ERP, recuperar el contacto contractual y las cláusulas relevantes (por ejemplo, plazos de respuesta y penalizaciones) para incluirlas en la reclamación. La búsqueda puede usar part number, SKU, contract ID o, en casos de subcontratación compleja, una tabla de equivalencias mantenida por Compras.

Configuración específica de nodos n8n:

  • HTTP Request (nodo 'ERP - Buscar proveedor'): GET [ERP_API_URL]/providers?partNumber={{$json['partNumber']}} con header Authorization: Bearer [ERP_API_KEY]. Parámetros opcionales: ?include=contacts,contracts
  • Function (nodo 'Normalizar proveedor'): Extraer campos: providerId = {{$json['response'][0]['id']}}, name={{$json['response'][0]['name']}}, contactEmail={{$json['response'][0]['contacts'][0]['email']}}, contractRef={{$json['response'][0]['contracts'][0]['ref']}}.
  • IF (nodo 'Proveedor encontrado?'): Si no hay coincidencias exactas, fallback a búsqueda por 'manufacturerPartNumber' o a tabla local en DB (nodo 'Postgres - Tabla equivalencias').
  • Set (nodo 'Adjuntar cláusulas'): Recuperar cláusulas contractuales por contractRef con otro HTTP Request y almacenarlas en el JSON para usar en plantillas de email.

Consideraciones técnicas y de negocio:

  • Resiliencia: Implementar reintentos y backoff en llamadas al ERP. Limitar la tasa de peticiones por minuto para no afectar el rendimiento del ERP.
  • Fallbacks: Si el ERP no devuelve contacto, programa una llamada al repositorio de Compras o al CSV interno con contactos alternativos. Registrar incidente de datos en el equipo de Compras para limpieza.
  • Auditoría: Guardar providerId y contractRef en el registro de incidencia; si existe discrepancia en contactos, registrar la versión de datos y notificar a Compras.
  • Privilegios: Use un usuario API con permisos mínimos. Evitar exponer datos financieros o cláusulas no necesarias.

Ejemplo concreto (datos ficticios):

  • Consulta: GET /providers?partNumber=MP-2387 retorna [{'id': 'PROV-455','name':'ForgeSupply Ltd.','contacts':[{'role':'Account Manager','email':'am@forgesupply.example'}], 'contracts':[{'ref':'CTR-2023-77'}]}]
  • Acciones n8n: Function normaliza y devuelve contactEmail='am@forgesupply.example' y contractRef='CTR-2023-77'. Set añade contractClauses: 'respuesta 72h, entrega corrección 30 días'.
  • Fallback: Si no hay coincidencia exacta, el nodo Postgres consulta table_equivalences donde 'MP-2387' mapea a supplier 'PROV-455'.

Nota operativa: Mantenga una tabla de equivalencias administrada por Compras con control de versiones; esto reduce errores por cambios de SKU o proveedores alternativos.


Notificación y reclamación automática

Explicación detallada del paso: Este paso genera y envía la comunicación formal al proveedor (email 8D) con toda la evidencia y un enlace seguro para subir el informe 8D. También gestiona notificaciones internas y el seguimiento mediante tareas en el QMS o sistema de incidencias. La plantilla debe incorporar cláusulas contractuales relevantes y solicitar plazos y evidencia según la gravedad definida.

Configuración específica de nodos n8n:

  • Template (nodo 'Prepare Email 8D'): Usar un nodo 'Set' o 'HTML Template' para montar el email con variables: providerName={{$json['providerName']}}, incidentId={{$json['incidenceId']}}, presignedPhotoUrl={{$json['photoUrl']}}, contractClauses={{$json['contractClauses']}}, severity={{$json['severityLabel']}}.
  • HTTP Request (nodo 'Generate Upload Link'): POST a [STORAGE_API]/generate-upload con body {"incidenceId": "{{$json['incidenceId']}}", "providerId": "{{$json['providerId']}}", "expiryHours": 168}. Respuesta: uploadUrl e uploadToken.
  • Send Email (nodo 'Email - Notificación proveedor'): SMTP o API Mail; Para: {{$json['contactEmail']}}, CC: quality@company.example, Subject: 'Reclamación 8D - Incidencia {{$json['incidenceId']}}', Body: HTML del nodo Template, Adjuntos: presignedPhotoUrl como link seguro. Incluir uploadUrl y credenciales temporales en cuerpo.
  • Slack (nodo 'Alert - Calidad'): Mensaje a canal #calidad con resumen y link a incidencia en QMS. Si severity='Crítica', mencionar al Director de Operaciones con link directo.
  • HTTP Request (nodo 'Registrar acción en ERP/QMS'): POST a [QMS_API_URL]/incidencias/{{$json['incidenceId']}}/notificar con payload con hitos y plazos.

Consideraciones técnicas y de negocio:

  • Contenido contractual: Inserte cláusulas obligatorias (por ejemplo, referencia a CTR-xxxx y SLA). Asegure aprobación legal antes del despliegue de plantillas.
  • Seguridad del enlace: Los upload links deben ser prefirmados, con expiración y un token único. Registrar IP y actividad de subida para trazabilidad.
  • Formato y evidencia: Requerir campos mínimos en el informe 8D (definición del problema, contención, análisis causa raíz, acciones correctivas y preventivas con responsables y fechas).
  • Confirmación de recepción: Solicitar read receipt o implementar API de confirmación de recepción por parte del proveedor; si no hay confirmación en [X] horas, reenviar y escalar.

Ejemplo concreto (empresa ficticia): Para la incidencia INC-2026-00421 de "ForjaComposites S.A.", el email va a 'quality@forgesupply.example' con asunto 'Reclamación 8D - INC-2026-00421'. El cuerpo incluye: fotos (links prefirmados), contractRef CTR-2023-77, plazo requerido para primer informe 72 horas, enlace de subida 'https://storage.internal/upload?token=abc123' válido 7 días. El nodo Slack envía: 'INC-2026-00421 - Crítica - ForgeSupply notificado. Link QMS: https://qms.company/inc/INC-2026-00421'.

Métrica de control: Monitorizar tasa de confirmación <48h, cumplimiento de plazos 8D y número de escalados automáticos por mes. Ajustar plantillas y plazos tras 3 meses de operación.


Output esperado del flujo

Descripción del output: Al concluir el flujo se debe generar un registro completo de la incidencia con campos normalizados, enlaces a evidencia, resultado del análisis IA, proveedor notificado y estado inicial de la acción 8D. Este registro sirve como entrada para seguimiento manual o automático de plazos y auditoría.

Campos obligatorios del output (formato JSON/registro en QMS):

  • incidenceId: identificador interno (ej.: 'INC-2026-00421')
  • reportedAt: timestamp original
  • partNumber y lot
  • severityLabel y severityScore
  • providerId, providerName, contactEmail
  • contractRef y contractClauses
  • photoUrls: lista de presigned URLs
  • uploadLink: URL para subir informe 8D
  • emailSent: booleano y emailMessageId
  • alerts: lista de alertas internas enviadas (Slack/Email) y si hubo escalado
  • audit: promptIA y respuestaIA para trazabilidad

Ejemplo concreto de output (datos ficticios, listo para almacenar o consultar):

{
  "incidenceId": "INC-2026-00421",
  "reportedAt": "2026-06-12T08:23:00Z",
  "partNumber": "MP-2387",
  "lot": "L-2026-05",
  "severityLabel": "Crítica",
  "severityScore": 92,
  "providerId": "PROV-455",
  "providerName": "ForgeSupply Ltd.",
  "contactEmail": "am@forgesupply.example",
  "contractRef": "CTR-2023-77",
  "contractClauses": "Respuesta en 72h; entrega corrección 30 días; penalización aplicable",
  "photoUrls": ["https://s3-internal.company/…?X-Amz-Signature=…"],
  "uploadLink": "https://storage.internal/upload?token=abc123",
  "emailSent": true,
  "emailMessageId": "MSG-987654",
  "alerts": [{"channel":"slack","channelId":"#calidad","messageId":"SL-334"}],
  "escalated": true,
  "audit": {"promptIA":"Analiza...","responseIA":"{\"severity\":\"Crítica\"...}"}
}

Uso del output: Este JSON debe almacenarse en el QMS y quedar disponible para queries y KPIs: tiempos de notificación, tasa de respuesta, cumplimiento de 8D, número de escalados y causas raíz más frecuentes. Además, habilite dashboards para Dirección con filtros por gravedad y proveedor.

NodoFunciónConfiguración clave
Webhook (Ingreso Planta)Recibe formulario con fotos y metadatos desde la plantaURL pública protegida, validación de esquema JSON, límites de tamaño de adjuntos, autenticación por token
Preprocesador de ImágenesNormaliza, redimensiona y extrae metadatos EXIF; opcional OCRResolución objetivo, compresión, extracción OCR configurable, almacenamiento temporal en bucket seguro
LLM: Clasificación de GravedadEvalúa la gravedad y clasifica la incidencia según la matriz definida por DirecciónPrompt template con matriz de gravedad, umbrales de confianza, registro de explicación (razones de decisión)
Consulta ERP (Proveedor)Localiza proveedor y contacto contractual asociados a la piezaConector API ERP, mapeo de campos (pieza → orden de compra → proveedor), manejo de credenciales seguras y timeouts
Generador de Notificación 8DConstruye el correo 8D con plantilla estandarizada y adjunta evidenciasPlantilla editable, campos obligatorios (fecha, lote, fotos), generación de PDF, inclusión de destinatarios contractuales
Condición y Escalado InternoDecide envío directo al proveedor o escalado al responsable de CalidadReglas basadas en gravedad y tiempo en planta, lista de responsables, notificaciones por correo y canal interno (Teams/Slack)
Registro y TrazabilidadAlmacena evento completo para auditoría y métricas SLABase de datos (Postgres/Airtable), campos: id incidente, timestamps, acciones, versión del modelo, enlaces a evidencias


Problemas frecuentes y cómo resolverlos

Lista de problemas frecuentes con síntoma, causa y solución. Incluye casos técnicos y de proceso.

  • Error 1: Webhook no recibe fotos
    • Síntoma: El webhook registra JSON pero 'binary' está vacío; no aparecen imágenes en el registro.
    • Causa: El formulario de planta no envía multipart/form-data o la integración no habilita envío de archivos; límite de tamaño en el firewall o en el proxy.
    • Solución: Ajustar el formulario para enviar multipart/form-data. Verificar parámetros del Webhook n8n (Enable 'Accepts Binary Data'). Revisar límites en reverse proxy (Nginx/HAProxy) y aumentar client_max_body_size o su equivalente. Añadir validación en planta para confirmar subida correcta.
  • Error 2: LLM devuelve clasificación errática
    • Síntoma: Casos obvios de baja gravedad son clasificados como críticos o viceversa.
    • Causa: Prompt mal definido, matriz de gravedad incompleta o entrenamiento insuficiente; sesgo por ejemplo de datos.
    • Solución: Revisar y formalizar la matriz de gravedad con ejemplos claros; almacenar prompts y respuestas para análisis. Implementar una fase de validación humana durante el periodo de entrenamiento y ajustar thresholds (por ejemplo cambiar el umbral crítico de 85 a 90). Considere usar un LLM interno o un servicio con capacidad de fine-tuning si se requiere alta precisión.
  • Error 3: ERP no devuelve proveedor
    • Síntoma: Búsqueda por partNumber retorna 0 resultados; flujo cae en excepción o envía contacto vacío.
    • Causa: Diferencias en nomenclatura de part numbers, proveedor no registrado, permisos API insuficientes o latencia en bases de datos del ERP.
    • Solución: Implementar fallback a tabla de equivalencias mantenida por Compras. Revisar y solicitar permisos API correctos (READ providers). Añadir reintentos con backoff y notificación a Compras para actualizar registros.
  • Error 4: Email no entregado o rechazado por el proveedor
    • Síntoma: nodo de envío de correo devuelve error 550 o bounce, o proveedor no confirma recepción.
    • Causa: Dirección de proveedor obsoleta, filtros anti-spam corporativos del proveedor o atributos del correo (DKIM/SPF/DMARC) mal configurados.
    • Causa alternativa: El proveedor exige comunicaciones en portal y no por email.
    • Solución: Confirmar contactEmail y añadir canales alternativos: SMS o portal del proveedor. Asegurar que la infraestructura de correo tiene registros SPF/DKIM/DMARC correctos. Implementar reintentos y copia a account manager interno. Documentar en Compras la necesidad de un canal de recepción obligatorio por contrato.
  • Error 5: Upload link no funciona para el proveedor
    • Síntoma: El proveedor reporta error 403 al intentar subir el informe 8D usando el enlace enviado.
    • Causa: Token expirado prematuramente, origen IP del proveedor bloqueado, o política CORS mal configurada en el servicio de almacenamiento.
    • Solución: Revisar políticas de expiración y logs del storage para identificar motivo de rechazo. Extender expiración si procede y proporcionar método alternativo (email seguro o portal). Ajustar CORS y whitelist de IPs si el storage interno lo requiere.

Recomendación final: Mantenga un playbook de incidentes con estos fallos comunes y checklists técnicos. Realice simulaciones trimestrales (fire drills) para verificar integridad de la automatización y la coordinación con Compras y Legal.


Adaptaciones del flujo para otros contextos

El flujo propuesto es una plantilla que puede adaptarse a diferentes industrias y requisitos regulatorios. A continuación, se presentan variantes concretas y recomendaciones de configuración para cada caso.

  • Industria aeroespacial (ej.: "AeroComp Manufacturing")
    • Requisitos: Mayor trazabilidad y retención de evidencia (mínimo 10 años). Uso intensivo de fotos de alta resolución y certificados de conformidad.
    • Adaptación: Utilizar almacenamiento con WORM (Write Once Read Many) y firmar digitalmente las imágenes. Añadir un paso de validación por certificador interno antes de enviar al proveedor. Registrar metadatos adicionales: batch manufacturingTraceId y serialNumber.
  • Sector alimentario (ej.: "Alimentos Norte S.A.")
    • Requisitos: Trazabilidad por lote y notificación urgente por riesgo sanitario.
    • Adaptación: Integrar alertas SMS y llamada automática para proveedores críticos; reducir umbral de criticidad; registrar notificación a autoridades si procede. Añadir integración con sistema HACCP y trazabilidad de lotes.
  • Pequeña producción con ERP limitado (ej.: PYME metalúrgica)
    • Requisitos: Pocas integraciones; simplicidad.
    • Adaptación: Sustituir llamadas al ERP por una hoja de cálculo centralizada en Google Sheets o una base SQLite accesible desde n8n. Usar correo simple y generar tareas en Trello para seguimiento si no hay QMS.
  • Cadena de suministro global con múltiples proveedores
    • Requisitos: Soportar diferentes idiomas y zonas horarias.
    • Adaptación: Añadir detección automática de idioma y generación de emails en el idioma local del proveedor usando la IA. Normalizar timezones en UTC y añadir SLA escalado por zona horaria.

Consideraciones legales y contractuales: En todos los casos, revisar cláusulas contractuales para comunicaciones automáticas y tratamiento de datos. Para sectores regulados, documentar cadena de custodia digital y asegurar retención conforme a normativa.

Ejemplo de variante práctica: "NexoComponentes" es una PYME que no dispone de ERP accesible. Implementó el flujo sustituyendo la búsqueda ERP por una tabla Google Sheets accesible desde n8n; el nodo 'Google Sheets' devuelve contactEmail y contractRef, y la organización añadió una tarea en Asana para seguimiento en vez de QMS.


¿Qué hacer ahora?

Acciones inmediatas para Dirección y TI:

  1. Dirección: Aprobar la matriz de gravedad y las plantillas de correo 8D. Documentar los criterios de escalado y los plazos esperados.
  2. TI/Automatización: Preparar la infraestructura n8n (preferible self-hosted), crear el webhook inicial y garantizar acceso a API del ERP y storage seguro. Asignar credenciales de servicio y definir políticas de rotación.
  3. Calidad: Definir los campos obligatorios del formulario de planta y el formato mínimo de fotos. Planificar la fase de validación humana de 90 incidencias tras despliegue.

Checklist de despliegue rápido (30 días):

  • Instalar n8n y configurar backups.
  • Configurar Webhook y formulario en planta.
  • Configurar conexión ERP con usuario API limitado.
  • Configurar storage interno y pruebas de presigned URLs.
  • Desplegar plantilla de email y comprobar DKIM/SPF.
  • Realizar 10 simulaciones end-to-end con casos reales moderados y críticos.

Prompt rápido para iniciar un MVP (copiable):

Implementa en n8n un flujo que: 1) reciba POST en /webhook/incidencias-calidad con fotos; 2) almacene fotos en S3 interno y genere presigned URLs; 3) llame a [IA_API_URL] para clasificar gravedad; 4) consulte [ERP_API_URL] para obtener proveedor; 5) envíe email 8D a [CONTACT_EMAIL] y registre el evento en [QMS_API_URL].
Variables: [TOKEN_PLANTA], [API_KEY_IA], [ERP_API_KEY], [STORAGE_API_KEY], [QMS_API_KEY]

Contacto recomendado: Organice una reunión entre Dirección, Calidad y TI en la próxima semana para aprobar matriz y plan de despliegue. Si necesita, puedo generar un diagrama técnico detallado y los flujos n8n exportables con nodos preconfigurados para su infraestructura específica.