# Lists

**Summary:** A list selects member records for review, export or a message audience. Membership does not establish consent.

- Role: [Technical Support](https://www.subrite.no/technical-support)
- Source: https://www.subrite.no/technical-support/lists
- Updated: 2026-09-28
- Markdown index: https://www.subrite.no/technical-support/llms.txt

In code, lists are called segments.

<a id="membership-model"></a>
## Membership model

Each result represents one member, even when several subscriptions or products match.

| Type | Membership | Contact details |
| --- | --- | --- |
| Dynamic | Runs saved conditions when members are requested or the list is used. | Read from current member records. |
| Static | Publication starts a job that stores matching member links. Later subscription changes leave those links unchanged. | Read from current member records, including updated email addresses. |

**Preview** evaluates the form's conditions without saving them. A static draft can have Preview matches and an empty **Members** tab because population starts only at publication. [Member reads and preview](https://github.com/subrite/subrite-crm/blob/6cd1850569be3b1702ca736a19320c7626efb7bc/api-server/src/modules/segmentation/services/segmentation.service.ts#L433-L505), [dynamic/static reads](https://github.com/subrite/subrite-crm/blob/6cd1850569be3b1702ca736a19320c7626efb7bc/api-server/src/modules/segmentation/repositories/segment-member.repository.ts#L32-L99).

<a id="unexpected-matches"></a>
## Unexpected matches

**All (AND)** requires every rule in a group; **At least one (OR)** requires one. Nested groups have their own AND or OR setting.

For active Digital access subscribers, combine **Subscription status** = **Active** and **Product** including Digital access with AND. OR also includes inactive Digital access subscribers and active subscribers to other products.

Ordinary combined subscription and product rules match the same subscription and product line. Two AND conditions for different products cannot select members who own those products on separate subscriptions. Multi-value **includes** matches any selected value.

These rules cover subscription owners and members with accepted sharing invitations. Pending invitations do not qualify, and product rules add no automatic Active restriction. [Relationship evaluation](https://github.com/subrite/subrite-crm/blob/6cd1850569be3b1702ca736a19320c7626efb7bc/api-server/src/modules/segmentation/services/segmentation.service.ts#L668-L790), [owner/seat matching](https://github.com/subrite/subrite-crm/blob/6cd1850569be3b1702ca736a19320c7626efb7bc/api-server/src/modules/member/sql/member-package-access-sql.ts#L11-L104).

Product, package and plan **excludes** requires no matching relationship through ownership or an accepted seat, across all subscription statuses. A member with one matching subscription and another nonmatching subscription is still excluded. [Exclusion predicate](https://github.com/subrite/subrite-crm/blob/6cd1850569be3b1702ca736a19320c7626efb7bc/api-server/src/modules/segmentation/services/segmentation.service.ts#L1509-L1535).

Some conditions evaluate the member independently of the other subscription rules:

- **Subscription inactivity** checks subscription history and current access through owned subscriptions or accepted seats.
- **Type of member** checks ownership or accepted seats without requiring Active status.
- **Extra users on group plan** checks an owned, active, non-gift group subscription. The count includes accepted seats and invitations that have not expired, excluding the owner's own seat.

For example, an extra-user condition and a package condition can match different subscriptions belonging to the same member. Inspect these predicates separately when diagnosing combined rules. [Inactivity and member type](https://github.com/subrite/subrite-crm/blob/6cd1850569be3b1702ca736a19320c7626efb7bc/api-server/src/modules/segmentation/services/segmentation.service.ts#L1205-L1319), [extra users](https://github.com/subrite/subrite-crm/blob/6cd1850569be3b1702ca736a19320c7626efb7bc/api-server/src/modules/segmentation/sql/group-extra-users-sql.ts#L9-L108).

Generic **is empty** tests database NULL, not blank text, zero or false. Consent and custom-property conditions use separate handling.

Absolute dates use Oslo day boundaries; relative days use 24-hour offsets from evaluation time. Some “within” operators need boundary testing, including dates on the opposite side of now. [Comparison and date handling](https://github.com/subrite/subrite-crm/blob/6cd1850569be3b1702ca736a19320c7626efb7bc/api-server/src/modules/segmentation/services/segmentation.service.ts#L1557-L1664).

<a id="static-publication-and-saved-conditions"></a>
## Static publication and saved conditions

Type cannot change after creation. Published lists cannot return to draft. Dynamic conditions remain editable; published static conditions are locked. Both types allow name and description changes.

Static population processes batches of 1,000 matching members. A list can be Published while population is unfinished. No reliable completion signal in the admin was verified.

Two unverified source findings affect edited static drafts:

- Saving conditions while keeping a static list in Draft appears to skip storing the revised query.
- Publishing a saved static draft starts population before saving the revised query, creating a possible ordering race.

These findings have not been reproduced in production. Engineering needs to compare the persisted query and population outcome with a fictional fixture before confirming either behavior. [Save/publication order](https://github.com/subrite/subrite-crm/blob/6cd1850569be3b1702ca736a19320c7626efb7bc/api-server/src/modules/segmentation/services/segmentation.service.ts#L139-L175), [population](https://github.com/subrite/subrite-crm/blob/6cd1850569be3b1702ca736a19320c7626efb7bc/api-server/src/modules/segmentation/services/segmentation.service.ts#L1666-L1695).

<a id="different-counts"></a>
## Different counts

Compare the list type, saved conditions, unsaved edits and capture times before investigating a count difference.

| Surface | What it counts |
| --- | --- |
| Preview | Matches for submitted conditions, including unsaved edits. An open preview does not refresh continuously. |
| Saved dynamic list | Matches for the saved query at request time. |
| Saved static list | Stored member links. Population can still be incomplete. |
| Export picker | A cached count with a one-hour fresh window. Older values remain visible during background refresh. An unusable dynamic query can show zero. |
| Export output | The full list and current member details when the queued export runs, beyond the visible table page. |
| Email/SMS recipients | The prepared audience after channel-address and audience-eligibility checks. |

List saves mark export-picker counts stale for background refresh. Large exports read batches, so data changes during execution can affect the result. [Count caching](https://github.com/subrite/subrite-crm/blob/6cd1850569be3b1702ca736a19320c7626efb7bc/api-server/src/modules/segmentation/services/segmentation.service.ts#L243-L313), [export execution](https://github.com/subrite/subrite-crm/blob/6cd1850569be3b1702ca736a19320c7626efb7bc/api-server/src/modules/export/services/export.service.ts#L993-L1087).

<a id="messages-and-deletion"></a>
## Messages and deletion

List membership does not establish consent. Saving or deleting a list sends no messages; Automation has no list-entry or list-exit trigger.

Email and SMS prepare a recipient snapshot after applying channel-address and audience-eligibility rules. Retries reuse a completed snapshot; later list edits leave that audience unchanged. For missing recipients, check the send's preparation state and eligibility rules alongside list membership. [Audience rules](https://github.com/subrite/subrite-crm/blob/6cd1850569be3b1702ca736a19320c7626efb7bc/api-server/src/modules/communication/services/communication-audience.service.ts#L208-L255), [send preparation](https://github.com/subrite/subrite-crm/blob/6cd1850569be3b1702ca736a19320c7626efb7bc/api-server/src/modules/communication/services/communication-send.service.ts#L125-L190).

Deleting a list keeps member records and later removes its membership links. A scheduled communication referencing the deleted list can fail preparation.

<a id="list-targeted-push-unverified-restriction"></a>
## List-targeted push: unverified restriction

Source inspection found that push extracts member IDs by replacing `SELECT *`. The list generator instead produces `SELECT DISTINCT ON` with named columns, so the extraction can return empty IDs.

With empty IDs, the push recipient query omits the list restriction. For static lists, the push path also reruns conditions instead of reading stored member links.

This has not been reproduced in production. Engineering must validate the restriction before staff recommend list-targeted push. [ID extraction](https://github.com/subrite/subrite-crm/blob/6cd1850569be3b1702ca736a19320c7626efb7bc/api-server/src/modules/app-push/services/push-dispatch.service.ts#L348-L362), [recipient filtering](https://github.com/subrite/subrite-crm/blob/6cd1850569be3b1702ca736a19320c7626efb7bc/api-server/src/modules/app-push/repositories/push-subscriber.repository.ts#L16-L40).

<a id="access-and-verification-limits"></a>
## Access and verification limits

The menu needs **Read-only** for **Members** and the subscription feature. List reads and **Preview** need **Read-only** for **Segments**; creation and edits need **Can edit** for **Segments**. Product and communication selectors require their own read permissions.

Source checked on 28 September 2026 at `6cd1850`. The 27 September UI walkthrough used an unsaved fictional list and a zero-row preview.

Saved outcomes, population, exports, sends and ordinary-role access were not replayed. Relative date windows, complex consent rules, payer fields, custom comparisons and **Save as list** conversion need fixture tests.

For escalation, record the list type, status, saved conditions, relevant times, expected matches and actual result. Include population or send-preparation state when it affects the case.

For publisher instructions, see [Lists in Administrators](https://www.subrite.no/administrators/lists?md=true).

## Related pages

- [Lists](https://www.subrite.no/administrators/lists?md=true): A list groups member records for review, export or audience selection. Membership alone does not establish consent.
