Ir al contenido

Modelo crm.lead: Entender la arquitectura de Leads y Opportunities en Odoo

Guía completa del modelo de oportunidades (CRM Lead) en Odoo para desarrolladores y consultores funcionales
11 de marzo de 2026 por
Modelo crm.lead: Entender la arquitectura de Leads y Opportunities en Odoo
Dasolo
| Sin comentarios aún

Introducción


En Odoo, los modelos son la plantilla que define cómo se guarda la información en la base de datos. Todo dato de negocio —pedidos, facturas, contactos o leads— tiene su representación en un modelo concreto.


Conocer los modelos de Odoo es imprescindible tanto para desarrolladores como para consultores funcionales. Son la columna vertebral de la arquitectura de datos: definen campos, relaciones y la lógica de negocio que gobierna cómo se comportan los registros.


Este artículo se centra en el modelo crm.lead, que alimenta el embudo comercial dentro del módulo CRM. Si vas a crear módulos a medida, conectar sistemas externos o diseñar procesos de ventas, te cruzarás con él con frecuencia.

Qué es el modelo crm.lead


El modelo crm.lead sirve para registrar leads y oportunidades. Es el contenedor central del pipeline comercial: desde el primer contacto hasta el cierre, la información del proceso comercial se mantiene aquí.


El CRM de Odoo y módulos relacionados lo usan directamente. Formularios web, acciones de marketing o procesos de venta lo crean y consultan: cuando un visitante rellena un formulario, cuando un comercial genera una oportunidad o cuando se convierte un lead en cliente, se actúa sobre crm.lead.


Odoo permite ampliar el modelo sin tocar el núcleo mediante herencia de modelos. El módulo base del CRM define la estructura mínima y otros módulos (por ejemplo, enriquecimiento de datos o integración web) añaden campos y comportamientos sin duplicar lógica.

Campos clave del modelo


A continuación tienes los campos más relevantes del crm.lead. Comprenderlos te facilitará la gestión, el análisis y la integración de leads y oportunidades.


1. name

Tipo: Char. Guarda el título del lead u oportunidad y es la etiqueta principal en listas o kanban. Suele describir la fuente o la oportunidad: por ejemplo, "Consulta web" o "Oferta clave — Cliente X".


2. contact_name

Tipo: Char. Nombre del contacto cuando no hay un partner vinculado. Al convertir un lead, este valor suele trasladarse al registro de res.partner creado o asociado.


3. email_from

Tipo: Char. Correo electrónico principal del lead. Se usa para comunicaciones previas a la conversión y como criterio de identificación y deduplicación.


4. phone

Tipo: Char. Teléfono principal del contacto. Visible en el formulario del lead y útil para registrar llamadas y seguimientos.


5. mobile

Tipo: Char. Número de móvil. Se emplea para SMS o contactos urgentes cuando difiere del teléfono fijo.


6. partner_id

Tipo: Many2one (res.partner). Relación con el contacto o la empresa cuando el lead está cualificado o convertido. Antes de la conversión suele estar vacío; después apunta al partner creado o enlazado.


7. user_id

Tipo: Many2one (res.users). Comercial responsable. Sirve para asignaciones, métricas y planificación de actividades; alimenta vistas como "Mis oportunidades".


8. team_id

Tipo: Many2one (crm.team). Equipo de ventas al que pertenece el lead; permite rotación automática, reglas de reparto y reporting por equipo.


9. stage_id

Tipo: Many2one (crm.stage). Etapa actual del embudo (ej.: Nuevo, Cualificado, Propuesta, Negociación, Ganado, Perdido). El cambio de etapa dispara automatizaciones e impacta en informes.


10. type

Tipo: Selection. Indica si el registro es Lead o Oportunidad. Los leads suelen ser contactos iniciales; las oportunidades, oportunidades cualificadas con previsión de ingreso. Afecta a vistas y etapas disponibles.


11. expected_revenue

Tipo: Float. Ingreso esperado si se gana la oportunidad. Se usa en el cálculo del valor del pipeline y en previsiones; a menudo se calcula combinando importe y probabilidad.


12. probability

Tipo: Float. Probabilidad de cierre en porcentaje (0–100). Sirve para ponderar el pipeline; puede fijarse manualmente o derivarse según la etapa.


13. company_id

Tipo: Many2one (res.company). En entornos multiempresa, indica la compañía propietaria del lead. Afecta a visibilidad, moneda y reglas de contabilidad.


14. description

Tipo: Text. Notas detalladas sobre el lead u oportunidad: resúmenes de reuniones, contexto y cualquier información que el equipo comercial necesite conservar.


15. create_date

Tipo: Datetime. Fecha y hora de creación del registro. Generada automáticamente; útil para medir antigüedad del lead y tiempos de respuesta.


16. write_date

Tipo: Datetime. Fecha y hora de la última modificación. También automática; permite saber cuándo se actualizó por última vez el lead.


17. date_open

Tipo: Datetime. Momento en que el lead fue asignado por primera vez a un usuario (cuando user_id se rellena). Sirve para medir el tiempo hasta el primer contacto.


18. date_closed

Tipo: Datetime. Fecha de cierre del lead (ganado o perdido). Se establece al mover el registro a una etapa cerrada y se usa en el análisis del ciclo de ventas.


19. date_deadline

Tipo: Date. Fecha prevista de cierre. Se utiliza para planificación de actividades y previsiones temporales del pipeline.


20. active

Tipo: Boolean. Indicador de archivo: cuando es False, el registro está archivado y no aparece en vistas por defecto. Suele usarse en lugar de borrar leads.


21. street, street2, city, zip

Tipo: Char. Campos de dirección. Se rellenan si hay dirección antes de la conversión y se copian al partner cuando se convierte el lead.


22. country_id

Tipo: Many2one (res.country). País del contacto. Importante para informes regionales y formato de direcciones; también para segmentación territorial.


23. state_id

Tipo: Many2one (res.country.state). Provincia o región. Su dominio suele depender del país seleccionado; se usa para segmentar territorios.


24. source_id

Tipo: Many2one (utm.source). Fuente del lead: web, recomendación, campaña, etc. Es clave para atribuir marketing y entender de dónde vienen los contactos.


25. campaign_id

Tipo: Many2one (utm.campaign). Campaña de marketing asociada. Permite calcular ROI por campaña cuando los leads proceden de emails o anuncios.


26. activity_ids

Tipo: One2many (mail.activity). Actividades programadas: llamadas, reuniones y tareas vinculadas al lead. Alimenta el widget de actividades y los recordatorios.


27. color

Tipo: Integer. Índice de color para vistas kanban y listas. Útil para destacar prioridad, origen o cualquier criterio visual que facilite la gestión.


28. message_ids

Tipo: One2many (mail.message). El chatter del registro: notas internas, correos y el historial de comunicaciones para mantener contexto completo.

Cómo se utiliza este modelo en los flujos de negocio


1. Captación de leads desde la web

Cuando alguien rellena un formulario en tu sitio web, se crea automáticamente un crm.lead con los datos del formulario (email, nombre, comentario). Ese registro se incorpora al pipeline para que el equipo comercial realice el seguimiento.


2. Cualificación y conversión de leads

Los comerciales avanzan leads por las etapas; al cualificar uno, cambian su tipo a Oportunidad y fijan previsiones como expected_revenue. Al cerrar favorablemente, Odoo genera o enlaza el res.partner y puede crear un pedido de venta.


3. Informes del pipeline comercial

Los responsables usan los datos de crm.lead para medir el valor del pipeline: expected_revenue, probability y stage permiten calcular pipelines ponderados. Los filtros por user_id y team_id muestran rendimiento por comercial o equipo.


4. Atribución de marketing

Los campos source_id y campaign_id vinculan leads a acciones de marketing. Cuando vienen de campañas o anuncios, los parámetros UTM suelen poblar estas referencias para analizar la eficacia de cada iniciativa.


5. Gestión de actividades y seguimiento

Los comerciales programan llamadas, reuniones y tareas en activity_ids. La fecha límite de la actividad aparece en vistas y recordatorios para garantizar el seguimiento oportuno.

Cómo amplían los desarrolladores este modelo


Los desarrolladores amplían crm.lead siguiendo patrones establecidos, siendo la herencia de modelos la técnica principal.


Herencia de modelos

Utiliza _inherit = 'crm.lead' para añadir o modificar comportamiento. Así puedes declarar campos nuevos, redefinir métodos o añadir restricciones sin tocar el código original, facilitando futuras actualizaciones.


Añadir campos

Declara nuevos campos en el modelo heredado usando el tipo adecuado (Char, Many2one, Boolean, Integer, Text, Selection). Ejemplos habituales: fuente personalizada, interés de producto o sector. Valora campos dependientes de compañía en entornos multiempresa.


Extensiones en Python

Sobrescribe create, write o action_convert para introducir lógica adicional, siempre llamando a super() cuando corresponda. Usa los decoradores de Odoo (@api.depends, @api.onchange) para campos computados y comportamiento en la interfaz. Ten cuidado con la lógica de cambio de etapa y conversión.


Odoo Studio

Odoo Studio permite añadir campos y ajustar pantallas sin programar. Es útil para cambios rápidos, pero para lógica compleja o mantenibilidad a largo plazo conviene crear módulos personalizados.

Buenas prácticas


  • Configura las etapas para que reflejen tu proceso comercial. Si lo necesitas, separa secuencias de etapas para leads y para oportunidades.
  • Captura los parámetros UTM en los formularios web para rellenar source_id y campaign_id y así tener atribución de marketing desde el origen.
  • Usa team_id para reparto por rondas o territorios. Define las reglas de asignación en crm.team para automatizar la distribución.
  • Para integraciones API, emplea XML-RPC o JSON-RPC: crm.lead está expuesto y suele ser práctico mapear IDs externos a un campo propio (por ejemplo, ref) para sincronizaciones.
  • Para campos personalizados, usa prefijos (como x_ o el prefijo de tu módulo) y evita nombres genéricos que puedan colisionar con futuras versiones de Odoo.

Errores habituales


  • Crear leads duplicados en lugar de buscar por email_from. Antes de crear, normaliza y comprueba duplicados (por ejemplo con email_normalized) para evitar registros repetidos.
  • Confundir type (Lead vs Opportunity) con stage_id. El tipo determina la naturaleza del registro; la etapa indica su posición en el embudo. Ambos afectan a informes y automatizaciones.
  • No asignar user_id o team_id. Los leads sin responsable tienden a perderse; configura reglas de asignación automáticas o procesos manuales claros.
  • Sobrescribir la lógica de conversión sin llamar a super(). action_convert realiza pasos clave; amplíala en lugar de sustituirla para no romper flujos estándar.
  • Añadir campos obligatorios sin proporcionar valores por defecto. Al actualizar módulos existentes, los registros previos pueden fallar validaciones si faltan datos requeridos.

Conclusión


El modelo crm.lead es el núcleo del CRM en Odoo: contiene leads y oportunidades y alimenta el pipeline comercial. Comprender sus campos y cómo se extiende te permitirá configurar, personalizar e integrar Odoo con seguridad.


Tanto si eres consultor funcional que modela procesos de venta como desarrollador que crea módulos CRM, dominar crm.lead te ahorrará tiempo y reducirá errores en proyectos.

¿Necesitas ayuda con tu implantación de Odoo?


Dasolo acompaña a empresas en la implantación, personalización y optimización de Odoo. Nos especializamos en integraciones API y desarrollo a medida, con experiencia profunda en la arquitectura de datos y modelos como crm.lead.


Si necesitas ayuda con la implantación de Odoo, el desarrollo de módulos CRM a medida o integraciones, podemos ayudarte a planificar e implementar la solución. Solicita una demo para comentar tu proyecto.

Modelo crm.lead: Entender la arquitectura de Leads y Opportunities en Odoo
Dasolo 11 de marzo de 2026
Compartir esta publicación
Iniciar sesión para dejar un comentario