Across list profiles deduplication

  • 7 November 2023
  • 5 replies

Userlevel 5
Badge +12
  • Partner - Silver
  • 122 replies

Hi Community,

I have a question regarding list deduplication. Is there a way to avoid to subscribe to a list for profiles that are already in another list.

Right now if someone try to subscribe to list again with the same email address using embeded signup form he received thank you message but Klaviyo don't trigger DOI as this profile is already in list.

Is it possible across many lists? 


Best answer by retention 15 November 2023, 19:53

View original

5 replies

Userlevel 7
Badge +59

Hi @Jakub,

I’m not quite sure what you’re asking, but as a general rule, you can’t Subscribe to a Klaviyo List more than once.  So any List Triggered Flows, can only happen exactly once too.

If you have multiple Lists, and you have ways for users to subscribe to them, and you have separate List Triggered Flows for each, then a user can enter all those Flows (again, exactly once). 

If you don’t want that behavior, you can use Flow Filters, Conditional Paths, or Message Filters to prevent a user from getting into a Flow or from receiving Messages within the Flow - depending on what you’re trying to do.

Does that make sense?


Joseph Hsieh // // twitter: @retenion  


Userlevel 5
Badge +12

Hi @retention 

Thanks for you answer let me explain:

SignupA - ListA - registration

SignupB - ListB - registration

After that i have this one email address on both lists. I know that one list deduplicate emails and avoid subscribe again with the same address but is there a way to avoid this for many lists?

Userlevel 7
Badge +59

@Jakub - So if someone signs up through SIgnupA (ListA), and then signs up through SignupB, you don’t want them to be entered into ListB?  Can you explain your overall objective or goals with these multiple embed forms and exclusionary rules?  I’m trying to understand why you want this setup in the first place.  Is it to separate folks who signed up to SignupA first from people who signed up to SignupB first?

If so, I think another approach is to have both embed forms submit to the same List, and then use custom properties to determine which form they signed for:

EmbedA → Main List, with custom property (embedA = datetimestamp)

EmbedB → Main List, with custom property (embedB = datetimestamp)

Then, you create two Segments:

  • SegmentA = EmbedA field is Set
  • SegmentB = EmbedB field is Set
  • Bonus: SegmentAB = Embed A is Set AND Embed B is Set

With this setup, you get:

  1. You can have the Main List trigger a List Triggered Flow in either SignupForms.  
  2. You can also have Segment Triggered flow for both SegmentA, and another Flow for SegmentB.

In my scenarios, you can have one list, two segments, everyone goes into the Main List, and you can build Segments to determine who completed which Embed Form (or even Both!).  Also, you’ll have the date/time of when they signed up for each of the embed.


Joseph Hsieh // // twitter: @retenion  

Userlevel 5
Badge +12

Hi @retention,

I create two list to separate customer using different language on shopify, but I'm afraid that with this setup the same email address can subscribe to all language lists separately. 

This will cause mess and also as subscription to this list gives customer discount benefits i want to avoid some frauds.

Userlevel 7
Badge +59

@Jakub - For a quick fix, you can just create exclusionary Flow Filter rule from one Flow to the other. For example, if they were going into Language A Flow, you would exclude them if they’ve already in the List of Language B (or, received emails from Language B Flow).  And vice versa.

A better approach, similar to the one I propose using customer properties for your OfferA vs OfferB works here too. So you can have both Language specific Signup Forms submit to the same List - let’s call this your “Main List.”

Then, in the Signup Form, you have two hidden custom properties, one for each Language

  • LanguageA = True
  • LanguageB = True

Then you can create a Segment of Language A or Language B.  You can then just have a Conditional Split in a single Welcome Series.  Since either form sends users to the same “Main List” - they can’t sign up more than once and go through the Flow since List Triggered Flows can only be received once.   

Or if you prefer to create two separate Welcome Series with a Flow Filter for either Language A or Language B, then add the exclusionary rules from each other like I mentioned at the very top. 

Using Custom Properties gives you a bit more flexibilities for future Flows and even in your Templates and Custom Consent pages down the line.