Skip to main content
Solved

Localized embedded signup form on a single homepage — routing subscribers to different lists by country

  • July 2, 2026
  • 2 replies
  • 15 views

Forum|alt.badge.img

Hi Klaviyo community,

We run GearHub.eu, a multi-market e-commerce store covering markets including NL, DE, BE, SE, DK and more. Our localization is handled via URL extensions using a translation app (e.g. gearhub.eu/nl-nl, gearhub.eu/de-de), so we only have one homepage — not separate pages per market.

For pop-ups this works perfectly — we can target by URL and show the right localized form to the right visitor. No issues there.

The problem is our embedded signup form at the bottom of the homepage. Since it sits on one shared page, we can't use URL targeting the same way. But we need it to:

  1. Display in the visitor's local language
  2. Add the subscriber to the correct market list (e.g. NL list, DE list, SE list etc.)

We'd like to avoid creating separate homepages for each market just to solve this.

We've looked into using a hidden $geo_country field to capture country on submission, then routing via a flow — but we're not sure if this is the cleanest solution or if there's a better way others have handled this. We’re not even sure how to set it up since there are so many different instructions and nothing is clear unfortunately.

Has anyone solved this for a similar setup? Any advice on the most reliable approach would be really appreciated!

Thanks.

Best answer by Nick

I might have a solution for you but it depends a bit on few things:

  1. Since you are saying GearHub.eu is your main homepage: It should be your default language, no? I for example was directly routed to https://www.gearhub.eu/nl-nl when opening your page => So technically you could create embedded forms within klaviyo and use the same logic you are using for your popups (have them all added to the footer and let klaviyo handle the rest on what to show where - no separate homepages needed). 
  2. But I think what you mean is that you are currently using the signUp form that comes with your theme right? And that this one is “routed” via shopify and therefore only goes to one list (same issue you should be having when someone signs up via your checkout). In this scenario you could use what I said above (embedded forms for every language) OR you could keep the signup from your theme but work with a shopify flow to determine which locale the user has and which list it is suppose to go to (This only works for higher shopify plans who can send https requests - I show it in the video here)
  3. If you don’t need Double Optin confirmation you could also completely disregard the lists and only work with the locales shopify provides. For this you would need to add the following snippet to your theme.liquid: 
    <!-- Start Klaviyo MultiLanguage -->

    <script>
    klaviyo.identify({
    {% if customer.email %}
    '$email': '{{ customer.email }}',
    {% endif %}
    '$locale': '{{ request.locale.iso_code }}-{{ localization.country.iso_code }}'
    });
    </script>

    <!-- End Klaviyo MultiLanguage -->

    This snippet would ensure that whenever some visits your site and makes them known to klaviyo (by signing up in the footer) the locale they are using in the shop would be pushed to klaviyo. And then you would only work with segments based on that locale (it splits into Locale: Language and Locale: Country). This is only helping you if you using Single Optin and can just push everyone in one list and have segments handle the rest. 

You definitely have some options here, you just have to find the one that works best for your shop. 

2 replies

Nick
Problem Solver III
Forum|alt.badge.img+7
  • Problem Solver III
  • Answer
  • July 2, 2026

I might have a solution for you but it depends a bit on few things:

  1. Since you are saying GearHub.eu is your main homepage: It should be your default language, no? I for example was directly routed to https://www.gearhub.eu/nl-nl when opening your page => So technically you could create embedded forms within klaviyo and use the same logic you are using for your popups (have them all added to the footer and let klaviyo handle the rest on what to show where - no separate homepages needed). 
  2. But I think what you mean is that you are currently using the signUp form that comes with your theme right? And that this one is “routed” via shopify and therefore only goes to one list (same issue you should be having when someone signs up via your checkout). In this scenario you could use what I said above (embedded forms for every language) OR you could keep the signup from your theme but work with a shopify flow to determine which locale the user has and which list it is suppose to go to (This only works for higher shopify plans who can send https requests - I show it in the video here)
  3. If you don’t need Double Optin confirmation you could also completely disregard the lists and only work with the locales shopify provides. For this you would need to add the following snippet to your theme.liquid: 
    <!-- Start Klaviyo MultiLanguage -->

    <script>
    klaviyo.identify({
    {% if customer.email %}
    '$email': '{{ customer.email }}',
    {% endif %}
    '$locale': '{{ request.locale.iso_code }}-{{ localization.country.iso_code }}'
    });
    </script>

    <!-- End Klaviyo MultiLanguage -->

    This snippet would ensure that whenever some visits your site and makes them known to klaviyo (by signing up in the footer) the locale they are using in the shop would be pushed to klaviyo. And then you would only work with segments based on that locale (it splits into Locale: Language and Locale: Country). This is only helping you if you using Single Optin and can just push everyone in one list and have segments handle the rest. 

You definitely have some options here, you just have to find the one that works best for your shop. 


Forum|alt.badge.img

We've implemented something similar by detecting the current locale from the URL (e.g. /nl-nl, /de-de) and passing it to Klaviyo as a hidden profile property on form submission. From there, a flow or segment routes subscribers to the correct market list. I prefer this over using $geo_country because it reflects the storefront the customer is actually using, not just their physical location. It's much easier to maintain than creating separate homepages or embedded forms for each market.