Case study

Het platform van een Belgisch real-estate lead-gen bedrijf, vanaf nul gebouwd en nog steeds in gebruik.

Opdracht 2021 - heden
Duur doorlopend
Branche Vastgoed / proptech
Klant Real-estate lead-gen, België (geanonimiseerd)

Het probleem

De oprichter had een werkende maar fragiele MVP: een Belgisch real-estate lead-gen platform dat leads van portalen verwerkte en doorverkocht aan makelaars. Het werkte goed genoeg om klanten te hebben, maar het brak wekelijks, draaide op één webserver zonder queues, factureerde handmatig, en de data leefde verspreid over een database en een Google Sheet die een parttime virtual assistant bijhield.

Hij zocht iemand die het platform technisch volledig kon overnemen, zodat hij zelf het bedrijf kon runnen.

De aanpak

Een doorlopende opdracht op retainer, zonder vaste scope. Ik was verantwoordelijk voor het platform, hij voor het bedrijf en de klantrelaties. We overlegden async, zagen elkaar maandelijks en legden beslissingen schriftelijk vast.

De eerste zes weken gingen naar stabilisatie: het platform op fatsoenlijke infrastructuur zetten, queues en Horizon introduceren, het database-schema opschonen en de ergste security-gaten dichten.

Daarna werd het werk doorlopend: nieuwe features wanneer de business ze nodig had, infrastructuurwerk bij groei, en refactoren waar nodig.

Het gebouwde systeem

In de jaren daarna groeide het platform uit tot de complete operationele stack van het bedrijf:

  • Lead-intake pijplijnen voor zes-plus portaal-bronnen, elk met zijn eigen formaat, onaangekondigde wijzigingen en eigen authenticatie. Idempotente ontvangers, fout-queues, alerts wanneer een feed stil viel.
  • Lead-scoring en routing. Regel-gebaseerde logica gecodeerd in plain PHP - geografie, makelaar-capaciteit, taal, prijsklasse, tijd van de dag. Uiteindelijk aangevuld met gerichte LLM-calls voor first-pass kwalificatie van vrije-tekst lead-notities.
  • CRM-integraties met de platformen die de makelaars daadwerkelijk gebruikten, plus een intern CRM voor makelaars die er geen hadden.
  • Custom billing-engine. Facturatie op verbruik, inclusief meerverbruik, met reconciliatie en controleerbare exports. Dit verving een spreadsheet en een inbox.
  • Lifecycle-mail automatisering - onboarding, makelaar-prestatiereviews, prospect-nurture, dunning.
  • Interne operator-dashboards voor de oprichter, het support-team en de makelaars zelf. Verschillende views en permissies op dezelfde data.
  • Monitoring, queue-health en alerting, afgesteld zodat een melding ook echt een probleem betekende.

De codebase bleef Laravel het hele traject, zonder lock-in op een extern platform, zodat we altijd konden migreren als dat nodig was.

De CRM-integraties

Het meest vervelende deel was integreren met de CRM's van klanten.

Elke CRM modelleert de wereld anders. "Lead", "contact", "deal" betekenen in elk systeem iets anders, en de relaties ertussen verschillen ook. Er is geen schoon gedeeld model om op te mappen.

Erger: klanten gebruiken hun CRM anders dan elkaar, en anders dan de CRM bedoelt. Sommigen leven in deals, sommigen raken alleen contacts aan, sommigen draaien lifecycle-stages, velen negeren dat allemaal en buigen de CRM tot iets waarvoor hij niet gebouwd is. Sommigen hebben een eigen systeem, of een heel specifieke custom-setup in hun voorkeurs-CRM, die een exacte datavorm aan onze kant vereist - soms custom code per klant om het te matchen. En er zit vaak een niet-technische "CRM-consultant" tussen, wat zijn eigen soort traagheid is.

Wat het overleefbaar maakt: hou de data binnen ons eigen platform strikt en consistent. Als onze kant schoon is, blijft de mapping en output naar de CRM van elke klant ook schoon. Zodra een integratie opgezet is en werkt, draait hij meestal jaren zonder echte problemen - zelfs met een hoge, rommelige variatie aan binnenkomende leads - omdat de rommelige input genormaliseerd wordt voordat hij de CRM bereikt.

De data

"Een project" is niet één ding. Soms is het één gebouw te koop. Soms vier verschillende unit-types in verschillende maten, veel units elk. Soms één specifiek bestaand huis. Databehoeften en voorzieningen variëren enorm per land. Lead-intakeformulieren variëren net zo hard - per klant, per project - wat het matchen van een lead aan het juiste project een eigen doorlopend probleem maakt.

Dan volume: een e-maillijst van 100k+, gesegmenteerd op projectdata, lead-data en lead-gedrag. Versturen, queues, bounce- en feedback-afhandeling, segmentatie in sync houden - elk onderdeel vereist zorgvuldig ontwerp om op die schaal jarenlang correct te blijven.

Het resultaat

Sinds 2021 verwerkt het platform duizenden leads per maand en draait het de dagelijkse operatie van het bedrijf, terwijl de oprichter de commerciële kant doet. Drie fulltime medewerkers en een netwerk van makelaars werken er dagelijks in.

De opdracht liep begin 2026 ten einde toen de oprichter budget verschoof van techniek naar commercie. Het platform was op dat moment stabiel genoeg om met minder technisch werk toe te kunnen. Het draait nog steeds, en ik doe nog het resterende onderhoud.

Stack

  • Laravel
  • Laravel Horizon / queues
  • PostgreSQL
  • Portaal-intake pijplijnen (zes-plus bronnen)
  • CRM-integraties
  • Custom billing-engine
  • Lifecycle-mail automatisering
  • Interne operator-dashboards

Neem contact op

Wil je een systeem dat dit soort schaal aankan?

Stuur me een korte mail over wat er stuk is, wat traag is en wie er op dit moment aan werkt. Ik antwoord binnen een werkdag.