El caso: Metalúrgica Ribera instala el toolkit
Ejemplo Caso ilustrativo: la empresa y sus datos son inventados para explicar el flujo.
Metalúrgica Ribera es una empresa inventada que fabrica piezas para otras industrias y ya trabaja con Odoo. Su responsable de sistemas, Laura, instala NIS2 Cybersecurity Compliance Toolkit para tener en un mismo sitio el perfil de la empresa, los controles, los riesgos, la formación y los incidentes. El recorrido que sigue es el que hace ella durante la puesta en marcha: los nombres de pantallas, columnas, campos y estados son los del módulo; las decisiones de Laura son ilustrativas.
Antes de instalar, Laura comprueba su versión. El módulo está publicado en Odoo Apps para Odoo 17, 18 y 19, a 49 € sin IVA en cada una de esas versiones, pago único por versión. Si todavía dudas de si te encaja, lo tienes desglosado en si el toolkit encaja en tu empresa.
Primer registro: el perfil de empresa
Laura empieza por la lista de perfiles de empresa. Las columnas que ve son entidad legal, empresa, estado miembro, sector, tamaño, estado de aplicabilidad, estado del perfil y responsable, con una barra de búsqueda y el botón Nuevo. Esas columnas le dicen qué datos tiene que llevar preparados: qué entidad legal es, en qué estado miembro opera, su sector, su tamaño y quién se encarga del perfil.

El campo en el que más se detiene es applicability_status. Los valores que define el módulo son Potentially In Scope, Likely Out of Scope, Needs Legal Review, Essential Entity Candidate (Annex I), Important Entity Candidate (Annex II) y Confirmed by Legal Counsel. Fíjate en las etiquetas: hablan de «candidata» y de revisión legal. La app guarda la valoración que tú anotas. Laura deja el perfil en Needs Legal Review y apunta que lo cambiará a Confirmed by Legal Counsel cuando su asesor jurídico se lo confirme.
El estado de aplicabilidad lo anotas tú. Decide con tu asesor y deja reflejado en el perfil lo que te haya dicho.
Segundo paso: los controles y su estado de madurez
La lista de controles tiene columnas de categoría, nombre del control, estado de madurez, responsable y revisión. El estado de madurez (maturity_status) admite Not Implemented, Planned, Partially Implemented, Implemented y Not Applicable.

Laura recorre los controles con su equipo, uno a uno, y se pone un criterio propio para no dudar en cada fila:
Implementedsolo si puede enseñar cómo lo hacen hoy.Partially Implementedsi existe, pero no cubre todo lo que describe el control.Plannedsi hay una persona y una fecha comprometidas.Not Applicablesi no aplica a su actividad y sabe explicar por qué.Not Implementedpara todo lo demás.
En cada fila rellena también el responsable, porque la columna está en la lista y quiere ver de un vistazo quién lleva cada control.
Tercer paso: el registro de riesgos
La lista Risk Register muestra impacto, probabilidad, riesgo residual, decisión de tratamiento y estado, con el botón New y la búsqueda. Los estados que define el módulo para este juego son Draft, Under Review, Accepted y Closed.

Laura da de alta cada riesgo en Draft con su impacto y su probabilidad. Lo mueve a Under Review cuando lo presenta a dirección y a Accepted cuando hay una decisión de tratamiento acordada. Los que ya no aplican los deja en Closed en lugar de borrarlos, para conservar el rastro.
Formación: los Training Records
La lista de Training Records tiene columnas de nombre, tipo, artículo y estado, con el botón New y el buscador. Los estados son Assigned, In Progress, Completed, Overdue y Exempt.
Laura crea un registro por cada formación que tiene que hacer la plantilla y marca como Exempt a quien no le corresponde, en vez de dejarlo sin registro. Así, cuando filtra la lista, lo que no está en Completed ni en Exempt es trabajo pendiente.
Incidentes: la lista y los estados que define el módulo
La lista de incidentes tiene columnas de referencia, hora de detección, severidad, estado y evaluación de significancia, más el botón Nuevo y el buscador.

Entre los juegos de estados que define el código del módulo hay uno con Detected, Triage, Under Investigation, Reportable Decision Pending, Reported, Closed y False Positive, y un campo root_cause_status con Unknown, Under Investigation, Identified y Not Applicable. Laura abre un incidente de prueba en su base de datos de pruebas para ver qué valores le ofrece la columna de estado antes de explicárselo al equipo. Si quieres ver la estructura completa del módulo, la tienes en cómo funciona el toolkit por dentro.
La primera semana: lo que revisó Laura
Con todo dado de alta, Laura se reserva un rato cada día de la primera semana para repasar:
- Que el perfil de empresa tiene rellenos entidad legal, estado miembro, sector, tamaño y responsable.
- Que
applicability_statusrefleja lo que ha dicho el asesor y no una suposición. - Que ningún control se ha quedado sin responsable en la lista de controles.
- Que los controles en
Plannedtienen una persona detrás. - Que los riesgos en
Drafthan pasado aUnder Reviewo tienen fecha para hacerlo. - Qué formaciones aparecen en
Overduey a quién hay que llamar. - Que el incidente de prueba se ha quedado en la base de datos de pruebas y no en la de trabajo.
Qué aprender del caso
El orden que sigue Laura (perfil, controles, riesgos, formación, incidentes) es una elección suya, pensada para ir de lo general a lo diario. Lo que sí sale del módulo es lo que tienes que rellenar y entender: las columnas de cada lista y los valores de cada estado. Tres ideas para llevarte:
- Los estados son decisiones de personas. Pon un criterio por escrito antes de empezar, sobre todo para
maturity_status. - El estado de aplicabilidad necesita a tu asesor. Las etiquetas del propio módulo lo dejan claro con
Needs Legal ReviewyConfirmed by Legal Counsel. - Un responsable por fila. Las listas de perfiles y controles tienen esa columna; úsala.
Cómo te ayuda FlexigoTech
FlexigoTech implanta Odoo y desarrolla conectores e integraciones a medida. Si quieres ayuda para cargar tus controles y riesgos, o para conectar el toolkit con otras partes de tu Odoo, tienes el módulo en nuestra página y en su ficha de Odoo Apps.
Sigue leyendo
Comprobado en el código del módulo (versión 19.0) y en las fuentes enlazadas
Fuentes
- Código del módulo: flexigo_nis2_cybersecurity_compliance_toolkit 19.0 (af4f82c6): models/nis2_company_profile.py
- Código del módulo: flexigo_nis2_cybersecurity_compliance_toolkit 19.0 (af4f82c6): models/nis2_control.py
- Código del módulo: flexigo_nis2_cybersecurity_compliance_toolkit 19.0 (af4f82c6): models/nis2_risk.py
- Código del módulo: flexigo_nis2_cybersecurity_compliance_toolkit 19.0 (af4f82c6): models/nis2_training.py
- Código del módulo: flexigo_nis2_cybersecurity_compliance_toolkit 19.0 (af4f82c6): models/nis2_incident.py
- apps.odoo.com/apps/modules/19.0/flexigo_nis2_cybersecurity_compliance_toolkit
- apps.odoo.com/apps/modules/17.0/flexigo_nis2_cybersecurity_compliance_toolkit
- apps.odoo.com/apps/modules/18.0/flexigo_nis2_cybersecurity_compliance_toolkit
- flexigotech.com/en/services.html
- Código del módulo: flexigo_nis2_cybersecurity_compliance_toolkit 19.0 (af4f82c6): __manifest__.py
