Sign Up Form - Pop Up with segmentation list

  • 27 January 2022
  • 3 replies

Badge +5

Hello people, 
we want to use Klaviyo Sing Up Form (Pop-Up) on the Shopify Order Confirmation Page to lead them via Button to a Typeform survey. 

What we want to avoid is to ask for the customers e-mail address (neither in the pop-up nor in Typeform). 
What we do want is to know is the segment (number of fulfilled orders) the customer fits into. 

The idea was to create a segment with the definition of the number of the fulfilled order and create a pop up for every single segment. This different pop-ups lead to different typeform surveys, so every participant can be matched with the defined segment in Klaviyo. 


On our first try, we figured out that a lot of customers fell into our Fallback Pop Up Form (that had the target “Dont show to existing Klaviyo profiles” instead of “Show to users in a certain segment” activated.)


We learned, that Klaviyo did not identify the user while he was active on the website. 


On further testing we figured, that “Started checkout” could be a good trigger to make sure Klaviyo identifies the user. 

So we created a segment that has “Started Checkout at least once in the last hour” as a definition in the segment. 
The trigger was recorded in the profile in time but unfortunately the segment list did not update fast enough to identify the user as a part of the segment. 

A reload during the process showed an empty segment. Only when I re-saved the definition settings the user appeared in the list. 
Can this update process somehow be manipulated or how fast does Klaviyo write the profile in the list. Is this a complete wrong approach?

Has anyone another solution for this? Either a better trigger that makes sure the user is identified by Klaviyo or any other workaround here? 

Thanks for the help in advance! 
Tobi from Wildling Shoes


Best answer by retention 4 February 2022, 20:32

View original

3 replies

Userlevel 7
Badge +57

Hey @tobias_wildling_shoes - welcome to the community and thanks for giving a lot of context of what you’re trying to do.  I think using targeted popups for specific segments is a fantastic approach for a better user experience and deepens the relevance for your visitors.  Kudos on that!

From my experience, Klaviyo’s “identify” functionality works fairly well. Klaviyo can “identify” a user in a few scenarios (that I know of):

  • When someone signs up via a Klaviyo Signup Form (embedded, popup, or Flyout)
  • When someone clicks over from an email sent from Klaviyo (Campaign or Flow Message)
  • If you used the Klaviyo API to “identify” a user programmatically yourself.

Now remember, Klaviyo’s identify functionalities works within the realms of what’s possible over HTTP and modern client/browser software.  That means, typically a user has to come back from the same device and browser and not have any settings or configurations that prevent cookies or sessions to be persisted.  Each time a user is “identified” - it usually lasts (typically 2 years) for a while unless the user clears their cookies, installs some software (ad blocks, privacy tools, tunneling/proxies etc) that either removes or blocks cookies, or changes to a devices/browser that has yet to be identified from the above 3 methods - as pretty much everyone has at least two devices - their phone, tablet, or desktop.  So the variance you’re seeing could be for those reasons, but it’s sometimes hard to verify or tell.

Having said all that, your original Segment of showing to existing Klaviyo Profile should suffice. Though you can filter or limit your Segments to include a previous event, like Started Checkout, I’m not sure that’s totally necessary since you’re limiting it to only those folks who perform that event.  The other scenarios (e.g. clicking over from an email) is omitted.  By definition, if they are not identified (either way), they will go into your fallback popup.  

As for how frequently Segments update, it can vary on the Segments complexity. Typically, Segments are updated in “real time” - but if you are “monitoring” or just “manually update a segment” it can take up to 15 minutes to 1 hour to process (it’s happening faster behind the scenes, you just don’t see it reflected within Klaviyo’s admin immediately).  You can read more details here:

Hope this helps, and look forward to feedback from others.

Badge +5

Dear Joseph, 
thank you so much for your detailed answer. 

I can’t tell you why the “identify” function of Klaviyo does not work so well in our store (may be because of cookie consent / GDPR issues?) but we can validate this twice. 
First, we tested it in different scenarios (positive cookie consent, negative cookie consent). Always with an email adress that had a Klaviyo profile already. 

It did work for one specific address and did not for another. We do not have an explanation for this yet. But we know it does not work correct. 

Second, we can see this on the stats. 

We created six segment pop-ups and one additional fallback pop-up. We see that 10% of the views sum on the six segments whilst 90% of the traffic comes from the fallback that said: “Show to non Klaviyo profiles”.

We have quiet a huge profile database in Klaviyo already and we see from other sources, that excisting customers bought in the period of time where we had the pop ups live. So a lot of profiles were not identified while they were browsing on the website. 


My idea was now: Let’s use a shopify trigger that the profile definately triggers before he sees the pop up (remember: Pop up was shown only on order confirmation page). So I did choose the “Started checkout” as they have to take that step before they purchase and it is the one not too close to the actual display of the order confirmation page.
My test haven’t been successfull yet and I thought the reason was, that the profile have not been in the segment (yet), 
Is there a way to see a timestamp when the profile was added to the segment?

I will also try the trigger “Placed order” and see if it works.


Thank you. I think it is a very interesting topic and I hope we will all learn from this.


Kind regards from Cologne, Germany



Userlevel 7
Badge +57

Hi @tobias_wildling_shoes - sorry for the late reply, but I’m curious if you found a solution or identified the problem since your last update.

For sure if you have implementation for Cookie Consent (GDPR) and the users opts-out, Klaviyo can’t identify the users if you’ve grouped Klaviyo’s klaviyo.js as part of the opt-out code blocks - but this depends on how you have it implemented.  

As I understand it from that article I previously referenced, Segments in Klaviyo should update near “Real Time” (with some exceptions based on Segment rule complexities) - but even if its “real-time,” perhaps it is not fast enough from the “Started Checkout” to the “Placed Order” events - possibly that happens in mere seconds or a few minutes for some customers as they check out.

I can’t remember if the timestamp of when a user enters a Segment is an available field, the best bet is to do a quick export of the Segment and see if it’s in the CSV file as an option.  I assume you just want to see this as a way for you to troubleshoot, correct? 

Alternatively, I realize that showing the pop-up on the order confirmation page will probably yield better results, but I suggest you consider doing exactly the same thing as a post-purchase Flow email (check to make sure they haven’t already done so).

Let us know if you got to the bottom of this!