How to trigger an email flow with a Signup Form

  • 7 October 2021
  • 13 replies

Badge +2

I have set up a 10% off coupon Signup Form in Klaviyo. I would like to use anyone that submits their email address to this Signup Form popup to then trigger the email Flow I have created for these visitors. But when I go to choose the trigger for my Flow the Signup Form list does not show up. 


Best answer by Dov 12 October 2021, 18:02

View original

13 replies

Userlevel 7
Badge +61

Hello @Kdahl,

Thank you for posting this question to the Klaviyo community.

When you navigate to the lists/segments tab in your account, are you able to see the list in question? If not, it may have been deleted which would explain why it’s not showing up as an option to trigger the flow. If this is the case, you’ll need to reach out to support to recover this deleted list. Once this is recovered, you will be able to select this list to trigger the flow.

If you do see the list in the list/segments tab, but still not able to trigger the flow off of this list, I recommend double-checking that you are selecting “List” as the trigger for the flow. Also check that it is in fact a list and not a segment, often these get confused :). If you can confirm that the list is there in the lists/segments tab and that you are selecting the proper trigger of “List”, please attach some screenshots of the list name within the list/segments tab, and what you’re seeing when you select the “List” flow trigger.

Badge +2

Hi Dov,


Thanks for your reply! Although I don’t think it quite answers my question.

I currently have a Signup Form pop up that I created in Klaviyo. When people put their email address into this pop up where do those emails go? I need whatever list that they are populated into to trigger my Flow. When I go to my Lists segment I do not see one associated with the Signup Form pop up. Does that make sense?

Userlevel 7
Badge +61

Hello @Kdahl,

Thank you for providing that clarification.

Each sign-up form should be associated with a specific list that users are submitted to after they fill the form and confirm their subscription (by default, though the subscription confirmation step can be disabled. More information on that here). 

It sounds like you may need to update the list to submit in the sign-up form to align it with an existing list in the lists and segments tab. From there, that list can trigger the flow.

In order to align all of this, navigate into the sign-up form editor and click on the Call to Action (CTA) button and look under “List to Submit”. Ensure a list is selected here and that it is the correct list that triggers the flow. Here is an example image from another post of where you should be looking. The menu on the left will appear after you click your CTA button.


Once you have this list in the sign-up form editor and it aligns with an existing list in the lists and segments tab, if your existing flow does not trigger off this list, you can clone your existing flow and then select this list as the trigger. That will remedy any misalignment between the form list and list that triggers the flow. 

I hope that is helpful

Badge +2

I have a similar question. I created an email pop up with a 10% off discount code that goes to my newsletter list. And I’m trying to figure out how do i send a flow that only goes to people who subscribed to this list via the pop up form. Do i need to create a trigger or segment the list? And how do i go about doing so?

Userlevel 7
Badge +61

Hi @reese,

Thanks for sharing this question with us.

You will actually create a flow filter that specifies the $source value of that particular signup-form. This essentially “segments the list” because each signup form has a unique $source value associated with it to distinguish it from all other Klaviyo forms. By default, the $source value of the Klaviyo signup form will be the name of the sign-up form. You can find that value by clicking on the Call to Action (CTA) button on the form under “Submit Hidden Fields” (on the left-hand side).  You can also change the value of the $source property to anything you wish. In the example screenshot below, a $source value of “TEST - hidden field” is being used:

In practice for a flow, in order to “filter” users based on $source you’ll first create a flow filter and use the following conditions: “Properties about someone” > “$source” equals “name of form”. This will limit the flow to only users who submitted the form with this source. We use “Properties about someone” because this condition pertains to properties on a profile (which is what the $source is a part of, in a broader sense). For more information on properties and how they pertain to profiles/flows and segments, I recommend reading more here.

Flow with a $source property as a filter

I hope that is helpful and thanks for being a member of our community.

Badge +2

Thank you so much for the clarification. It was very helpful.

So, in regards to people who subscribe to this same list at the shopify checkout instead of the pop up… I would just create a separate flow for them, correct?

Userlevel 7
Badge +61

Hi @reese,

Glad that was helpful :)

Yes, that is one solution. Simply clone the flow and then change the flow filter from “equals” to “doesn’t equal”. So the filter on the cloned flow will read: “Properties about someone” > “$source” doesn’t equal > “name of form”. In effect, the cloned flow will perform the inverse action of this flow, include everyone who joins the list but does not have that specific $source value, so that will include Shopify checkout users as well as anybody who fills out another Klaviyo form.

Alternatively you may find it easier to look into using a single flow with a conditional split in place of a flow filter. A conditional split would evaluate a user at a given point in a flow (unlike a flow filter which evaluates a user both when they enter the flow and before each email send in a flow). You would use the same logic for the conditional split as you did for the flow filter, then simply clone your existing emails in the flow to the other leg of the split. You can clone a flow email by clicking on the 3 little dots on the upper right-hand side of any given flow email 


Here’s a little infographic example of what this solution would look like:

You can edit the content of the emails down either leg of the split as you see fit, or leave them exactly the same, totally up to you.

Hope that helps!

Badge +4

Hi @Dov ,

Thanks for your great explanation. I’m just starting with Klaviyo and it helped a lot to understand the tool’s logic.

We’re using different forms (e.g. “Newsletter signup”, “Download free pdf”, “Download trial”) whose submission should be followed by different emails. However at the end, we want to contact all those subscribers with our general newsletter.

Is the best practice to set up one list per form and maybe create a segment that includes all these lists to send to, or would you recommend to use one list and send out the various follow up emails via one flow (as you described above).

I understood now, that I could set up up one flow with different legs for each form.

However, what happens if a contacts submits mulitple forms (first “Newsletter signup” and a week later “Download free pdf)?

  1. Will the contact enter the flow again, on the other tree?
  2. Will the DOI email be send again even though it had been confirmed before, after submitting the previous form?
  3. What happens if an unsubscribed contact submits the form?

Thanks a lot for your help!


Userlevel 7
Badge +58

Hi there @DRMax,

Great question and thanks for sharing here.

I would recommend having one main list for your newsletter and creating segments based on the form itself. Streamlining your contacts into a single main list is a best practice to analyze your owned marketing strategy and optimize deliverability. More info about maintaining one main list can be found here. I would also Create a Segment Triggered Flow to send different flow emails to each segment for your three examples. You will still end up with 3 different flows.  This article will walk you through how to create a segment: Guide to Creating Segments.

In terms of how contacts move through a flow, contacts will enter a flow as long as they meet the requirements set. Due to the nature of how our List settings work for double opt-in, it wouldn't be possible to disable double opt-in for specific profiles. The best solution would be to modify the form behaviors to not show for someone already subscribed to your List. It wouldn't be possible to not show the opt-in message for people who sign up to a List where double opt-in is required. However, you could change your form's behaviors to either not show to existing Klaviyo profiles or not show to people in certain Lists/Segments:


Whenever someone unsubscribes from your emails, they become globally suppressed (unsubscribed from all lists) in Klaviyo. This is because when contacts choose to unsubscribe from one of your emails, they typically expect to unsubscribe from all of them. However, contacts can resubscribe and be re-added to your list.
A contact can resubscribe by: 

  • Filling out a Klaviyo signup form or subscribe page 
  • Filling out a form that relies on Klaviyo’s V2 Lists API endpoint (either a third-party form, or a form built by your developers)

Hope this helped,


Badge +4

Hi @alex.hong ,

thanks for your quick and helpful reply.

Okay, following your best practice this would mean I set up:

  1. Three different forms that send contacts to the same list “Newsletter” (DOI email will be send here)
  2. Create three segments based on the specific submitted form
  3. Create three flows that are triggered by contacts being added into one of the segments above (Including the specific emails like PDF download etc.)

Does that make sense?

Just one more question regarding that approach: How can I create a segment based on a submitted form? Do I have to use the conditions described above (“Properties about someone” > “$source” equals “name of form”)?

If yes, what happens if a contact submits “form A”, and a week later “form B”? Will he be removed from the segment for “form A” because the $source property changes to “form B” once he has submitted that? For our analytics it would be great if we could see the multiple forms a contact has submitted over his life time.

Thanks a lot!


Userlevel 7
Badge +58

Hi @DRMax,

Glad I could help.

Yes you can still have these contacts that subscribe through a signup form route to the same list as all of your other opted in contacts and just trigger a Welcome series for subscribers who came through specific signup form(s). When a subscriber signs up through a Klaviyo signup form, they will automatically get the $source profile property associated with their profile. In order to locate/change the $source associated with a signup form, you can click on the submit button of the form in Klaviyo’s signup form editor and see it nested under ‘Hidden Fields.’ You’ll want to add the flow filter to your welcome flow “properties about someone where $source=x.”

The $source property will be overwritten if a new sign up form is used after initially subscribing. You can create a segment of profiles with a property, and make that segment the trigger of your flow. You could also make a segment that collects any profile that has one of multiple $source values, as shown in the example screenshot below. 

We unfortunately don't have any specific tracking in place for profiles that used the same form multiple times.  Also, I'm sure that you know this already but it's not possible to be added to a list or trigger a flow more than once.

Klaviyo forms allow for you to hide/show based on either existing in your account or in a specific list or segment, this can be found in the behaviors tab:


This setting might be a good call if you think that profiles are using the same form more than once.

Badge +4

Hi @alex.hong ,

Got it. Thanks a lot!

However, if a contact first submits Form A and weeks later Form B, he will leave the “Source = Form A” segment and enter the “Source = Form B” segment, as the property gets overwritten, right?

That would ensure he then receives the Form B welcome journey, but what if I want to send a follow up email to everyone who has submitted Form A after a few months? The source property of this certain contact would not contain the info that he once submitted Form A.

In other tools, I’ve seen static lists for these kind of operations that contacts can be added to. What would be the way to go with Klaviyo?


Userlevel 7
Badge +58

Hi @DRMax,

Going to attach some documents regarding how contacts move through flows to get a better understanding on this mechanic.

How Contacts Move Through a Flow

Understanding the timing of a flow

Understanding flow triggers and filters

For that use case, we suggest using custom properties to label a profile for each time they submit so that you can track what forms they have submitted.