Qué cuenta este caso y qué no
El artículo sigue a una empresa inventada que pone en marcha el módulo en Odoo 20. El orden de los pasos es el del caso, no un orden que imponga el módulo. Todo lo que se nombra (campos, listas, estados) sale del propio módulo; si quieres ver cómo encaja por dentro, tienes cómo funciona el módulo por dentro.
Las pantallas que aparecen cuelgan del menú Whistleblowing: Reports, Libro Registro, la lista de canales, Responsables y Audit Packs.
El caso de Ferretería Albada, de la instalación a la primera denuncia
Ejemplo Caso ilustrativo: la empresa y sus datos son inventados para explicar el flujo.
Ferretería Albada es una distribuidora inventada que está terminando de implantar Odoo 20. Lucía, su responsable de cumplimiento, tiene que dejar listo el canal interno de denuncias antes de anunciarlo a la plantilla. Lo prepara en una tarde y apunta lo que revisará la semana siguiente.
Los cuatro campos que Lucía decide primero
Lucía empieza por estos campos del módulo, cada uno con su etiqueta tal como sale en pantalla:
Enable Anti-Virus Scanning of Attachments(wb_av_enabled, casilla de sí o no): según su etiqueta, activa el análisis antivirus de los adjuntos.DKIM Selector(wb_dkim_selector, campo de texto): Lucía lo deja pendiente hasta tener el dato de quien le lleva los sistemas.Sentry DSN (optional)(wb_sentry_dsn, campo de texto): la propia etiqueta lo marca como opcional y Lucía lo deja vacío.Detect Tor Exit Nodes (opt-in)(wb_tor_detection_enabled, casilla): la etiqueta dice que es una opción que hay que activar (opt-in). Lucía lo consulta con su asesor antes de marcarlo.
Quién atiende las denuncias: la lista Responsables

Responsables, todavía sin registros: columnas, botón New y buscador.En Whistleblowing › Responsables la lista está vacía al empezar. Sus columnas son User, Name (collegiate body), Kind, Company, Appointment y Active. La columna Name (collegiate body) deja ver que ahí cabe el nombre de un órgano colegiado. Lucía pulsa New y da de alta a la persona que va a atender el canal, con su usuario de Odoo y su compañía.
El canal: nombre, slug y estado
En la lista de canales cada canal tiene nombre, slug, compañía y estado. Entre los estados del código hay una lista con Draft, Published y Archived. Lucía crea el canal interno de su empresa y comprueba que queda en Published, igual que el canal de prueba que se ve en el flujo animado de más abajo.
Una denuncia de prueba desde la web

Lucía envía una denuncia de prueba desde la web. Al terminar, la página «Thank you» muestra la referencia de la denuncia, un código de acceso y una frase de contraseña secretos y un enlace de seguimiento. Son los datos que ve quien denuncia; en la prueba, Lucía los anota y abre el enlace de seguimiento para comprobar que funciona. En la captura la página sale sin estilos.
Dónde aparece la denuncia dentro de Odoo

En Reports, con el filtro Open, las denuncias se agrupan en columnas como Received y Acknowledged, con tarjetas que llevan la referencia y el título. En Libro Registro cada entrada tiene tipo Received y el resumen Report received.; las columnas Outcome y Category Code siguen vacías. Al abrir una denuncia, el formulario muestra canal, prioridad, plazos y la barra de estados en Received, y la pestaña Report content con la descripción de los hechos y el resultado.
Los resultados con los que se cierra una denuncia
El campo outcome_state tiene estos valores: Founded, Partially founded, Unfounded, Inadmissible y Forwarded to authority. Lucía los repasa con su asesor para saber qué significa cada uno en su procedimiento interno antes de cerrar denuncias reales.
El paquete de auditoría

Ready, sin contenido: Pack Attachment y el campo de hash están vacíos.En Whistleblowing › Audit Packs Lucía abre un paquete de prueba. El formulario recoge nombre, compañía, periodo, fecha de generación y usuario, y el chatter guarda el mensaje de creación. En el código hay una lista de estados con Generating, Ready y Failed.
Qué revisa Lucía la primera semana
- Que
Responsablesya no está vacía y que cada persona tiene marcada la columnaActive. - Que el canal sigue en
Published. - Que la denuncia de prueba aparece en
Reportscon el filtroOpeny tiene su entrada enLibro Registro. - Que ha decidido
Detect Tor Exit Nodes (opt-in)y si rellenaSentry DSN (optional). - Que el
DKIM Selectorya tiene el valor que le pasaron. - El campo
scan_state, con los valoresQueued,Scanning,DoneyFailed. Si veFaileden algún registro o un aviso que no entiende, lo busca en los mensajes de error del módulo. - El estado de los Audit Packs:
Generating,ReadyoFailed.
Qué aprender del caso
Lucía no improvisa: decide los campos antes de abrir el canal, da de alta a los responsables antes de anunciarlo y prueba el recorrido completo con una denuncia ficticia. También lee cada estado por su nombre literal (Received, Published, Ready) en lugar de suponer lo que significa, y deja por escrito cómo va a distinguir las pruebas de las denuncias reales.
Haz tu propia denuncia de prueba y síguela por Reports, Libro Registro y su formulario antes de anunciar el canal.
Precio, versiones y suscripción
El módulo está publicado en Odoo Apps para 17, 18, 19 y 20, a 9 € por versión de Odoo, pago único, sin IVA. El servicio local de FlexigoTech Cloud cuesta 29 €/mes o 290 €/año sin IVA (Pro: 58 €/mes o 580 €/año); sin suscripción, o con el servicio suspendido, se para lo que da la suscripción y los datos se quedan en tu Odoo.
Con la suscripción, el módulo para las versiones nuevas de Odoo va incluido si lo compraste en flexigotech.com; en el Odoo App Store, cada versión se compra en su ficha.
Cómo te ayuda FlexigoTech
FlexigoTech implanta Odoo 17, 18, 19 y 20 y desarrolla conectores e integraciones a medida. Si estás montando el canal de denuncias dentro de una implantación, podemos revisar contigo los campos, los responsables y la prueba completa antes de abrirlo a la plantilla.
Sigue leyendo
Comprobado en el código del módulo (versión 20.0) y en las fuentes enlazadas
Fuentes
- Código del módulo: flexigo_whistleblowing 20.0 (8dfc517f): models/res_config_settings.py
- Código del módulo: flexigo_whistleblowing 20.0 (8dfc517f): models/wb_audit_pack.py
- Código del módulo: flexigo_whistleblowing 20.0 (8dfc517f): models/wb_channel.py
- Código del módulo: flexigo_whistleblowing 20.0 (8dfc517f): models/wb_report_attachment.py
- Código del módulo: flexigo_whistleblowing 20.0 (8dfc517f): wizards/wb_closure_wizard.py
- apps.odoo.com/apps/modules/20.0/flexigo_whistleblowing
- apps.odoo.com/apps/modules/17.0/flexigo_whistleblowing
- apps.odoo.com/apps/modules/18.0/flexigo_whistleblowing
- apps.odoo.com/apps/modules/19.0/flexigo_whistleblowing
- flexigotech.com/en/services.html
- flexigotech.com/precios.html
