How to use sign-up source for segmenting email subscribers?
TL;DR: To segment email subscribers by where or how they signed up, use the $source profile property in Klaviyo's segment builder. Navigate to Audience > Lists & Segments > Create Segment, then add the condition Properties about someone > $source > equals > [your source value]. Source values can appear as text labels like "Embedded Form," "Modal," or "Flyout," or as numeric codes like -4 or -3. Use whatever your account displays. Keep in mind that $source can be overwritten by later sign-up actions, so if you need permanent first-touch attribution, store a custom property at the time of opt-in instead.
Why segmenting by sign-up source matters
Knowing where a subscriber came from gives you a meaningful signal about their intent and context. Someone who signed up through a homepage popup may need a different welcome experience than someone who opted in via a checkout embed or a targeted landing page form.
Segmenting by sign-up source lets you:
- Tailor welcome flows and discount offers to match the context of the opt-in
- Measure which forms are driving your highest-quality subscribers
- Personalize messaging based on what you already know about how someone found you
According to eMarketer data cited in Klaviyo's own resources, 39% of email marketers who practice list segmentation see better open rates — and source-based segmentation is one of the most underused ways to get there.
How Klaviyo tracks sign-up source
Klaviyo automatically sets a profile property called $source when a contact is added to your account. This property records the channel or method through which the profile was created — for example, a specific Klaviyo sign-up form, an API call, a manual import, or a third-party integration.
What $source values look like
Depending on your account and how profiles were created, $source may display as:
- Text labels - e.g.,
"Embedded Form","Modal","Flyout", or the name of a specific form - Numeric codes - e.g.,
-4,-3,-2(used for certain integrations or import methods)
When building your segment, use whatever value your account actually displays. You can check this by opening a profile that signed up via the source you want to target and looking at their profile properties.
Important limitation: $source can be overwritten
$source is not a permanent first-touch field. If a subscriber later submits another form or is re-added through a different channel, the $source value on their profile may be updated to reflect the most recent action.
If you need reliable, original sign-up attribution that won't change over time, see the workaround in the section below.
How to build a segment by sign-up source
Option 1: Segment by a Specific Sign-Up Form
Use this when you want to identify everyone who signed up through one particular Klaviyo form (e.g., a homepage popup or a landing page embed).
- Go to Audience > Lists & Segments
- Click Create list / segment, then select Create segment
- Name your segment clearly (e.g., "Signed up – Homepage Popup")
-
Add the condition: Properties about someone > $source > equals > [Your Form Name]
- The form name here is the name of your Klaviyo sign-up form as it appears in your account
- To include multiple forms, click Add condition and select OR, then add another
$sourcecondition for each additional form
- Optionally add: If someone can receive email > is > true to filter to active subscribers only
- Click Save and review the member count
Option 2: Segment by Channel or Source Type
Use this when you want to group subscribers by the type of source (e.g., all embedded forms, all modal popups, or all API-added profiles).
- Go to Audience > Lists & Segments
- Click Create list / segment, then select Create segment
- Name your segment (e.g., "Signed up — Embedded Form")
-
Add the condition: Properties about someone > $source > equals > [e.g., "Embedded Form" or -4]
- Use the exact label or code shown in your account
- Layer additional filters as needed (e.g., subscription status, date range)
- Click Save
Workaround: preserve original sign-up attribution
Because $source can be overwritten, it's not always reliable for long-term attribution analysis. If knowing a subscriber's original sign-up source is important to your strategy, here's the recommended approach:
Store a custom property at the moment of first opt-in.
For example, create a custom profile property called first_source and set it to the form name or channel value when the subscriber first opts in (via a flow, API call, or form hidden field). Since custom properties are only overwritten when explicitly updated, this value will persist even if $source changes later.
Once set, you can segment on first_source the same way you would on $source:
- Properties about someone > first_source > equals > [value]
This is especially useful for welcome flow personalization, tiered discount strategies, and long-term cohort analysis.
Practical use case: tiered discounts by sign-up source
One powerful application of source-based segmentation is offering different discounts based on where someone signed up. For example:
- Visitors who signed up via a "first-time visitor" popup → receive a 20% off welcome email
- Visitors who signed up via a returning-visitor form → receive a 10% off re-engagement offer
- Past customers who signed up via a loyalty form → receive no discount (they're already engaged)
You can build this by:
- Creating separate sign-up forms with distinct names for each audience
- Building segments using
$sourceequals each form name - Using those segments as triggers or filters in your welcome flows
- Sending each segment into a flow branch with the appropriate coupon
This approach lets you avoid over-discounting while still personalizing the subscriber experience from the very first email.
Frequently asked questions
Q: What is the $source property in Klaviyo?$source is a built-in Klaviyo profile property that records how or where a contact was added to your account — for example, through a specific sign-up form, an API integration, or a manual import. You can use it as a condition in the segment builder to group subscribers by their sign-up origin.
Q: How do I find out what $source values exist in my account?
Open a profile in Klaviyo that you know signed up through a specific channel, scroll to their profile properties, and look for the $source field. The value shown there is what you'll use in your segment condition. Values vary by account and may be text labels (like "Modal") or numeric codes (like -4).
Q: Can I segment by which specific Klaviyo form someone used to sign up?
Yes. Klaviyo sets $source to the name of the sign-up form by default. In the segment builder, use Properties about someone > $source > equals > [Form Name] to isolate subscribers from a specific form. Use OR conditions to include multiple forms in one segment.
Q: Why is my $source segment showing fewer people than expected?
This can happen because $source is overwritten when a profile is updated through a new sign-up action. If a subscriber submitted a second form after their original opt-in, their $source will reflect the most recent form, not the first. Consider using a custom first_source property for more reliable attribution.
Q: Can I use sign-up source to personalize my welcome flow?
Absolutely. Once you've built segments based on $source, you can use those segments as flow filters or triggers to send different welcome emails — including different discount amounts, messaging, or content — based on where each subscriber originally signed up.

