Solved

How to get Shopify language Data to Segment List?

  • 18 February 2021
  • 12 replies
  • 565 views

Badge

We want to use klaviyo for sending newsletter. Currently our shopify store has 2 languages, french and english. Customers and subscribers are added in a klaviyo list automatically, however there is no language information...?

Inside shopify, there are filters to segment customer into different language lists, but this data doesnt seem to get transfered to klaviyo…?
 


We need to somehow get the language information for each customer/subscriber in order to send them newsletter in the correct language… How can this be done? What is the easiest method to achieve this?

We are using shopify native multi language feature, but will also be adding a language addon to better control/manage translations. We would be using one of the addon that officially support the native shopify language feature here : https://apps.shopify.com/collections/apps-for-store-languages
Any recommendations? Would one of these allow us to more easily get the language data in shopify?

icon

Best answer by Omar 20 February 2021, 23:04

View original

12 replies

Userlevel 5
Badge +4

Hi there,

It may make sense to make a call to Klaviyo’s Identify API to tag user profiles with a property indicating their preferred language. Langify is one example of an app used by some Shopify merchants to allow site visitors to switch between languages. Langify in particular does include the selected language within the “note_attributes” property on some of the events that come into Klaviyo; however, Langify does not actually tag profiles in Klaviyo with selected language.

I am not aware of a Shopify language app that automatically tags profiles in Klaviyo with the selected language, but other merchants might be able to make more detailed recommendations of other Shopify apps to help with this.

Within Klaviyo, you would likely want to maintain two separate segments or lists for English and French, based on the language preference profile property that has been set either by an Identify API call or a Shopify language app.

Best,

Caroline

Userlevel 5
Badge +3

Hi @Loons,

There are a couple of ways to go about this.

Separate sites - separate accounts
For the end user I think this creates the best experience.
Why? Let's say you're target audience 1 is from France and second is from UK or USA or maybe even another EU country.
Trying to do all with 1 Shopify shop will i.e. add a lot of irrelevant payement options or just simply because in France it's 10€ while in most other EU countries it's €10. These small differences have a big impact on specific country related relevant differences. Having 2 sites and 2 separate Klaviyo accounts will also keep things much clearer. Each country is different and tailoring and being relevant to specific countries just increases your conversions. Also, Klaviyo can set 1 default currency which is getting used, multicurrency, without some fancy updating and customized work will probably be an issue since dynamic products have 1 price which is the main price of the shop.

 

That being said if you do feel you want to go the one account for klaviyo and shopify route you could add the question in signup forms which language they prefer and also adding that in a welcome flow to gather some additional info.

If you're using multilanguage that also changes the URL for each language (/EN/ or /FR/) you could use this as a way of filtering people. Even maybe adding a flow that adds a custom profile tag with latest language used.

Last you could use something like Tagmanager (or just code it in your site) to send an event or profile property with the latest language use.


Hope it helps.

Omar

 

 

Badge

Hi Omar,

Thanks for the reply, some comments:

  • Concerning using separate stores for separate countries. Maybe its something we will do in the future but this doubles all costs and we are trying to avoid it if possible for now. Also, in this specific case, FRENCH and ENGLISH are both official language for Canada.
     
  • Adding the language in the form is a potential solution, but we’d like to avoid it again… people are already browsing the website in their preferred language, so it’s unnecessary to ask them to pick a language for the newsletter imho.
     
  • We do have multi-language that changes the DOMAIN… I didnt think this would work with Klaviyo display filtering rules but i tested it and it works! I can create a EN popup and a FR popup with filtering for domains. The problem is, i cannot add any automatic tag to subscribers from either popup… so the FR popup will add contacts to the list but it wont add any tag/data to say that this person has the French language… This would force me to have 1 list for FR and one list for EN… Also, this would only be possible for klaviyo embedded forms / popup… so for example it wouldnt work when people subscribe during checkout.
     
  • Not sure exactly how it would work for tag manager, by default i know shopify doesnt let you embed the tag manager script… but there are workarounds. Nevertheless, i dont see how tag manager would send language value to klaviyo about each contact / subscribers. Might be possible, but i have no idea what this involves exactly.
Userlevel 1
Badge

Hi there,

The solutions above sound very helpful but I wonder, if someone has managed to find a way to add/edit  a custom property just based on the information provided by Langify?
As Caroline mentioned, Langify includes the a language tag in the events but I wonder if there’s a way how to use that on Klaviyo’s end?

Our current setup is a Standard Shopify shop, two languages with Langify (de/en) and Klaviyo.
For signing up we have separate sign-up forms that are displayed based on the URL (if the URL includes  …/de → use the German form and add a custom property “DE” to the user, if not use the English form and include property “EN”).
Within our flows we have a conditional split based on this property.

However, this tag is only set when signing up for the specific forms, any other collected data have the langify attribute but not the tag, same for the customers that sign up during the checkout process.

Has anyone the same problem or maybe even a solution?

Thanks
Stephan

Userlevel 6
Badge +4

Hello @stephan,

I would suggest reaching out to Langify if they have any capability to pass this attribute as a profile property instead. If they do not, you may want to consider to see if you can leverage Klaviyo’s API to build this custom connection to allow collect this data from Langify’s attribution as a custom property to tag your profiles with. 

To learn more about building this custom solution, I would recommend taking a look at the following resources Klaviyo offers on using its API. I would also suggest working with a developer or finding a Klaviyo partner who can further help you in accomplishing this custom solution.

If other Community members have another solution to this, I would love to hear their ideas and strategies surrounding this as well :) 

Thanks for being a Klaviyo Community Member!

David

Userlevel 1
Badge

Thank you @david.to  for the quick reply. I have reached out to Langify with that request and will post the reply as soon as I get one.
Also thank you for the second proposal – and if anyone has another idea, happy to hear about those.
I think the setup Shopify + Langify + Klaviyo is more and more common one and it would be great to share experiences.
A more general question out of curiousity: How come that a property like language is not a “standard” property? Multilingual email-marketing must be a challenge for many users? Or is this individualization rather done based on the location of the users?
Thanks

Userlevel 1
Badge

Actually I got a fast reply @david.to :

You can access locale codes like "en" or "de" via liquid via {{ request.locale.iso_code }}
Is that something I can use within Klaviyo?
Thanks, Stephan
 
Userlevel 6
Badge +4

Hey @stephan,

Property such as “language” wouldn’t be a standard Klaviyo property as it would typically be a preference of your customers rather than factual data such as your customers location; which is identifiable via Klaviyo’s geoIP location method. For this reason we typically recommend collecting this language preference via a signup form or a manage preference page as @Omar has previously mentioned. You can learn more about properties from the Guide to Properties Help Center Article Klaviyo offers.

Since it sounds like this locale data is being shared, how you decide to use it would once again depend on how you are pushing this data to Klaviyo for use. From the sounds of it, you may be able to leverage Klaviyo’s Identify API to amend and apply a custom profile property if your customer is identified through this {{ request.locale.iso_code }} liquid tag on your site.

David

Userlevel 1
Badge

Understood, thanks @david.to . I’ll look into the proposed approach…
Stephan

Hi @stephan, haven’t implemented it myself yet, but you should have the possibility to fetch the locale through shopify webhooks, e.g. if you want to build your own abandoned cart automation in Klaviyo and respect the cart locale, this is the webhook data: https://www.integromat.com/en/integrations/klaviyo

 

You could use software like Integromat to listen to that webhook, and then shoot that data up again to Klaviyo in order to update a profile there with a custom attribute “Language”. Use that attribute to create custom segments or split flows as you describe above.

 

Alternatively you can at least approach it this way without any external work-around:

 

If a customer enters Klaviyo through a signup form, then we know already (as you say yourself). E.g. German signup form is only shown on website.com/de/* or website.de/* -> and these German signup forms automatically sign up to the list “Newsletter German”.

 

In another case: 

  • If sb. signs up to the newsletter another way (e.g. in the checkout), we don’t know the order language and they are added to the list “Newsletter”.
  • Then we create a “temporary_update_to_German” segment in Klaviyo that they automatically become a member of through definitions like “Is in list Newsletter” & (“Email ends on .de” OR “Country = Germany”) & Language is not set.
  • The moment they become member of one such a segments, they enter a flow called something like “auto_update_language_…“. That flow sets the custom “language” attribute of a customer to e.g. German
  • Once they have that attribute, they automatically join the segment “Newsletter German Only”, which is just another way of defining that group of people.

Not ideal, but rather quick to set up and better than nothing : )

 

 

Simon

This is something I’ve also been waiting for. Shopify has native multi-language support for 2 years now. 

Please Klaviyo integrate the property “locale” from Shopify. It’s in the Shopify customer object, see: https://shopify.dev/api/admin-graphql/2021-10/objects/Customer#fields-Customer-OBJECT (=> locale)

 

It would be super helpful to have acces to that property inside Klaviyo. (Segment customers based on locale, Setup flows based on locale etc...)

 

*In the mean time we’ve setup a MechanicApp task to auto tag customers inside Shopify with their last used locale. (And that get’s synced to Klaviyo)

Userlevel 3
Badge +5

Hi all, 

 

First, I wanted to give a thanks to @simong for going out of your way to give your peers a workaround for this present pain point! It is much appreciated!

Second @DriesP, I can understand the frustration you might be experiencing with this Klaviyo limitation at this point. I am sorry for the inconvenience it’s caused, but I am grateful that you have used your voice to tell us what features you would like to see happen. We need that from our customers, so thank you! Additionally, thank you for giving another workaround for this as well!

 

Thank you all for being a part of our Community! 

 

-Taylor

 

 

Reply