Case study
Happy V – Shopify-app op maat
Happy V is een Amerikaans direct-to-consumer merk voor vrouwengezondheid dat klinisch onderbouwde probiotica en supplementen via Shopify verkoopt, met een substantiële abonnementenbusiness en een multichannel-marketingoperatie die Meta, Google, TikTok en affiliatenetwerken omvat.
Het project
De marketingattributie en customer-lifecycle-automatisering van Happy V draaiden op een verouderde gedeelde webapplicatie met daarachter SQL Server, naast een reeks losstaande console-hulpprogramma's die handmatig werden uitgevoerd. De opzet was lastig te bedienen, bood geen inzicht in storingen en kon niet meegroeien met het merk.
Wij hebben een speciale embedded Shopify-applicatie ontworpen en opgeleverd die elke integratie en back-officeworkflow samenbrengt in één observeerbaar systeem - en de volledige operatie erop gemigreerd zonder onderbreking van het live verkeer.
De uitdaging
- Marketingattributiedata (500.000+ records) stonden op een verouderde SQL Server die werd gedeeld met niet-gerelateerde systemen.
- Conversie-events die naar het customer data platform werden gestuurd, verloren regelmatig click-identifiers, wat de nauwkeurigheid van de rapportage in advertentieplatforms en van retargeting aantastte.
- Bedrijfsprocessen zoals het taggen van promoties en het genereren van kortingen voor behandelaars werden met de hand uitgevoerd via consoleapplicaties.
- Er was geen logging, geen retry-mechanisme en geen manier om vast te stellen of een binnenkomende webhook daadwerkelijk was verwerkt.
Wat we hebben gebouwd
Een embedded Shopify-app (.NET 8 API + React Router 7 admin-interface), opgebouwd uit op zichzelf staande modules, elk met een eigen operationele UI:
- Marketingattributie - een publiek capture-endpoint registreert click-identifiers (Meta, Google, TikTok) bij de checkout en verrijkt elke conversie die naar Twilio Segment wordt gestuurd, met een doorzoekbare viewer over de volledige dataset.
- Conversiepijplijn - webhooks van Shopify en Recharge genereren verrijkte Order Completed-events, met strikte garanties van één conversie per order.
- Samplingprogramma - Shopify Flow meldt de app wanneer een klant een productsample ontvangt; de app legt dit vast en stuurt profieleigenschappen en custom events naar Klaviyo om vervolgflows aan te sturen.
- Tagging van promotiekopers - scant orders die tijdens automatische promoties zijn geplaatst en past per campagne een eigen klanttag toe.
- Kortingen voor behandelaars - leest een Google Sheet, genereert unieke kortingscodes per behandelaar en maakt deze in bulk aan in Shopify, met een gepagineerde preview vóór de uitvoering.
- Affiliate-integratie - reconciliatie van conversies met Refersion en ShareASale, inclusief automatische annulering bij terugbetalingen en screening op fraudesignalen bij affiliate-aanmeldingen.
- Operationele tooling - een gedeeld applicatielog, een tracker voor endpointgebruik die laat zien welke integraties daadwerkelijk in gebruik zijn, en een webhook-inspector met handmatige replay.
Technische hoogtepunten
- Datamigratie zonder downtime - 550.000+ attributierecords verplaatst van SQL Server naar PostgreSQL, gevolgd door een deltamigratie bij de overschakeling, zodat geen enkel record dat tijdens de overgang werd vastgelegd verloren ging.
- Duurzame webhookverwerking - binnenkomende webhooks worden direct opgeslagen en verwerkt door een achtergrondworker met begrensde concurrency, retries met exponentiële backoff en idempotentiesleutels. Er gaat niets verloren bij herstarts of deployments, en verkeerspieken kunnen de service niet overbelasten.
- Attributie samenvoegen - click-identifiers worden samengevoegd over de checkouts van een klant heen, zodat een conversie nooit met een leeg veld wordt gerapporteerd wanneer de waarde bij een eerder bezoek is vastgelegd, wat de match rates in advertentieplatforms merkbaar verbetert.
- Performance-engineering - profiling van het live systeem bracht een data-accesslaag aan het licht die volledige tabellen in het geheugen materialiseerde. Door de kritieke paden te herschrijven naar server-side SQL daalde het geheugengebruik van de applicatie van 1,7 GB naar 175 MB en verdwenen de request-timeouts onder productiebelasting.
- Geleidelijke overschakeling - elk integratie-endpoint spiegelt zijn legacy-pad, waardoor het migreren van elke webhookprovider neerkwam op één hostwijziging, per integratie uitgevoerd en geverifieerd.
Resultaat
Happy V draait zijn volledige stack voor marketingattributie en lifecycle-automatisering nu op één onderhoudbaar platform. Handmatige consoleprocedures werden selfservice-adminschermen, integratiefouten zijn zichtbaar en opnieuw af te spelen in plaats van stil, en de afhankelijkheid van de oude SQL Server is uitgefaseerd. De attributiedekking is meetbaar verbeterd door het samenvoegen van click-identifiers en het wegvallen van verloren webhook-events.
Technologieën
.NET 8
C#
PostgreSQL
React
Shopify Admin GraphQL API- Twilio Segment
- Klaviyo