Inicio / Blog / Tutoriales / Audita tu Odoo
TutorialesLATAM

Audita tu Odoo: 50 puntos de autodiagnóstico para PYME en LATAM

Lista de 50 puntos en 10 categorías que el CFO y el tech lead recorren en 4 horas.
Resultado: queda claro si rescatar el sistema, llamar a un externo o migrar a un Odoo 18 limpio.

Sergei Filatov
Sergei FilatovFounder · data-metrics.pro · 27 may 2026
◷ 12 min de lectura

Por qué 4 horas — y no 4 semanas

Si tu Odoo lleva seis meses "casi listo", no tienes un problema de espera. Tienes un problema de diagnóstico. Esta plantilla entrega una lista mínima suficiente de 50 puntos que el CFO y el tech lead de una PYME de Perú, México, Colombia, Argentina o Chile pueden recorrer en 4 horas y obtener una respuesta honesta: rescatar el sistema, optimizarlo o quemarlo y migrar a un Odoo 18 limpio.

Una auditoría forense externa de un consultor toma 30–60 horas-persona y cuesta entre USD 1 500 y USD 5 000 por instalación. Hacerla cada trimestre para cada ERP de PYME sale demasiado caro. El autodiagnóstico resuelve otra cosa: cada tres meses, darle al equipo un indicador de si vale la pena llamar a un experto externo.

En una muestra de 60+ instalaciones de Odoo en LATAM (Perú, México, Chile, Colombia, Argentina entre 2018 y 2026), el 78% de los sistemas eran recuperables — pero solo si los problemas se detectaban antes de que el cierre contable se atrasara 14 días o las facturas empezaran a rechazarse en bloque por SUNATSATDIANARCA o SII.

El autodiagnóstico es early warning. El PDF del consultor externo es cirugía. No los confundas — y no intentes que uno reemplace al otro.

i
Resumen de un minuto. 50 puntos en 10 categorías: configuración, localización fiscal, código custom, datos, performance, integraciones, cron, backups, seguridad y operaciones. Recorrido típico: 4 horas del tech lead más 1 hora del CFO. En el 70% de las instalaciones, el autodiagnóstico revela 3–5 defectos críticos que el partner de implementación prefirió no mencionar. Aplica a Odoo 15–18 con al menos 6 meses en producción.

Las 10 categorías del autodiagnóstico

Los 50 puntos están repartidos en 10 categorías de 4 a 6 ítems. Cada uno recibe una calificación: sí / no / parcial. Mientras más no tenga una categoría, mayor es la prioridad de un focused audit en esa área. La auditoría detallada se reserva para cuando la categoría con más rojos es fiscal o código custom.

#1. Configuración y versión (5 puntos)

  1. Versión de Odoo: 16.0, 17.0 o 18.0 LTS. Si corres 13–15, estás en stack deprecated sin parches de seguridad.
  2. Edition Community o Enterprise. El módulo accounting completo en Community solo existe vía módulos de terceros de OCA.
  3. Developer mode habilitado para los usuarios con el nivel técnico que lo necesita — no más, no menos.
  4. Número de usuarios activos contrastado con la licencia. Pasarse del límite es exposición a auditoría de Odoo SA.
  5. Existe un documento de procesos que referencia módulos concretos de Odoo, no un "todo funciona de alguna manera".

#2. Localización fiscal (8 puntos)

La categoría más explosiva. La mayor parte de las multas se origina aquí.

  1. El módulo l10n_xx correspondiente está instalado (l10n_pel10n_mxl10n_col10n_arl10n_cl).
  2. La versión del l10n_xx coincide con la major version de Odoo. Los parches de OCA l10n-peru suelen llegar con 2–4 semanas de retraso respecto al core upgrade.
  3. Los certificados de firma electrónica están instalados y no expiran en los próximos 90 días.
  4. Perú: l10n_pe_edi configurado para CPE. ¿GRE (Guía de Remisión Electrónica) cerrada correctamente?
  5. Perú: integración con SIRE (RVIE + RCE) activa. Si no, es multa diferida.
  6. México: complementos Carta Porte 3.1 y Pagos 2.0 instalados.
  7. Colombia: nómina electrónica integrada. ¿Hay conector a RADIAN para factoring de facturas?
  8. Argentina / Chile: webhooks a ARCA (ex-AFIP) y SII activos. Los rechazos de validación se loguean en un lugar consultable.
!
SUNAT puede aplicar una multa por cada CPE no presentada — la UIT 2026 ronda los S/ 5 350 y es base de sanciones multi-UIT. DIAN, por nómina electrónica no enviada, golpea distinto: la pérdida de deducibilidad puede costarle a una PYME entre USD 4 000 y USD 15 000 al año. Nunca asumas que "las facturas salen" significa "la localización está bien configurada".

#3. Código custom (5 puntos)

  1. Cuántas líneas de código custom en addons/custom/. Más de 5 000 — o eres un ERP builder, o tienes un problema.
  2. Existen unit tests para los módulos custom. Al menos uno.
  3. Cada módulo custom tiene un README que explica el por qué, no el qué.
  4. Cuántos módulos custom duplican funcionalidad nativa (Sale, Inventory, MRP). Ese código se rompe en cada upgrade.
  5. Quién firmó el último commit en cada módulo custom. ¿Esa persona sigue en la empresa?

#4. Calidad de datos (6 puntos)

  1. Cuántos duplicados en res.partner por vat (GROUP BY vat HAVING COUNT(*) > 1).
  2. Cuántos productos en product.template sin BoM activos — crítico en PYMEs manufactureras.
  3. Cuántas líneas contables sin contraparte (account.move.line WHERE partner_id IS NULL). Cada una rompe el reporte por cliente.
  4. SKU fantasma: productos sin movimiento en los últimos 12 meses.
  5. El stock total en Odoo coincide con el inventario físico (±2%).
  6. Los periodos contables del año anterior están cerrados, o quedan abiertos para correcciones post-facto.

#5. Performance (4 puntos)

  1. Top-10 de queries lentos en pg_stat_statements. Hay queries que superan los 5 segundos.
  2. Tamaño de la base Postgres: hasta 20 GB es normal, 20–50 GB exige vacuum y cleanup regulares, más de 50 GB exige archivado real.
  3. Tiempo de respuesta del POS en horas pico: menos de 1 segundo.
  4. Cuántas veces al día aparecen en los logs WorkerLostMemoryError o 504 Gateway Timeout.

#6. Integraciones (5 puntos)

  1. Existe un inventario de integraciones activas — Shopify, MercadoLibre, webhooks bancarios, ContPaq, Siigo.
  2. Cada integración tiene retry con exponential backoff.
  3. Dónde se almacenan los failed payloads. Si en ningún lado, tienes silent data loss.
  4. Alguien monitorea errores de integración — Sentry, Datadog o al menos un cron-script manual con notificación a Slack.
  5. Se probó el disaster recovery de la última integración en los últimos 90 días.

#7. Cron jobs (4 puntos)

  1. Cuántos registros activos en ir.cron.
  2. Cuántos tienen nextcall más de 7 días en el pasado (zombies).
  3. Cuál es el cron job más pesado por tiempo de ejecución promedio.
  4. Existe algún cron que se ejecuta cada minuto. ¿Tiene justificación de negocio?

#8. Backups y recuperación (4 puntos)

  1. Backup diario de DB y filestore se ejecuta de forma automática y verificada.
  2. El backup vive en una región geográfica distinta — S3/GCS de otra región, no el mismo data center.
  3. Se probó un restore en los últimos 90 días. RTO medido en segundos, minutos u horas.
  4. Existe una retention policy documentada. Estándar razonable: 7 daily4 weekly12 monthly.

#9. Seguridad y accesos (5 puntos)

  1. Todas las cuentas admin tienen 2FA habilitado.
  2. No existe una cuenta admin compartida que TI envía por WhatsApp. El audit trail con eso queda inservible y el bus factor cae a 1.
  3. El acceso al filestore está protegido a nivel de SO (solo el usuario odoo).
  4. Rate limit activo en rutas de portal y website para frenar brute force.
  5. Audit log activo para la acción unlink (eliminación de registros).

#10. Operación y aprendizaje (4 puntos)

  1. Se entrevistó a 5 usuarios clave: qué workarounds usan fuera de Odoo — Excel sombra, grupos de WhatsApp para estados de pedido.
  2. Cada proceso tiene owner documentado: una persona, no "el área".
  3. Existe un incident log de los últimos 90 días con root cause analysis, no "se rompió — se arregló".
  4. Plan de upgrade a la próxima LTS (Odoo 19) decidido: aprobado, postergado a 2027 o ni siquiera discutido.

Cuándo el autodiagnóstico aplica — y cuándo no

CondiciónAplicaPor qué
Odoo on-prem o self-hosted, > 6 meses en producciónLas patologías se acumulan con el tiempo; en sistemas recientes la mitad de los puntos darán falso positivo verde
Equipo con tech lead capaz de correr psql y leer logsEs un documento técnico, no un managerial summary
4 horas concentradas en una sola sesiónEstirado a 2 semanas, los primeros y últimos puntos ya viven en realidades distintas
Odoo Online (SaaS sin shell)ParcialLa mitad de los puntos sobre DB, cron y logs no aplica; necesitas un flow alternativo de 25 puntos
México con CFDI muy customizadoNoLos detalles de complementos exigen review experto, no un checklist universal
Argentina con XML legacy y sin webhooks a ARCANoRequieren validaciones puntuales, no 50 universales
El único "tech lead" es el contador, sin SQL ni sysadminNoEl autodiagnóstico genera más ruido que señal; llama directo a un externo

Errores típicos al recorrer la lista

Error 1. Llenar "a ojo". El equipo pinta puntos verdes sin verificar. Sin psql y sin leer logs, esto deja de ser auditoría y pasa a ser autoengaño.

Error 2. Ignorar los amarillos. Parcial no es OK. Es "toma una hora aparte y resuélvelo" — en 3 meses, el amarillo será rojo.

Error 3. Autodiagnóstico hecho por la misma persona que implementó. Conflicto de interés directo: no va a señalar sus propios defectos. Mínimo, invita un second pair of eyes — otro dev, el contador o el COO.

Error 4. Confiar ciegamente en la localización fiscal. "Las facturas salen" no equivale a "la localización está bien configurada". SUNAT, SAT y DIAN pueden aceptar un XML con warning que se materializa como multa en la revisión anual.

Error 5. Hacerlo una vez. El ERP es un sistema vivo. Si lo recorres una vez, en 90 días la mitad de las respuestas ya están desactualizadas. Cadencia mínima: trimestral. Antes de cada major upgrade: obligatorio.

Caso anónimo: cadena minorista en Lima

Cadena minorista, 9 puntos de venta, Odoo 16 Enterprise con 18 meses en producción. El CFO inicia el autodiagnóstico — 4 horas con el tech lead y el contador senior.

Distribución de resultados sobre 50 puntos14 rojos11 amarillos25 verdes.

"Pensábamos que el problema era performance. Resultó que la performance era un síntoma — el problema real estaba en localización fiscal y backups que nunca habíamos restaurado."

Top-3 hallazgos:

  1. l10n_pe_edi no recibió patches desde el día de instalación. Aproximadamente el 8% de las CPE salía con formato de serie incorrecto — SUNAT las aceptaba con warning. En la revisión anual eso se habría convertido en rechazo y multa multi-UIT.
  2. 6 de 11 cron jobs hacían refresh de un cache que ningún código activo consumía. CPU al 30% constante sin que nadie supiera de dónde venía.
  3. Los backups corrían, pero el restore no se probó ni una vez en 18 meses. En el restore de prueba sobre staging quedó claro que el filestore no se estaba copiando — la empresa, de hecho, no tenía backup de 1.2 TB de facturas y fotos de producto.

Tras 6 semanas de reparación (3 devs × 6 semanas a carga parcial + 2 semanas contables de re-emisión): el cierre mensual bajó de 9 días a 3, la carga del servidor cayó −35%, y los backups se mudaron a S3 en otra región con restore probado (RTO 90 minutos).

ROI: gasto de USD 4 800. Recuperación estimada: USD 18 000+ anuales entre la reducción de tiempos de cierre contable y la eliminación del riesgo de multa por CPE mal emitidas.

Tu siguiente paso: rescatar, auditar o migrar

Después del autodiagnóstico tienes tres caminos.

Camino 1. Rescatar y optimizar. Menos de 10 puntos rojos, concentrados en categorías 4 (datos), 5 (performance) y 8 (backups). El sistema es salvable por el equipo interno en 6–10 semanas. Mira la metodología en rescate de proyecto Odoo.

Camino 2. Auditoría detallada externa. Más de 10 rojos, o los rojos viven en categorías 2 (localización fiscal) y 3 (código custom). Llama a un consultor externo para un forensic review de 5–10 días. Detalles del scope en auditoría Odoo.

Camino 3. Migración o reemplazo. Aproximadamente el 7% de los casos de nuestra muestra: el sistema está tan recargado de deuda técnica que sale más barato empezar con un Odoo 18 o 19 limpio. Esa decisión se toma sobre datos, no emociones. Consulta el marco de decisión de migración antes de cerrar el debate.

i
Descarga la plantilla completa. PDF con los 50 puntos, los queries psql listos para correr, los emails templates para coordinar el review con el equipo, y un tablero de Notion para trackear progreso. Email-gated, sin spam. Una vez cada dos semanas — newsletter Pulso Odoo LATAMdescargar Audita tu Odoo.

Preguntas frecuentes

¿Cuánto tiempo toma realmente recorrer los 50 puntos?

4 horas de trabajo concentrado del tech lead más 1 hora del CFO. Si toma menos, alguien está pintando verdes a ciegas; si toma mucho más, sobra documentación y falta ERP funcionando.

Mejor 25 puntos a profundidad que 50 en superficial — si solo tienes 2 horas, parte por las categorías 2 (fiscal) y 8 (backups).

¿Puedo usarlo solo para mi país?

Sí. Las categorías 1 y 3–10 son universales para toda LATAM. Solo la categoría 2 (localización fiscal) es country-specific — toma los puntos de tu jurisdicción (PE, MX, CO, AR, CL, PY, EC, UY) y descarta el resto.

¿Qué hago si salen más de 10 puntos rojos?

No los arregles todos al mismo tiempo. Prioriza en este orden: primero localización fiscal (riesgo de multa del regulador), después backups (riesgo de pérdida de datos), luego performance y calidad de datos. El ciclo completo de rescate suele tomar 8–12 semanas.

¿Esto reemplaza a una auditoría externa formal?

No. Una auditoría externa entrega 30–60 horas de experto más un PDF de 30–60 páginas con priorización y estimaciones en USD. El autodiagnóstico es early warning — sirve para decidir si vale la pena pagar al externo.

¿Funciona en Odoo Online (SaaS)?

Parcialmente, cerca del 60% de los puntos. Las categorías sobre DB, cron, performance y backups dependen de shell access que Odoo Online no expone. Para Online necesitas un flow alternativo de 25 puntos.

¿Y si el partner de implementación se opone — dice "no hace falta"?

Es red flag por sí mismo. Un partner alineado con el éxito long-term del cliente debería proponer esta verificación. La resistencia indica problemas escondidos.

¿Con qué frecuencia hay que repetirlo?

Trimestral como mínimo. Antes de cada major upgrade: obligatorio. Después de un incident relevante: extraordinario dentro de los 7 días siguientes.

¿Odoo no tiene un reporte estándar que muestre la mitad de estos puntos?

No. Parte de los datos está en Apps → Settings (versión, edition, número de usuarios), pero localización fiscal, cron zombies y calidad de datos exigen SQL directo. La UI de Odoo oculta deliberadamente esos detalles técnicos.