Segments

    Build saved filters over a list in IGSendMail so you can send to engaged contacts, one country, or anyone who never opened, without splitting your list.

    On this page

    A segment is a saved filter over a list. You define the conditions once, and any campaign you point at that segment goes to the contacts who match at the moment it sends. When you finish this page you will have a segment you can select as a campaign audience, and a sense of which segments are worth keeping.

    Segments live under Segments, and each one belongs to a single list.

    Why a segment instead of another list#

    A segment is a view, not a copy. Nothing is duplicated, nothing is moved, and a contact who stops matching drops out of the segment on their own. That gives you three things separate lists cannot:

    • It stays current. A "signed up in the last 30 days" list is wrong tomorrow. A segment with that condition is right every day.
    • It does not fragment unsubscribes. One contact, one record, one subscription status.
    • It does not double-send. Segments overlap freely, but a campaign goes to one audience, so nobody gets two copies because they qualified twice.

    What you can filter on#

    Field values

    Any field on the list is available as a condition: the built-in ones and every custom field you added. Text fields compare with equals, contains, and their negations. Numbers and dates compare with greater than and less than.

    This is where clean field data pays off. A country field holding "US", "USA", and "United States" needs three conditions to catch one country. See Custom fields for how to avoid that.

    Engagement

    Conditions based on how contacts behaved with campaigns you already sent: whether they opened, whether they clicked, and the inverse of both. "Did not open" is as useful as "opened", and often more so, because it is how you find the part of your list that is quietly dragging your deliverability down.

    Note

    Open tracking is approximate. Some mail clients block the tracking pixel and some prefetch it, so a contact can read an email without registering an open, or register one without reading. Clicks are the stronger signal. When you are making a decision that matters, such as removing people, weight clicks more heavily than opens.

    Subscription date

    When the contact joined the list. Useful for welcoming a recent cohort, for excluding people who joined too recently to have received anything yet, and for finding contacts who have been on the list for years without ever engaging.

    Build a segment#

    Open Segments and create a new one

    Go to Segments and start a new segment. Choose the list it applies to first, because the available fields come from that list.

    Name it after the audience

    "Engaged, last 90 days" tells a colleague what it is. "Segment 3" does not.

    Add your first condition

    Pick a field or an engagement condition, choose the comparison, and enter the value.

    Add more conditions and set how they combine

    Decide whether a contact must match every condition or any of them. This is the step people get wrong. "Country is Canada AND country is Mexico" matches nobody. "Country is Canada OR country is Mexico" is what you meant.

    Check the size before you use it

    Look at how many contacts match. If the number is zero or suspiciously close to your whole list, a condition is wrong. Fix it now rather than discovering it after a send.

    Save it and select it when you build a campaign

    The segment is now available as an audience wherever you would choose a list.

    Practical examples#

    Engaged in the last 90 days. Opened or clicked a campaign in the last 90 days. This is your best audience. Use it when you are warming a new sending domain, when you are sending something unusual, or any time you want the highest chance of landing in the inbox.

    Never opened. Subscribed more than 90 days ago and has not opened any campaign. These contacts are the cost side of your list. Send them a re-engagement campaign, then remove the ones who still do nothing. List hygiene covers the policy.

    Customers in one country. Field country equals one value, combined with a field that marks them as a customer. Use it for shipping updates, regional pricing, local events, or anything with a legal wrinkle that varies by market.

    Everyone except a group. Segments support negative conditions, so "plan tier is not Business" gives you an upgrade audience without maintaining a separate list of who is already upgraded.

    Segments are evaluated at send time#

    This is the important behavior. A segment does not hold a frozen list of contacts. The conditions are applied when the campaign sends, against the data as it stands then.

    Consequences worth knowing:

    • A contact who matched last week but does not today will not receive the campaign. A contact who started matching this morning will.
    • An import that changes field values changes who a segment covers, immediately.
    • The count you see while building is a snapshot. Expect the number at send time to differ slightly, and to differ more the more time passes between the two.
    • If you need a fixed audience that will not move, a segment is the wrong tool. Use a field you set once, such as a campaign_group value written by an import, and segment on that instead.

    When a segment returns nothing#

    Check the combination rule first. Multiple conditions joined with AND on the same field almost always produce an empty result.

    Then check the data. A segment on a field nobody has a value for matches nobody. Open two or three contacts and confirm the field is actually populated, which it will not be if the field was created after your import.

    Finally, check the list. A segment belongs to one list, and a condition that works on your main list returns nothing on a list that does not carry that field.

    Last updated September 10, 2026

    Was this page helpful?