Saltar al contenido

Caso · Servicios de apoyo jurídico

NationwideLegal.

NationwideLegal lleva su operación comercial en un CRM que Polargate construyó sobre Odoo 18 Enterprise y del que sigue llevando la dirección técnica: un único módulo propio, cinco modelos nuevos, los permisos rehechos alrededor de cómo vende el equipo y una verificación contra producción después de cada despliegue.

Un hombre mayor señala una página de un grueso archivador de anillas junto a una joven, en una sala de lectura en penumbra con estanterías de archivadores

De un vistazo

Cliente
NationwideLegal
Sector
Servicios de apoyo jurídico
Año
2026
Servicios
BuildCare
Web publicada
nationwidelegal.com
Stack
Odoo

01 · NationwideLegal

El reto.

El CRM tenía que encajar con un equipo comercial, no con un organigrama. De serie, Odoo trae un rol de administrador muy amplio y poca cosa entre eso y un usuario normal, así que NationwideLegal quería un control más fino: comerciales que vean todo el pipeline sin poder cambiarlo todo, personas que den de alta a un compañero sin ser administradoras y un calendario en el que cada uno vea sus propias actividades. El equipo quería además el correo transaccional saliendo desde una cuenta autenticada propia, pantallas de alta parecidas a la herramienta de la que venía y actualizaciones que se puedan deshacer sin perder datos.

Por ejemplo: 6 cabeceras de seguridad habituales que faltaban antes del trabajo. Empresa de servicios B2B, Europa

02 · NationwideLegal

Lo que construimos.

Un único módulo propio sobre Odoo 18 Enterprise, sin depender de nada más allá de módulos Community: cinco modelos nuevos, cada uno con su fichero de permisos completo y sin huecos, más extensiones de los modelos nativos de oportunidades, contactos, actividades y etapas. El modelo de acceso se rehízo como cuatro controles separados por usuario en lugar de un rol monolítico. Un grupo propio da de alta usuarios con una barrera dentro del propio modelo, de forma que nunca puede crear ni tocar a un administrador. El calendario se resolvió fuera de las reglas de registro, porque en ese modelo la lectura no se gobierna así. El correo se configuró en la capa de autenticación, no en el ERP. Y la cadena de entrega lleva sus propias reglas: la suite de tests corre en cada build de desarrollo y de preproducción, el paso a producción lo dispara una persona, y cada despliegue termina con comprobaciones de solo lectura contra el sistema vivo.

Un portátil en la mesa de un despacho de abogados una tarde de lluvia, con una pantalla de gestión de expedientes: asuntos activos, próximos plazos y horas facturables, junto a un café y unas carpetas.
Escena recreada

Por ejemplo: 2 idiomas publicados en la web, español e inglés. Global Dynamic Security Group

03 · NationwideLegal

El resultado.

Quince entregables completados en cinco semanas y consolidados en un documento de entrega. El módulo pasó de no tener tests propios a 99 en verde, con los casos negativos verificados también. Cada comercial ve su calendario y el administrador los ve todos. Se pueden dar de alta usuarios sin repartir permisos de administrador, verificado en navegador con una cuenta que solo tiene ese permiso. El correo transaccional sale desde el CRM. Las migraciones son reversibles porque la vuelta atrás se ensayó: 132 filas y 56 relaciones sobre 200 registros volvieron intactas. Del merge a la versión viva en producción pasan de diez a quince minutos, y cada despliegue termina con las mismas comprobaciones: en la última, los campos nuevos se leyeron sobre 400 registros reales en 313 ms.

tests automáticos escritos para el módulo, partiendo de cero
99
en leer los campos nuevos sobre 400 registros reales de producción
313 ms

Por ejemplo: 11 módulos entregados en la Fase 1. Elite Smart Build

04 · NationwideLegal

Cómo lo hicimos.

Por ejemplo: 100 / 100 / 100 Lighthouse móvil: accesibilidad, buenas prácticas, SEO. KD.tech

El contexto

El cliente es NationwideLegal. Su operación comercial vive en un CRM: oportunidades, las firmas a las que pertenecen, los contactos de cada firma y las direcciones que hay detrás. Polargate construyó ese CRM sobre Odoo 18 Enterprise y desde entonces lleva su dirección técnica.

Todo lo hecho a medida vive en un único módulo propio. No depende de nada más allá de módulos Community, así que no hay ningún complemento de terceros en el camino crítico. El módulo aporta cinco modelos nuevos, cada uno con su fichero de permisos completo y sin huecos, y extiende los modelos nativos de oportunidades, contactos, actividades y etapas.

La cadena de entrega es deliberadamente aburrida: repositorio privado, proyecto gestionado de Odoo y la producción del cliente apuntando al mismo entorno. La plataforma corre la suite de tests en cada build de desarrollo y de preproducción. El paso a producción nunca es automático, lo dispara una persona a mano. Del merge a la versión viva en producción pasan de diez a quince minutos.

Permisos montados sobre cómo vende el equipo

Rehicimos el modelo de acceso alrededor de cómo trabajan los comerciales, con cuatro controles separados por usuario en lugar de un único rol monolítico. A un usuario se le puede dar uno y no los otros, que es lo que necesita un equipo comercial y lo que un rol único no sabe expresar.

El calendario

Cada comercial ve sus propias actividades. El administrador las ve y las gestiona todas. Llegar ahí no fue una regla de registro. En Odoo, la lectura de actividades no se gobierna con reglas de registro, porque ese modelo trae su propia búsqueda y su propia comprobación de acceso nativas, así que hubo que resolverlo por otra vía. Se verificó con la cuenta de un comercial.

Dar de alta usuarios sin ser administrador

En Odoo no existe de serie un rol intermedio que pueda crear usuarios sin ser administrador. Lo verificamos en un entorno local: el único grupo nativo con ese permiso se auto eleva a administrador en una sola escritura. Así que construimos un grupo propio, con su lista de control de acceso y una barrera en el propio modelo. No puede dejar a nadie con grupos de administrador, no puede modificar a un usuario que ya lo es y no puede escribir la contraseña de otro. Verificado en navegador con una cuenta que solo tiene ese permiso.

Entrada de datos parecida a la herramienta de la que venían

Empresa, dirección y contacto se meten en una sola página, como funcionaba la herramienta que el equipo usaba antes. La detección de duplicados corre sobre un nombre normalizado e indexado que ignora la puntuación y los sufijos legales: avisa y ofrece asociar el registro al que ya existe en vez de crear un segundo. La lista de sufijos hubo que podarla, porque algunas de sus palabras juntaban en uno solo a dos despachos realmente distintos.

Correo transaccional

El correo sale por la capa de autenticación: autenticación SMTP habilitada y la cuenta de envío configurada, de modo que cada mensaje transaccional sale desde el CRM.

Actualizaciones que se pueden deshacer

No dimos por buena la clasificación de riesgo de una migración: la ensayamos en contenedor, de forma reproducible. El hallazgo: al quitar un campo del modelo, la plataforma no borra la tabla ni las columnas, las deja huérfanas con el dato dentro. Las filas sembradas sobrevivieron al upgrade y la vuelta atrás devolvió el código y el acceso al dato, 132 filas y 56 relaciones sobre 200 registros. La migración es reversible, y lo es porque se probó, no porque lo diga la documentación.

Verificación contra producción, después de cada despliegue

Hay una receta escrita y se ejecuta después de cada despliegue. Leer la versión viva del módulo. Comprobar la vista contra la definición combinada, no contra la de herencia. Confirmar que los campos nuevos existen. Cronometrar su lectura sobre registros reales: 400 oportunidades respondieron en 313 ms, que es la comprobación de que no se ha colado ni un bucle ni una consulta pesada. Descargar el paquete de assets y validarlo, porque un paquete roto no se ve hasta que un usuario abre la página. La disciplina es dura y simple: en producción se mira y no se toca.

Las auditorías funcionan igual. La primera fase consiste en ejecutar el escenario contra un entorno real, suplantando al usuario afectado y anotando el estado antes y después de cada escritura. Validar un permiso con una cuenta de administrador no prueba nada, porque el bypass la exime. Un test que solo comprueba el texto de un atributo tampoco prueba nada. Una de esas auditorías movió 41 agentes y 2,3 millones de tokens, con dos escépticos independientes rebatiendo cada hallazgo antes de darlo por bueno.

Dirección tecnológica continuada

Quince entregables completados en cinco semanas y consolidados en un documento de entrega. El módulo pasó de no tener tests propios a 99 en verde, con los casos negativos verificados también, porque un test de permisos que pasa cuando debería fallar es peor que no tener test.

El encargo funciona con una regla sencilla: el alcance y la prioridad se acuerdan antes de entrar en la lista, y Polargate emite el documento de referencia semanal.

FAQ

Preguntas sobre este proyecto.

¿Se puede personalizar Odoo sin perder la posibilidad de volver atrás?
Sí, si la vuelta atrás se ensaya en lugar de darse por supuesta. Antes de ejecutar una migración en este CRM, Polargate la reprodujo en contenedor: registros sembrados, upgrade y vuelta atrás. Quitar un campo del modelo no borra la tabla ni las columnas, Odoo las deja huérfanas con el dato dentro, así que 132 filas y 56 relaciones sobre 200 registros volvieron intactas al revertir el código. El ensayo es lo que convierte una clasificación de riesgo en algo sobre lo que decidir.
¿Se pueden dar permisos distintos a los comerciales en Odoo sin hacerlos administradores?
Sí, con trabajo. Odoo trae un rol de administrador muy amplio y poca cosa entre eso y un usuario normal, y el único grupo nativo que puede crear usuarios se auto eleva a administrador en una sola escritura, algo que Polargate verificó en un entorno local. En este CRM el modelo de acceso se rehízo como cuatro controles separados por usuario, más un grupo propio que da de alta usuarios pero no puede dejar a nadie con grupos de administrador, no puede modificar a un usuario que ya lo es y no puede escribir la contraseña de otro. Se verificó en navegador con una cuenta que no tiene ningún otro permiso.

Por ejemplo: 536/536 claves de traducción presentes en cada uno de los tres idiomas. Estepona Golf

Siguiente proyecto

Globalia.

Viajes y turismo

La plataforma web corporativa de Globalia

Por ejemplo: 22 rutas públicas prerrenderizadas como HTML estático. Hotel Marien

Empezar

Cuéntanos qué quieres construir.

Webs, apps, sistemas a medida e IA para empresas que los necesitan en producción en semanas. Rellena el formulario o reserva una llamada de 30 minutos: un ingeniero senior responde en 48 horas laborables con una primera lectura de alcance, plazo y precio.

¿Qué necesitas?
Presupuesto
Plazo

Al menos diez caracteres.

Respuesta por escrito en 48 horas laborables. Sin boletines ni correos automáticos.

¿Prefieres el encargo completo?

Primer paso

Discovery Sprint

Dos semanas para cerrar alcance, arquitectura y precio antes de construir nada.

Sin lista de precios. Recibes un presupuesto privado, por escrito, tras una llamada corta.

Después, para construir, siempre a precio cerrado

¿Aún no es el momento?

Estudio digital nativo en IA para empresas medianas

POLARGATE, S.L. · CIF B24895005
Calle Electrónica 6, 28027 Madrid, España