Skip to main content

Two ways to group contacts

SendKit gives you two approaches to organizing contacts. Use them separately or together depending on your needs.
ListsSegments
TypeStaticDynamic
How contacts are addedManually (you add/remove them)Automatically (based on filter conditions)
UpdatesOnly changes when you change itUpdates in real time as contacts match or stop matching
Best forCurated groups, imports, manual targetingBehavioral targeting, conditional audiences

Lists

Lists are static groups of contacts. You explicitly add contacts to a list and remove them when needed. They don’t change on their own.

When to use lists

  • Importing a group of contacts from a CSV
  • Organizing contacts by source (e.g., “Webinar Attendees”, “Beta Users”)
  • Building a fixed audience for a specific campaign
  • Triggering automations when a contact is added

Creating a list

Go to Contacts > Lists and click Create List. Give it a name and start adding contacts. You can add contacts to a list from:
  • The list detail page
  • A contact’s detail page
  • The API

Lists and automations

When a contact is added to a list, SendKit can automatically enroll them in active automations that target that list. This is a powerful way to trigger onboarding flows, drip campaigns, or follow-up sequences.
A list cannot be deleted if it’s used by an active campaign or automation. Update those first.

Segments

Segments are dynamic groups defined by filter conditions. Contacts are automatically included when they match your conditions and excluded when they don’t. You never manually add or remove contacts from a segment.

When to use segments

  • Targeting contacts based on attributes (e.g., “First name is set”)
  • Creating audiences based on custom properties (e.g., “Plan is Pro”)
  • Building conditional groups that stay up to date automatically
  • Combining multiple conditions with AND/OR logic

Creating a segment

Go to Contacts > Segments and click Create Segment. Then build your filter conditions.

Filter conditions

Each condition consists of a field, an operator, and a value: Available fields:
  • Built-in: email, first_name, last_name, unsubscribed
  • Custom: any Property you’ve created
Available operators:
OperatorWorks withExample
EqualsAll typesEmail equals user@example.com
Not equalsAll typesFirst name not equals Test
ContainsTextEmail contains @gmail.com
Not containsTextEmail not contains noreply
Starts withTextLast name starts with Mc
Ends withTextEmail ends with .edu
Greater thanNumbersCredits greater than 100
Greater than or equalNumbersCredits greater than or equal 100
Less thanNumbersAge less than 30
Less than or equalNumbersAge less than or equal 30
Is setAll typesFirst name is set (not empty)
Is not setAll typesLast name is not set

Match logic

Segments support nested groups with AND/OR logic:
  • Match all — A contact must match every condition group (AND)
  • Match any — A contact must match at least one condition group (OR)
Within each group, conditions can also use AND or OR logic. This lets you build sophisticated audiences like:
(Plan is “Pro” AND Country is “US”) OR (Signed up before 2026-01-01)

Real-time resolution

Segments are resolved dynamically every time they’re queried. There’s no sync delay — when a contact’s data changes, they immediately appear in or disappear from matching segments.

FAQ

Yes. A contact can belong to as many lists as you want.
Yes. Segments are independent — a contact appears in every segment whose conditions they match.
Yes. When creating a campaign, you can target a list or a segment as your audience.
Yes. Any Property you create can be used as a condition in segment filters, with all the same operators.
The contacts are not deleted — only the list and the associations are removed. The contacts remain in your account.