Segments 2.0 is the new version of Warmly’s lead search engine. It’s built to be simpler, faster and more powerful than the previous version. Let’s explore this new tool so you can unlock its full power and find leads you didn’t even know existed!
Segments are now split into five different categories (highlighted in blue) - each covering filters for either company or contact (and sometimes both). This is important so you can build more specific filters and also helps us query data more efficiently.
Target Customer Profile | Covers company details to help you build your ICP - or filter out companies you are not interested in |
Company (exists or not) | Filters if a given company exists or not - even though that may sound weird, a company exists if it has been identified on Warmly. |
Industry | What industry the company operates in - e.g. Internet Services, Financial Services, etc (Clearbit data) |
# Employees | How many employees the company has - based on ranges (Clearbit data) |
Country | What country is the company’s HQ located (Clearbit data) - NOT a website visitor’s location which is covered in a different category |
State | Same as above but narrows down to a deeper level for USA based companies (Clearbit data) |
Revenue | Annual revenue of the company - also based on ranges (Clearbit data) |
CRM Company | Filters data available on any integrated CRM at the account or deal level - can be combined together |
Account | |
Account (exists or not) | Checks if there is an account in your CRM for that company |
Lifecycle stage | The current lifecycle stage of an account |
Owner | The owner of the account |
Opportunity (Deal) | |
Opportunity (exists or not) | Checks if there is an opportunity in your CRM for that company |
Amount | The amount of the opportunity |
Close date | The close date of the opportunity |
Owner | The opportunity owner |
Stage | The opportunity stage |
Status | The opportunity status |
CRM Contact | Filters data available on any integrated CRM at the contact or lead level (SFDC only for the latter) - can be combined together |
Contact / Lead (exists or not) | Checks if there is a contact /lead in your CRM for a given email address |
Owner | The owner of the contact or lead |
Signal | Filters data from signals (currently website engagement and Bombora intent) |
Website Engagement | |
Page visit domain | The domain that has been visited (e.g. |
Page visit path | The pages path names that have been visited, anything that comes after the domain (except UTM parameters) (e.g. |
Active session time | Total time spent on the website - when querying multiple sessions this will sum up the time spent on all sessions over a period for a company or specific visitor |
Website form fill | The page path name containing the form that has been filled |
UTM | UTM parameters found in the website visit - can be filtered by: - a parameter name (e.g. - a specific parameter + value (e.g. - whether there is any UTM parameter recorded or not |
Chat Engagement | Filters if there’s any chat engagement (message sent) from the website visitor |
Visits from location | Location of the visitor - identified by the IP address, this may differ from the company HQ location if it’s an identified visitor (see Target Customer Profile) |
Other Signals | |
Bombora research intent | Filters by a specific intent level (early, active or in depth research) or whether the intent exists for that company or not (make sure to select up to 10 research topics in the Bombora integration tab!) |
Buyer Persona | Coming soon! We'll update the section once it’s released |
Important: CRM Company and CRM Contact categories will only be available for the CRMs you have integrated (if you have). In addition to the default fields available for filtering, any custom field that has been set up to sync will also show up as an option to build filters/segments with.
This is one of the main changes from the previous version as we tried to make the segment building experience simpler and more uniform.
There are two operators which can be found in the majority of fields: Is any of
and Is none of
. They allow you to build a list of values to either include or remove them from the results, for example:
will get you companies from either of these two industries. On the other hand, if you change the operator to Is none of
you will get companies from any industry except those two.
Non-text values cannot be filtered using the same logic, but those can be handled using specific operators:
Numeric filters like Opportunity amount
let you use Equals to
, Is greater than or equals to
, Is less than or equals to
, Is between
, then specify a value or a range of values which the deal amount must be in, the bellow example gets deals of $10K+.
Date filters like Opportunity close date
let you use Is
, Is after
or Is before
a specific date, e.g.:
These operators are currently available on a few text-based filters, but they function with a somewhat nuanced behavior:
- Page Visit Path and Website Form Fill
This will filter the selected values and include whatever text follows up each one, for example:
will get you people/companies who have visited any page under /blog
- including itself. So /blog/clearbit-competitors
and /blog/warm-leads
will also match.
Keep in mind that the selected values are the starting point so /p/blog/any-other-path
won’t match in this case.
The Does not start with
works similarly but with the opposite effect, for example if you want to exclude people who have only visited any blog posts instead.
- UTM
By default the UTM parameter filter will show you a list of parameter_name=value
to select and filter using the already classic Is any of
and Is none of
operators. But you may want to check for the presence or absence of a specific UTM parameter name regardless of its value. In this case you can change the operator to either Starts with
or Does not start with
to turn the values list into a parameters only, e.g.:
The above example gets you website visits that included any utm_source
.
Since CRM data is organized with all its elements related to each other, CRM segments come with one extra option to change how data is queried. Known off the record as “exclusive filter”, this option lets you change how the segment will handle the cardinality of a field. You will see this as the dropdown bellow the operator and search input:
To better understand the purpose of this option lets see how CRM data is organized:
Contacts and deals exists linked to an account, and they are many. Depending on what you're looking for you may set up the filters differently. For example:
“I want to filter accounts which have never closed a deal successfully”
The first thing that may come to mind is to set up is an opportunity stage filter with either is any of Closed Lost
or is none of Closed Won
. Now let’s consider the following account:
Both filters would match this, but the intended result wouldn’t be right because despite the past closed lost deals, there is a closed won.
In order to narrow down the results and say that you want exclusively Closed Lost deals you need to change the option from At least 1 opportunity
to All opportunities
. This will automatically remove values other than the ones you selected. Just like that.
Important: in this case, using Is none of
gets you the most accurate results. By selecting Is any of
Closed Lost in All opportunities will exclude intermediate stages such as First meeting
or Final negotiation
which are also not Closed Won deals.
Some other examples where the cardinality can make the difference:
You want companies with all deals owned by a single person - All opportunities
should be selected
Same for contacts or leads owned by a single person
Not as common as the previous, but you may have multiple branches of the same company under the same domain, e.g. adobe.com
, adobe.com/jp
, adobe.com/uk
. These could be 3 different accounts in the CRM each with its own lifecycle stage and owner, so any filter must include All accounts
to make sure the one who matches will not be affected by the others.
All filters are contained inside a higher level data group - the category. Any segment filter added will assume that the data exists in this group in the first place. Consider the following:
When you add a CRM account filter, there must be a CRM account there otherwise it won’t match. This may sound obvious, but if you are using the Is none of
operator this may lead to some confusion.
To exclude values from the result a CRM account still must exist. A filter like CRM account stage
is none of
Customer
for example, will return any other account in a different stage, and you may think companies there are not in the CRM will also match since they don’t have the stage Customer
to begin with. But that is not what happens since they don’t even exist in the CRM at all. How do you include those then?
To handle this case you must combine that filter with OR
CRM account does not exist
to tell the segment engine to explicitly include them in the results. The end segment will look like this:
The segment will be executed as the following:
The same goes for Target Customer Profile as it won’t consider unidentified leads whether you are including or excluding values from the results. For that a similar approach is available by adding the OR
Company does not exist
filter.
For example, if you are looking for a few specific industries, but if it doesn’t match then you want unidentified people (so you can engage with an Inbound Chat). The segment will look like:
Now that you have a filter let’s build another one and combine them. Like the classic segments there are 2 combinators available: AND
and OR
. They may be used in 2 different levels to enable more complex segments. Before we move forward, let’s have a quick “boolean logic 101”:
Each filter will be evaluated individually and will return whether it matches or not. Is the Company Industry any of Internet Services? Are the CRM deals not Closed Won? Then the filter group will combine them and push the result to the upper level, which will do the same with all group results to ultimately get the segment result. Using the AND
combinator will require all filters to match so the group end result will be true
whereas OR
only requires one of them to match.
Adding the first filter will give you two buttons to add the second filter (and the following ones, as many as needed), this is when you select the combinator for that group:
You can change that later without having to reset the existing filters by changing the dropdown at the top of the group container:
You can add a new group and that will enable the Segment level combinator, which works similarly:
Each group has its own combinator and each of them can be set individually.
Once you build the segments of each category and named them meaningfully you can start using them combined. Will you find the Segment Selector across many Warmly features:
Any segment selected inside a category will be combined with an OR
, and segments of different categories will be combined with an AND
. For example:
Returns matches for the segments:
General ICP OR Internet Companies from the Target Customer Profiles
AND
LinkedIn UTM Source Visitors from Signals/Website Engagement
Combining both is straightforward most of the time and routine, since most of segments will not be made of single filters so often. But there are some gotchas you must be aware of to prevent wrong or inconsistent results. Let’s start with the type of segment you're creating:
This is probably the most common usage of a segment’s filter, by selecting the Is any of
operator (or any other that doesn’t include a negative term) you are telling the segment to explicitly add a certain range of values to your results. If you combine it with another filter of the same category to narrow down the results, AND
will be your combinator to go:
Which can be combined with another filter group on the same segment to broaden the search:
This is not a rule of thumb, but filter groups are more commonly used to specify the search even further what you want to see, whereas adding more filter groups will help cover different situations on the same segment.
But if you are not trying to narrow down a search and just cover more options, then the operator must be OR
, following the semantics of the Is any of
operator as: it can be this, or that, etc
Removing values from the results is also another way of using a segment - and sometimes easier, but they are quite more nuanced than they look. If we go back to the Existence Paradox, you’ll see that every filter is contained inside a data group - the category, e.g. all CRM Deals fields are connected by the same group:
Combining filters of two different deal fields will make the segment reference the same deal again. As we've seen before, using the Is any of
with AND
will just narrow down the search to a more specific result - and that is fine.
On the other hand when you remove a value that you don’t want to see, you are implicitly leaving all the others - which is not always clear:
Specially for CRM data segments - though this example is simplified - real life deals often have a long list of stages, owners and statuses. Combining this filter with another one may lead to a conflict - for example some deal stages exist only within a specific status and pipeline, and depending on how you set up the filters this will get no results.
A deal stage or status may reference an account’s lifecycle stage or status as well, thus making it more prone to confusion. Consider the following segment (which by the way was taken from a real segment):
This segment returns no results since excluding values combined by OR
in different objects (account and opportunity) are including a lot of other values to the filter under the hood. If we invert the above filter to rather include what we want to see the list will be massive, so choosing to remove values is certainly the right thing to do. So how should this filter be re-built?
Depending on how your CRM data is organized and which statuses/stages you are using, just changing the combinator to AND
could do the trick. Or you can split them by object first and combine both the filters and the filter groups.
Looks like they're doing the same thing, isn’t it? In fact they are, but splitting also make it easier to spot what’s going on when you open the segment definition. It also illustrates how it might be tempting to use OR
when combining two different CRM providers, but still AND
must be used since the data exists in both.
Again - not a rule of thumb - but when excluding values from the results you'll find yourself using AND
more often than you think :)
This article was written by the Customer Success team at Warmly. Please feel free to reach out to your CSM directly or [email protected]