To fix this, we had to stop relying on default platform behaviour and engineer our own consent routing logic.
Enrich customer profiles with market and language data
First, we needed reliable detection. We added custom Shopify properties that get passed to Klaviyo: Market (e.g. BE, DE, FR), and Locale/browsing language (e.g. fr-BE, nl-BE, de-DE). These properties became the foundation for precise segmentation and routing.
Set the global Shopify-synced list to single opt-in.
Because the sync settings only allow one list with a single language to be connected to Shopify consent pages, we intentionally converted the global synced list to single opt-in. This allowed subscribers to enter Klaviyo immediately, avoided sending the wrong-language double opt-in, and gave us control to trigger the correct consent later. This wasn't about bypassing compliance, it was about sequencing it correctly.
Build a list update flow with conditional logic.
Once a subscriber entered the global list, a dedicated List Update Flow took over. The flow reads the Market and Locale properties, routes the subscriber through a detailed conditional split tree, and identifies the exact combination (e.g. BE-FR, BE-NL, DE, FR). When a match is found, the flow sends a webhook.
Use webhooks to override status and trigger the right double opt-in.
The webhook performs the critical step Klaviyo doesn't support natively. It overrides the subscription status and moves the profile into the correct market-specific list. Because that list is configured with its own language, legal copy, and double opt-in settings, the subscriber receives the correct confirmation email, in the correct language, for the correct market.