Naar de inhoud

Case · Juridische ondersteunende dienstverlening

NationwideLegal.

NationwideLegal draait haar commerciële operatie op een CRM dat Polargate bouwde op Odoo 18 Enterprise en waarvan het nog steeds de technische regie voert: één eigen module, vijf nieuwe modellen, rechten opnieuw opgebouwd rond hoe het team verkoopt, en na elke deploy een verificatie tegen productie.

Een oudere man wijst een pagina aan in een dikke ringmap naast een jonge vrouw, in een schemerige leeszaal vol kasten met mappen en een laptop met een tabel

In het kort

Klant
NationwideLegal
Sector
Juridische ondersteunende dienstverlening
Jaar
2026
Diensten
BuildCare
Stack
Odoo

01 · NationwideLegal

De uitdaging.

Het CRM moest passen bij een verkoopteam, niet bij een organigram. Standaard levert Odoo één brede beheerdersrol en bijna niets tussen die rol en een gewone gebruiker, dus NationwideLegal wilde fijnere controle: verkopers die de hele pijplijn zien zonder alles te kunnen wijzigen, mensen die een collega kunnen toevoegen zonder beheerdersrechten, en een agenda waarin ieder de eigen activiteiten ziet. Het team wilde daarnaast transactionele e-mail vanaf een eigen geauthenticeerd account, invoerschermen die aanvoelen als de tool waar het vandaan kwam, en upgrades die terug te draaien zijn zonder dataverlies.

Bijvoorbeeld: 6 gebruikelijke beveiligingsheaders die vooraf ontbraken. B2B-dienstverlener, Europa

02 · NationwideLegal

Wat we bouwden.

Eén eigen module op Odoo 18 Enterprise, zonder afhankelijkheden buiten Community-modules: vijf nieuwe modellen, elk met een volledig rechtenbestand zonder gaten, plus uitbreidingen van de standaardmodellen voor verkoopkansen, contactpersonen, activiteiten en fasen. Het rechtenmodel is herbouwd als vier losse instellingen per gebruiker in plaats van één monolithische rol. Een eigen groep maakt gebruikers aan met een barrière in het model zelf, zodat die nooit een beheerder kan aanmaken of aanraken. De agenda is buiten de recordregels om opgelost, want op dat model bepalen recordregels het lezen niet. De e-mail is ingericht in de authenticatielaag, niet in het ERP. En de deliveryketen heeft eigen regels: de testsuite draait bij elke development- en staging-build, de stap naar productie zet een mens, en elke deploy eindigt met alleen-lezen controles tegen het live systeem.

Een laptop op een bureau in een advocatenkantoor op een regenachtige middag, met een scherm voor dossierbeheer met lopende zaken, komende deadlines en declarabele uren, naast een koffie en een stapel dossiers.
Nagespeelde scène

Bijvoorbeeld: 2 talen live op de site, Spaans en Engels. Global Dynamic Security Group

03 · NationwideLegal

Het resultaat.

Vijftien deliverables afgerond in vijf weken, samengebracht in een overdrachtsdocument. De module ging van geen eigen tests naar 99 groene, met ook de negatieve gevallen geverifieerd. Elke verkoper ziet de eigen agenda, de beheerder ziet ze allemaal. Gebruikers kunnen worden aangemaakt zonder beheerdersrechten uit te delen, geverifieerd in de browser met een account dat alleen dat recht heeft. De transactionele e-mail wordt vanuit het CRM verstuurd. Migraties zijn omkeerbaar omdat de rollback is gerepeteerd: 132 rijen en 56 relaties over 200 records kwamen intact terug. Van merge tot de live versie in productie duurt tien tot vijftien minuten, en elke deploy eindigt met dezelfde controles: bij de laatste werden de nieuwe velden over 400 echte records in 313 ms gelezen.

geautomatiseerde tests voor de module, vanaf nul
99
om de nieuwe velden over 400 echte productierecords te lezen
313 ms

Bijvoorbeeld: 11 modules opgeleverd in fase 1. Elite Smart Build

04 · NationwideLegal

Hoe we het deden.

Bijvoorbeeld: 100 / 100 / 100 Lighthouse mobiel: toegankelijkheid, best practices, SEO. KD.tech

De context

De klant is NationwideLegal. De commerciële operatie draait op een CRM: verkoopkansen, de firma's waar ze bij horen, de contactpersonen binnen elke firma en de adressen daarachter. Polargate bouwde dat CRM op Odoo 18 Enterprise en voert sindsdien de technische regie.

Alles wat op maat is gemaakt, zit in één eigen module. Die is nergens van afhankelijk buiten Community-modules, dus er staat geen addon van derden in het kritieke pad. De module voegt vijf nieuwe modellen toe, elk met een volledig rechtenbestand zonder gaten, en breidt de standaardmodellen voor verkoopkansen, contactpersonen, activiteiten en fasen uit.

De deliveryketen is bewust saai: een private repository, een beheerd Odoo-project en de productieomgeving van de klant die naar diezelfde omgeving wijst. Het platform draait de testsuite bij elke development- en staging-build. Naar productie gaat het nooit vanzelf, een mens zet die stap met de hand. Van merge tot de live versie in productie duurt tien tot vijftien minuten.

Rechten gebouwd rond hoe het team echt verkoopt

We hebben het rechtenmodel opnieuw opgebouwd rond de manier waarop de verkopers echt werken, met vier losse instellingen per gebruiker in plaats van één monolithische rol. Een gebruiker kan de ene wel krijgen en de andere niet, en dat is precies wat een verkoopteam nodig heeft en wat één rol niet kan uitdrukken.

De agenda

Elke verkoper ziet de eigen activiteiten, de beheerder ziet en beheert ze allemaal. Daar kwamen we niet met een recordregel. In Odoo wordt het lezen van activiteiten niet door recordregels bepaald, omdat dat model een eigen native zoek- en toegangscontrole meebrengt, dus het moest anders. Geverifieerd met het account van een verkoper.

Gebruikers aanmaken zonder beheerder te zijn

Odoo kent standaard geen tussenrol die gebruikers kan aanmaken zonder beheerder te zijn. Dat hebben we in een lokale omgeving geverifieerd: de enige standaardgroep met dat recht tilt zichzelf in één schrijfactie op tot beheerder. Daarom bouwden we een eigen groep, met een eigen toegangslijst en een barrière in het model zelf. Die kan niemand met beheerdersgroepen achterlaten, kan een gebruiker die dat al is niet wijzigen en kan het wachtwoord van een ander niet schrijven. Geverifieerd in de browser met een account dat alleen dat recht heeft.

Invoer die lijkt op het gereedschap waar het team vandaan kwam

Bedrijf, adres en contactpersoon gaan er op één pagina in, zoals in de tool die het team eerder gebruikte. De duplicaatdetectie draait op een genormaliseerde, geïndexeerde naam die leestekens en juridische achtervoegsels negeert: hij waarschuwt en biedt aan het record aan het bestaande te koppelen in plaats van een tweede aan te maken. De lijst met achtervoegsels moest gesnoeid worden, want een paar woorden erin trokken twee echt verschillende firma's samen tot één.

Transactionele e-mail

De e-mail loopt via de authenticatielaag: SMTP-authenticatie aan en het verzendaccount ingesteld, zodat elk transactioneel bericht vanuit het CRM vertrekt.

Upgrades die je ongedaan kunt maken

We namen de risico-inschatting van een migratie niet op gezag aan, we repeteerden hem reproduceerbaar in een container. De bevinding: als een veld uit het model verdwijnt, verwijdert het platform de tabel en de kolommen niet, het laat ze verweesd achter met de data er nog in. De geplante rijen overleefden de upgrade en de rollback gaf zowel de code als de toegang tot de data terug, 132 rijen en 56 relaties over 200 records. De migratie is omkeerbaar, en dat is ze omdat het getest is, niet omdat de documentatie het zegt.

Verificatie tegen productie, na elke deploy

Er is een geschreven recept en het draait na elke deploy. Lees de live versie van de module. Controleer de weergave tegen de gecombineerde definitie, niet tegen de overerving. Bevestig dat de nieuwe velden bestaan. Klok het lezen ervan over echte records: 400 verkoopkansen kwamen terug in 313 ms, en dat is de controle dat er geen lus en geen zware query is binnengeslopen. Download de assetsbundel en valideer die, want een kapotte bundel zie je pas als een gebruiker de pagina opent. De discipline is hard en simpel: in productie kijk je, je raakt niets aan.

Audits werken net zo. De eerste fase is het scenario draaien tegen een echte omgeving in de huid van de betrokken gebruiker, met de staat voor en na elke schrijfactie erbij. Een recht valideren met een beheerdersaccount bewijst niets, want de bypass stelt dat account vrij. Een test die alleen de tekst van een attribuut controleert bewijst evenmin iets. Eén van die audits liep over 41 agenten en 2,3 miljoen tokens, met twee onafhankelijke sceptici die elke bevinding aanvochten voordat die meetelde.

Doorlopende technische regie

Vijftien deliverables afgerond in vijf weken, samengebracht in een overdrachtsdocument. De module ging van geen eigen tests naar 99 groene, met ook de negatieve gevallen geverifieerd, want een rechtentest die slaagt terwijl hij zou moeten falen is erger dan geen test.

De samenwerking werkt met één eenvoudige regel: scope en prioriteit worden afgesproken voordat iets op de lijst komt, en Polargate levert het wekelijkse referentiedocument.

FAQ

Vragen over dit project.

Kun je Odoo aanpassen zonder de mogelijkheid tot terugdraaien te verliezen?
Ja, als de rollback wordt gerepeteerd in plaats van aangenomen. Voordat Polargate een migratie op dit CRM uitvoerde, is die reproduceerbaar in een container nagespeeld: records planten, upgraden, terugdraaien. Een veld uit het model halen verwijdert de tabel en de kolommen niet, Odoo laat ze verweesd achter met de data er nog in, dus kwamen 132 rijen en 56 relaties over 200 records intact terug zodra de code was teruggedraaid. Die repetitie maakt van een risico-inschatting iets waar je op kunt sturen.
Kunnen verkopers in Odoo verschillende rechten krijgen zonder beheerder te zijn?
Ja, maar het kost werk. Odoo levert één brede beheerdersrol en bijna niets daartussen, en de enige standaardgroep die gebruikers kan aanmaken tilt zichzelf in één schrijfactie op tot beheerder, wat Polargate in een lokale omgeving heeft geverifieerd. Op dit CRM is het rechtenmodel herbouwd als vier losse instellingen per gebruiker, plus een eigen groep die gebruikers kan aanmaken maar niemand met beheerdersgroepen kan achterlaten, een gebruiker die dat al is niet kan wijzigen en het wachtwoord van een ander niet kan schrijven. Geverifieerd in de browser met een account dat verder geen enkel recht heeft.

Bijvoorbeeld: 536/536 vertaalsleutels aanwezig in elk van de drie talen. Estepona Golf

Volgend project

Globalia.

Reizen en toerisme

Het corporate webplatform van Globalia

Bijvoorbeeld: 22 publieke routes vooraf gerenderd als statische HTML. Hotel Marien

Beginnen

Vertel ons wat je wilt bouwen.

Websites, apps, systemen op maat en AI voor bedrijven die ze binnen weken in productie nodig hebben. Vul het formulier in of plan een gesprek van 30 minuten: een senior engineer antwoordt binnen twee werkdagen met een eerste inschatting van scope, planning en prijs.

Wat heb je nodig?
Budget
Wanneer

Minstens tien tekens.

Schriftelijk antwoord binnen twee werkdagen. Geen nieuwsbrief, geen automatische mails.

Liever de volledige briefing?

Eerste stap

Discovery Sprint

Twee weken om scope, architectuur en prijs vast te leggen voordat er iets wordt gebouwd.

Geen prijslijst. Je krijgt na een kort gesprek een schriftelijke offerte op maat.

Daarna, om te bouwen, altijd tegen een vaste prijs

Nog niet zover?

AI-native digitale studio voor middelgrote bedrijven

POLARGATE, S.L. · CIF B24895005
Calle Electrónica 6, 28027 Madrid, Spanje