Ir al contenido

Campo de Seguimiento en Odoo: Monitorea Cambios con Seguridad

Aprende cómo funciona el atributo de seguimiento en Odoo, cuándo usarlo y cómo configurarlo en tu modelo de datos
6 de marzo de 2026 por
Campo de Seguimiento en Odoo: Monitorea Cambios con Seguridad
Dasolo
| Sin comentarios aún

Si alguna vez te has preguntado quién cambió un campo en un registro de Odoo y cuándo, la función de seguimiento es tu respuesta.


Odoo te permite monitorear cambios en campos específicos y registrar cada modificación directamente en el chat del registro. Esto proporciona a los equipos una visibilidad completa sobre cómo evoluciona la información empresarial a lo largo del tiempo, sin necesidad de construir un sistema de auditoría separado.

Ya sea que estés configurando campos en Odoo Studio o escribiendo un módulo personalizado en Python, entender cómo funciona el seguimiento de campos es una parte fundamental del trabajo con el modelo de datos de Odoo. Esta guía te llevará a través de todo lo que necesitas saber.

¿Qué es el campo de seguimiento en Odoo?


En Odoo, el seguimiento no es un tipo de campo por sí mismo. Es un atributo que puedes habilitar en campos existentes, como Char, Many2one, Selection, Integer o Date. Cuando el seguimiento está activo en un campo, Odoo registra cada cambio de valor en el chat, mostrando el valor antiguo, el nuevo valor, la fecha y el usuario responsable.

Esto aparece en la interfaz como una nota de registro en el hilo de mensajes del registro. Por ejemplo, en un lead de CRM podrías ver: "Etapa cambiada de Nuevo a Calificado", registrado automáticamente en el momento en que un representante de ventas avanza el trato.

El atributo de seguimiento está disponible en la mayoría de los tipos de campo estándar de Odoo y se puede habilitar a través de Odoo Studio o directamente en código Python como parte de un proyecto de desarrollo personalizado de Odoo.

Qué Datos Almacena

Cada cambio rastreado se almacena como un registro de mail.message vinculado al documento. El mensaje contiene:

  • La etiqueta del campo que cambió
  • El valor anterior (antes del cambio)
  • El nuevo valor (después del cambio)
  • La marca de tiempo de la modificación
  • El usuario que realizó el cambio

Este historial siempre es visible para cualquier persona con acceso de lectura al registro. No requiere ninguna configuración adicional más allá de habilitar el seguimiento en el campo.

Cómo funciona el campo


Para que el seguimiento funcione, el modelo debe utilizar el mixin mail.thread. Este mixin proporciona la infraestructura de mensajería y registro que impulsa el chatter. La mayoría de los modelos de negocio estándar de Odoo, incluidos sale.order, crm.lead, account.move y stock.picking, ya heredan de mail.thread.

Cuando un usuario guarda un registro que tiene campos rastreados cambiados, Odoo compara los valores antiguos y nuevos y escribe un mensaje de registro en el chatter automáticamente. No se requiere ninguna acción adicional por parte del usuario.

Comportamiento Técnico en el ORM de Odoo

Desde un punto de vista técnico, el ORM de Odoo intercepta las escrituras a nivel de modelo. Cuando una llamada a write() modifica un campo rastreado, el marco captura el valor anterior, aplica el cambio y luego crea un registro mail.message que describe la diferencia.

En Python, el rastreo se habilita añadiendo tracking=True a la definición de un campo en tu configuración de campos de Python de Odoo:

state = fields.Selection(
    [('draft', 'Borrador'), ('confirmed', 'Confirmado')],
    tracking=True
)

También puedes usar un número de prioridad del 1 al 10 para controlar el orden de visualización cuando múltiples campos rastreados cambian en la misma operación de guardado. Los números más bajos aparecen primero en el mensaje de registro:

partner_id = fields.Many2one('res.partner', tracking=1)
priority = fields.Selection(tracking=10)

Interacción con Otros Registros

Los cambios rastreados se almacenan directamente en el registro donde reside el campo. No se propagan automáticamente a los registros relacionados. Si deseas rastrear a través de modelos relacionados, necesitas habilitarlo por separado en cada modelo donde sea relevante.

Esto es intencional. El modelo de datos de Odoo mantiene el rastro de auditoría cerca del objeto que se está modificando, lo que facilita la revisión de la historia sin tener que navegar a través de múltiples registros relacionados.

Casos de uso empresarial


Aquí hay cinco ejemplos prácticos donde habilitar el rastreo de campos agrega un valor real en las operaciones diarias.


1. Gestión de CRM y Pipeline de Ventas

Los equipos de ventas necesitan saber cuándo un cliente potencial pasa de una etapa a otra y quién realizó ese cambio. Habilitar el rastreo en el campo stage_id en el módulo CRM proporciona a los gerentes una línea de tiempo completa de cada transición de estado.

Esto ayuda a identificar dónde se estancan los acuerdos, apoya las revisiones de pipeline y facilita la capacitación de los representantes de ventas basándose en datos reales en lugar de en la memoria.


2. Flujos de trabajo de aprobación de compras y facturas

En contabilidad y adquisiciones, el cumplimiento de auditoría a menudo requiere saber quién aprobó un documento y cuándo. Rastrear el campo state en órdenes de compra o facturas de proveedores hace que esta historia esté inmediatamente disponible en el chat sin necesidad de un módulo de auditoría separado.

Esto es especialmente útil en empresas sujetas a controles financieros o requisitos de auditoría interna.


3. Gestión de inventario y existencias

Cuando las cantidades de productos o las ubicaciones de almacenamiento cambian inesperadamente, rastrear campos en movimientos de stock o productos ayuda a los gerentes de almacén a identificar rápidamente la fuente de las discrepancias.

En lugar de hurgar en registros o preguntar a colegas, la respuesta está justo allí en el chat del registro relevante.


4. Gestión de calidad de datos de clientes

Si su equipo actualiza regularmente los registros de clientes, puede rastrear cambios en campos críticos como email, phone o pricelist_id en el modelo de socios. Esto mantiene un historial de cambios en los datos de contacto directamente en el CRM, lo cual es útil para los equipos de servicio al cliente y revisiones de calidad de datos.


5. Registros de RRHH y empleados

Rastrear cambios en campos como posición laboral, departamento o grado salarial en los registros de empleados asegura un historial transparente de cualquier modificación. Esto es importante para el cumplimiento de RRHH en muchas industrias y facilita significativamente la realización de auditorías internas.


Creación o personalización del campo de seguimiento


Hay dos formas principales de habilitar el seguimiento en un campo en Odoo: utilizando Odoo Studio para un enfoque sin código, o escribiendo código Python para una implementación completamente técnica.

Uso de Odoo Studio

Odoo Studio facilita la activación del seguimiento en campos existentes sin necesidad de escribir código. Abre Studio en el modelo relevante, haz clic en el campo que deseas monitorear y busca el interruptor Track Changes en el panel de configuración del campo.

Una vez habilitado, todos los cambios futuros en ese campo aparecerán en el chatter. Este es el enfoque recomendado para administradores y usuarios de negocios que desean agregar seguimiento como parte de su flujo de trabajo de personalización de Odoo, sin involucrar a un desarrollador.

La misma interfaz de Studio se puede utilizar cuando creas campos en Odoo desde cero. Al agregar un nuevo campo personalizado a través de Studio, puedes activar el seguimiento justo durante la creación del campo.

Uso de Python en un Módulo Personalizado

Para los desarrolladores que construyen o extienden módulos, el atributo de seguimiento se agrega directamente a la definición del campo en la clase del modelo. Esta es una práctica estándar en cualquier guía de desarrollador de Odoo o tutorial técnico de Odoo.

El modelo también debe heredar de mail.thread para que el seguimiento tenga algún efecto. Aquí hay un ejemplo mínimo:

from odoo import models, fields

class ProjectTask(models.Model):
    _name = 'project.task'
    _inherit = ['project.task', 'mail.thread']

    x_client_priority = fields.Selection(
        [('low', 'Bajo'), ('medium', 'Medio'), ('high', 'Alto')],
        string='Prioridad del Cliente',
        tracking=True
    )

Este es un patrón típico cuando necesitas extender un modelo existente como parte de un proyecto de desarrollo de Odoo. El campo se comporta como cualquier otra entrada de campo de base de datos de Odoo, pero ahora cada cambio en su valor se registra automáticamente.

Nota Importante sobre Modelos Personalizados

Al crear modelos personalizados completamente nuevos, asegúrate de incluir _inherit = ['mail.thread', 'mail.activity.mixin'] en la definición de tu modelo. Sin esto, el atributo de seguimiento será ignorado silenciosamente y no se registrarán cambios en el chatter.

Este es un punto que confunde a muchos desarrolladores que siguen un tutorial de campos de Odoo por primera vez. El mixin no es opcional si deseas que el seguimiento funcione.

Mejores prácticas


Configurar campos de seguimiento es fácil, pero también es fácil malinterpretarlo. Estas pautas te ayudarán a aprovechar al máximo la función.

Solo Sigue Campos Que Importen

Habilitar el seguimiento en cada campo crea ruido en la conversación y dificulta encontrar un historial relevante. Concéntrate en campos que sean realmente útiles para auditar: estados, etapas, usuarios responsables, fechas clave y valores financieros.

Usa Números de Prioridad para Mayor Claridad

Cuando se rastrean múltiples campos en el mismo modelo, utiliza números de prioridad del 1 al 10 para controlar cómo se agrupan los cambios en el mensaje de registro. Esto mejora la legibilidad en la conversación, especialmente en modelos con muchos campos rastreados.

Combina con Derechos de Acceso

El seguimiento es más útil cuando se combina con reglas de registro adecuadas y controles de acceso. Hay poco valor en mantener un rastro de auditoría si todos en el sistema pueden modificarlo libremente. Asegura tu modelo de datos antes de confiar en la conversación como un mecanismo de auditoría.

Documenta Tus Campos Rastreables

Mantén un registro claro de qué campos tienen el seguimiento habilitado, especialmente en proyectos compartidos o de múltiples desarrolladores. Esto evita confusiones durante las revisiones de código y previene el doble seguimiento accidental después de las actualizaciones de módulos.

Prueba Antes de Ir en Vivo

Siempre verifica el comportamiento del seguimiento en un entorno de pruebas antes de implementar en producción. Algunos tipos de campos, particularmente los campos computados o relacionados, pueden comportarse de manera diferente a los campos almacenados estándar cuando se involucra el seguimiento.

Errores comunes


Estos son los errores que más a menudo surgen al trabajar con el seguimiento de campos en Odoo.

Olvidar heredar de mail.thread

Este es el problema más frecuente. Si un modelo personalizado no hereda de mail.thread, el atributo de seguimiento será ignorado silenciosamente. No se genera ningún error y no aparecerán mensajes de registro en el chatter. Siempre verifica la cadena de herencia del modelo cuando el seguimiento no parece funcionar.

Seguimiento de Campos Computados No Almacenados

Los campos computados pueden ser rastreados, pero solo si se almacenan utilizando store=True. Un campo computado no almacenado no tiene un valor persistente en los campos de la base de datos de Odoo, por lo que no hay nada que comparar antes y después de un cambio. Si intentas rastrear un campo computado no almacenado, el seguimiento no tendrá efecto silenciosamente.

Habilitar Seguimiento en Demasiados Campos

Es tentador habilitar el seguimiento en todas partes para maximizar la transparencia. En la práctica, esto desordena el chatter y hace que sea realmente más difícil encontrar cambios significativos. Sé selectivo y concéntrate en campos con un verdadero valor de auditoría u operativo.

Esperar Seguimiento en Operaciones SQL Directas o en Masa

El seguimiento se activa a través del ORM de Odoo cuando se modifican registros utilizando el método estándar write(). Las actualizaciones SQL directas, las importaciones masivas que evitan el ORM o ciertas llamadas a la API de bajo nivel no activarán el seguimiento. Si utilizas la API XML-RPC o operaciones por lotes, verifica que las escrituras pasen por la capa del ORM.

Conflictos Entre Definiciones de Studio y Python

Si un campo fue creado y configurado originalmente en Odoo Studio con el seguimiento habilitado, ten cuidado al modificar también el mismo campo en un módulo de Python. Las definiciones en conflicto entre Studio y el código pueden llevar a un comportamiento inesperado durante las actualizaciones del módulo o de la base de datos.

Preguntas frecuentes


¿Puedo rastrear un campo en cualquier modelo en Odoo?

Solo los modelos que heredan de mail.thread admiten el seguimiento de campos. La mayoría de los modelos de negocio estándar en Odoo ya incluyen este mixin, pero los modelos personalizados deben declararlo explícitamente en su definición de clase.

¿Afectará el seguimiento al rendimiento?

El impacto es mínimo para la mayoría de los casos de uso. Cada cambio rastreado crea un registro de mail.message, lo que añade un pequeño sobrecosto a la operación de escritura. Para modelos transaccionales de muy alto volumen, ten cuidado con cuántos campos rastreas para evitar crear un número excesivo de registros de log.

¿Puedo desactivar el seguimiento en un campo sin perder el historial existente?

Sí. Desactivar el seguimiento detiene el registro de nuevos cambios, pero todos los mensajes de log existentes en el chat siguen siendo accesibles. El historial ya capturado se preserva y no será eliminado.

¿Funciona el seguimiento en campos Many2many?

El seguimiento de campos Many2many es compatible en Odoo. El chat muestra qué registros fueron añadidos o eliminados de la relación, en lugar de mostrar un valor antes y después. Funciona, pero ten en cuenta que el formato de visualización es diferente al de los campos de valor simples.

¿Puedo usar el seguimiento sin Odoo Studio?

Absolutamente. El parámetro tracking es un atributo estándar de campo de Python en el marco de Odoo. Puedes habilitarlo en cualquier módulo personalizado sin usar Studio en absoluto. Studio simplemente proporciona una interfaz visual sin código para la misma funcionalidad subyacente. Esta es una parte estándar de cualquier tutorial de campo de Odoo o guía para desarrolladores de Odoo.

Conclusión


El atributo de seguimiento es una de esas características de Odoo que añade mucho valor sin requerir mucha configuración. Al habilitarlo en los campos correctos, le das a tu equipo una pista de auditoría confiable, reduces disputas sobre quién cambió qué y construyes una base para una mejor gobernanza de datos en toda tu organización.

Ya sea que lo configures a través de Odoo Studio para una configuración rápida sin código, o lo implementes a través de un módulo de Python personalizado como parte de un proyecto más amplio de desarrollo o personalización de Odoo, el resultado es el mismo: plena visibilidad sobre cómo cambian los datos de tu negocio con el tiempo.

La clave es saber dónde aplicarlo. Concéntrate en los campos que impulsan decisiones, aprobaciones y responsabilidad en tus flujos de trabajo, y obtendrás la mayor parte del valor con muy poco esfuerzo.

En Dasolo, ayudamos a las empresas a implementar, personalizar y optimizar Odoo para que se ajuste a sus procesos comerciales específicos. Ya sea que necesites ayuda para diseñar tu modelo de datos, habilitar el seguimiento de campos en tus flujos de trabajo, o construir módulos personalizados desde cero, nuestro equipo está aquí para apoyarte.

Contáctanos hoy para discutir tu implementación de Odoo. Contáctanos y descubramos juntos el mejor enfoque para tu proyecto.

Campo de Seguimiento en Odoo: Monitorea Cambios con Seguridad
Dasolo 6 de marzo de 2026
Compartir esta publicación
Iniciar sesión para dejar un comentario