What are segments in HubSpot?
Segments are HubSpot’s name for what used to be called lists: saved groups of records that match filters you define, such as all contacts in Germany who opened an email in the last 30 days. You’ll find them under CRM > Segments. HubSpot renamed lists to segments, but “list” still turns up in some menus, URLs, older help articles and the API, so treat the two words as the same thing.
There are two types:
- Active segments update automatically. Records join when they start matching the filters and leave when they stop.
- Static segments capture the records that match when you save. They don’t update on their own, though you can add and remove records by hand.
Segments are available on every HubSpot subscription, including free. What changes with your tier is how many you can have and what you can do with them, such as which association filters are available.
Active or static: which should you use?
Use an active segment when the group should always reflect current data, and a static segment when you need a fixed record of who was in a group at a moment in time.
Active is the right choice for most marketing and sales uses: “open opportunities in EMEA”, “customers with renewal in the next 90 days”, “contacts suppressed from marketing email”. Static is right for things like “attendees of the March webinar”, “contacts imported from the trade show”, or “everyone who received the pricing change notice”. In each of those, you want the list to stay the same even if the underlying data changes later.
Teams get into trouble when they use one where the other belongs. A common example: someone builds an active segment called “Webinar March attendees” with the filter Webinar attended is any of March webinar. Later, a colleague renames the webinar value or merges it into a general “Webinar” option during a cleanup. The segment empties overnight, and so does every report and workflow built on it. A static segment saved right after the event would have kept its members.
You can convert between the two. An active segment can be set to Auto-convert to static from its settings, and a static segment that has filters can be turned back into an active one with Actions > Convert to active.
How to build filters that mean what you think
Click Create segment, choose the object, and start adding filters with + Add filter. Filters come in three categories:
- Properties: values stored on the record, such as country, lifecycle stage or last contacted date.
- Events: things the record did, such as submitting a form, viewing a page or opening an email.
- Memberships: membership of other segments, workflow enrollment and similar.
Filters inside a group combine with AND. Use + Add filter group to add an OR group. This is where most logic errors creep in. Two filter groups that each say “Country is Germany” plus something else don’t mean “Germany AND (A OR B)” unless both groups carry the Germany filter. If you forget it in the second group, you’ll get every record that matches B, anywhere in the world.
A few habits that prevent most mistakes:
- Write the segment’s definition in a sentence before building it, then read the filters back and check they say the same thing.
- Use the Test matches toggle to preview who matches, and open a handful of records that you expected to be in and some that you didn’t.
- Prefer properties over events when the property already records what you need. “Lifecycle stage is Customer” is easier to read and maintain than three purchase-event filters.
- Be careful with “is unknown”. It matches empty values, which can include every record created before the property existed.
- Use the Exclude toggle to remove records in another segment, such as current customers or internal contacts, rather than stacking negative filters.
There are limits: up to 250 filters per segment, including up to 60 filters on associated objects. A segment that needs anywhere near that many filters is usually a sign that a property is missing. If you’re repeatedly writing the same 20 filters to describe “qualified B2B lead”, create a property that stores that judgment (set by a workflow) and filter on it.
Filtering on associated records
Segments can filter on records associated with the one you’re segmenting, such as a contact segment filtered on company properties. The Any [object] dropdown lets you decide which associated records count. On Professional and Enterprise subscriptions, you can narrow it to the Primary Company or to associations With label, and switch “any of” to “all of”.
This matters more than it sounds. Imagine a contact associated with two companies: their current employer and a previous one that’s still a customer. A filter on “Company lifecycle stage is Customer” using any associated company will include them in your customer segment, even though their current company has never bought anything. Filtering on the primary company, or on a labeled association like “Employer”, gives you the answer you meant.
How quickly do active segments update?
Most active segments add a record within moments of the matching change, but it isn’t always instant. At the time of writing HubSpot says bulk updates or complex segments can take up to an hour, and segments that depend on integrations, page views or other segment memberships can take up to two hours to process. The count shown is an estimate until processing finishes.
This has two practical effects. First, if a workflow is triggered by segment membership and the segment takes an hour to update, the workflow fires an hour late. For time-sensitive actions, like routing a demo request, trigger on the event or property directly. Second, if you send an email to an active segment right after a large import, some imported contacts may not be in it yet. Check the count has settled first.
Chains make both problems worse. A segment based on membership of another segment, which is itself based on a third, is slow to process and hard to debug. Keep chains to one level where you can.
Segments and workflows
Segments show up in workflows in two main places: as enrollment triggers, and as suppression or unenrollment criteria. Both are useful. Both create a hidden dependency, because the workflow’s behavior now depends on a segment that can be edited by anyone with segment permissions.
Picture a re-engagement workflow that enrolls contacts in a segment called “Inactive 90 days”. A marketer edits that segment to widen it to 60 days for a one-off campaign. The workflow immediately enrolls everyone between 60 and 90 days inactive. No one touched the workflow, and no one was warned.
To reduce the risk:
- Name segments used by automation clearly, for example with a “WF –” prefix, and put them in their own folder.
- Check the Used in tab before editing any segment. It shows where the segment is referenced.
- For simple conditions, put the filters directly in the workflow trigger instead of pointing to a segment.
HubSpot won’t let you delete a segment that a workflow uses; the delete option is grayed out until you remove the segment from the workflow. That stops one class of accidents, but it doesn’t stop edits. Deleted segments can be restored from Recently deleted for 90 days.
For a deeper look at enrollment and suppression, see our HubSpot workflow audit guide.
A naming and maintenance routine
Segments multiply faster than any other HubSpot asset, because they’re quick to create and rarely have an owner. Finding hundreds of segments, many called “Copy of…” or “test”, is common. It’s also a problem, because you’ll eventually hit your segment limit with no record of which ones are safe to delete.
A routine that keeps things manageable:
- Use a naming pattern that shows purpose and type, such as “Email | Active | Customers renewal 90d” or “Event | Static | Webinar 2026-03 attendees”.
- Use folders by function: email audiences, automation, sales views, events, imports.
- Add the owner and purpose to the segment name or folder if nothing else records it.
- Once a quarter, sort by last updated and review anything not used in a workflow, email or report. Static segments for past events can usually be deleted once the follow-up is done.
- Before deleting, check Used in.
Building a segmentation model, not just segments
Individual segments answer individual questions. A segmentation model decides which few dimensions matter to your business and makes sure the data for them exists and is reliable. For most B2B companies that’s lifecycle stage, customer status, region, company size and product interest. For most service businesses it’s service type, location and last job or visit date.
If those dimensions are clean properties, almost every segment becomes a handful of filters. If they’re not, every segment turns into a pile of event filters and workarounds. That’s why segmentation problems are usually property problems. Our guide to HubSpot property architecture covers how to set those dimensions up, and the HubSpot lifecycle stages guide covers the most important one.
Are HubSpot lists and segments the same thing?
Yes. HubSpot renamed lists to segments. Active and static lists became active and static segments, and some menus, URLs and API references still use the word “list”.
Why is my HubSpot segment count changing?
Active segments add and remove records as data changes, and large or complex segments can take a while to finish processing. The count is an estimate until processing completes. If the count drops suddenly, check whether a property value used in the filters was renamed or changed.
Can I send marketing email to a company or deal segment?
No. Marketing emails go to contact segments. Ads audiences can use contact and company segments.
Why can’t I delete a segment?
Usually because it’s used by a workflow or another tool. Check the Used in tab, remove it from those assets, then delete it.