Eén realtime dashboard voor een multi-brand webshop
Dashboards & analyticsMulti-brand E-Commerce

Eén realtime dashboard voor een multi-brand webshop

Verkoop, bezoekers en advertentiedata van meerdere webshops samengebracht in één live dashboard, in plaats van losse tabbladen en exports.

Probeer het zelf

Een groep met meerdere webshops verloor het overzicht: elke shop had z’n eigen statistieken, advertentieaccount en exportbestand. Ik bouwde één dashboard dat alle bronnen samenbrengt en realtime laat zien hoe het écht gaat, per merk en over alles heen.

insights.app
Demo laden…

Vereenvoudigde demo met voorbeelddata · een voorproef, geen volledig product

De uitdaging

Data overal, overzicht nergens

De cijfers stonden verspreid over de webanalyse, de webshops zelf en een handvol advertentieaccounts, elk met een eigen login en een eigen exportknop. Elke maandag begon met handmatig exporteren en aan elkaar plakken in spreadsheets, en tegen de tijd dat het overzicht klaar was ging het al over vorige week. Erger nog: geen twee bronnen telden hetzelfde. Wat de ene shop een conversie noemde, telde de andere anders, dus merken naast elkaar leggen was appels met peren vergelijken. Beslissingen over voorraad en advertentiebudget vielen op onderbuikgevoel, omdat de harde cijfers altijd te laat en nooit vergelijkbaar waren.

Aanpak

De grote lijnen

Bronnen samenbrengen

Verkoop, bezoekers, conversie en advertentie-uitgaven uit elke shop via hun API’s opgehaald en genormaliseerd naar één model met dezelfde definities.

Realtime in plaats van achteraf

Een live-laag die binnenkomende events meteen verwerkt, zodat je vandaag ziet wat er vandaag gebeurt, niet pas in de maandrapportage.

Eén beeld, elk merk

Filteren per merk of alles bij elkaar optellen, met vergelijkbare cijfers omdat alles uit dezelfde bron komt.

Onder de motorkap

Zo bouw ik dit

De keuzes achter de demo, eerlijk uitgelegd. Dit is de opzet zoals ik hem in de praktijk bouw, geen afgeschermde black box.

01

Elke bron eerst naar één canoniek model

Ik begin niet bij de grafieken maar bij de definities. Shopify, WooCommerce, Google Analytics en Meta noemen dezelfde dingen anders: de een telt een conversie op sessie, de ander op order, valuta en tijdzones lopen uiteen, retouren worden wel of niet afgetrokken. Ik trek elke bron uit elkaar en map de velden op één canoniek schema van order, sessie, uitgave en kanaal, zodat een cijfer van merk A en een cijfer van merk B letterlijk hetzelfde betekenen. Zonder die stap stapel je appels op peren en klopt geen enkele optelsom.

02

Ingestie die polling en webhooks combineert

Niet elke bron levert data op dezelfde manier. Ik bouw een ingestielaag die de trage, batchmatige bronnen op een schema ophaalt en tegelijk webhooks abonneert waar ze bestaan, zoals Shopify-orders en Stripe-events die binnenkomen op het moment dat ze gebeuren. Alles landt in Postgres met een idempotency-sleutel per record, want een API stuurt bij een retry of replay hetzelfde event nog eens en zonder ontdubbeling tel je omzet dubbel.

03

Realtime alleen waar het verdient

Realtime klinkt goed maar is duur en zelden overal nodig. Advertentie-uitgaven ververst een platform hooguit per uur, dus die live proberen te trekken is verspilling. Ik splits het dashboard in twee stromen: een live-laag die orders en bezoekers direct naar het scherm duwt via realtime-subscriptions, en een rollup-laag die trends per uur of per dag samenvat. Zo zie je vandaag wat er vandaag gebeurt, zonder elke API elke seconde te bevragen en zonder dat je rekening explodeert.

04

Voorgeaggregeerde rollups voor snelheid

Een jaar aan losse events uitrekenen bij elke paginaweergave maakt een dashboard traag. Ik materialiseer dag- en weektotalen per merk per metric, zodat grafieken meteen laden, en bewaar de ruwe events eronder voor als je wilt inzoomen. Omdat één merk en de hele groep uit dezelfde onderliggende ledger rollen, kloppen de cijfers of je nu inzoomt op één shop of alles bij elkaar optelt.

05

Signalen en eigenaarschap in eigen beheer

Op de rollups zet ik lichte anomaliedetectie: ik vergelijk binnenkomende cijfers met een voortschrijdend gemiddelde en geef een seintje zodra iets echt uit de band springt, zodat je een uitschieter dezelfde dag ziet in plaats van pas in de maandrapportage. Het geheel draait in eigen beheer op EU-servers, jij wordt eigenaar van de code en je betaalt niet langer per seat voor een systeem dat maar half past.

Wat het kan

Live bezoekers & verkoop

Zie in realtime wie er nu op de shops is en wat er binnenkomt.

Herkomst per land

Waar je bezoekers en omzet vandaan komen, in één oogopslag op de kaart.

Verdeling per kanaal & apparaat

Welk kanaal en welk device de meeste waarde oplevert.

Trends over tijd

Vergelijk dagen, weken en merken met dezelfde meetlat.

Signalen bij uitschieters

Een melding zodra iets opvallend stijgt of inzakt.

Export wanneer nodig

Een schone export als je toch even iets wilt delen of bewaren.

Wat het oplevert

Eén plek met dezelfde definities voor het hele team, geen losse exports meer
Merken eerlijk naast elkaar, omdat alles uit dezelfde bron rolt
Beslissingen op actuele data in plaats van cijfers van vorige week
Uitschieters vallen dezelfde dag op, niet pas in de maandrapportage
Volledig in eigen beheer op EU-servers, geen kosten per seat

Techniek

Next.jsTypeScriptRechartsSupabase / PostgreSQLAPI-integraties

Werkt met je tools

Deze case koppelt aan bestaande systemen. Een paar van de integraties die hierbij passen, allemaal op maat te koppelen.

Beter samen

Combineert met de rest

Elk onderdeel werkt op zichzelf, maar wordt sterker in combinatie. Een paar voorbeelden uit de praktijk:

Eén waarheid over al je systemen

Overal dezelfde, actuele cijfers.

  1. 1Pipelines brengen klant-, order- en voorraaddata samen tot één bron van waarheid.
  2. 2Koppelingen houden webshop en administratie continu gelijk, met heldere voorrangsregels.
  3. 3Het realtime dashboard laat de kloppende cijfers zien, samengebracht uit al je tools.
Sturen op data die je kunt vertrouwen, in plaats van exports naast elkaar leggen.

Van cijfer naar actie

Een uitschieter in het dashboard zet meteen iets in gang.

  1. 1Het dashboard signaleert een opvallende piek of dip.
  2. 2De assistent duidt de oorzaak met context uit de kennisgraaf.
  3. 3Hij maakt een taak aan om te handelen, of zet een reactieve post klaar.
Dashboards die niet alleen tonen, maar handelen.

Veelgestelde vragen

Volgende stap

Van dit voorbeeld naar jouw situatie

Deze case is een referentie-build voor CRM-, CMS- & dashboardsystemen. Bekijk hoe ik dat aanpak, of doe de gratis Automatiseringsscan en zie in twee minuten waar bij jou de winst zit.

Zoiets voor jou bouwen?

Vertel me wat je voor ogen hebt of waar je tegenaan loopt, dan denk ik mee en zeg ik eerlijk wat er kan, vrijblijvend.

Bekijk alle cases