Segments

Segments are saved sets of rules that match groups of profiles. They power targeted communications, campaign audiences, automation triggers, and reporting filters. Segments combine rules from multiple data sources — profile fields, application status, event attendance, campaign engagement, and more — into flexible queries.

Overview

A segment is a collection of rules that define criteria for matching profiles. Rules can be combined with AND logic (all rules must match) or OR logic (any rule can match). Multiple segments can be layered together for complex targeting.

Segment Types

FullFabric has four segment types, each serving a different purpose:

Type Reusable Description
Embedded No Defined directly within a campaign or form. Scoped to its parent entity.
Shared Yes Reusable across campaigns and automations. Can be assigned to specific teams.
Pinned Yes Mandatory filters always applied with AND logic. Cannot be combined with OR.
Static No Snapshots created when a campaign is dispatched. Preserves the audience at send time.

Embedded Segments

Embedded segments are one-off targeting definitions created inside a campaign or form. They cannot be reused elsewhere. When a campaign is duplicated, its embedded segments are deep-copied.

Shared Segments

Shared segments are the most common type. They act as reusable audience definitions (e.g., "All Active Students", "Alumni in London") that can be referenced by multiple campaigns and automations. Shared segments:

  • Track their creator
  • Can be scoped to specific teams
  • Report whether they are in use (referenced by campaigns or automation rules)

Pinned Segments

Pinned segments act as mandatory institutional filters. They are always applied with AND logic on top of other segments. Use cases include enforcing compliance requirements (e.g., "must have marketing consent") or institutional boundaries.

Static Segments

Static segments are snapshots created automatically when a campaign is dispatched. They capture:

Property Description
ids All matching profile IDs at dispatch time
addressable_ids Profiles with valid email addresses
bounced_ids Profiles with bounced emails
marked_as_spam_ids Profiles who marked previous emails as spam
unsubscribed_ids Profiles who have unsubscribed

Static segments ensure consistent reporting — even if the underlying rules would produce different results today, the static snapshot reflects the actual audience at send time.

Rule Categories

Rules define the filtering criteria within a segment. Each rule category queries a different data source.

Profile Rules

Rules that filter on direct profile properties.

Rule Description
TaggedWith Profiles with specific tags
InTeams Assigned to specific teams (supports AND/OR)
IsActive / IsInactive Account active status
IsSubscribed / IsUnsubscribed Email subscription status
IsForgotten / IsNotForgotten GDPR forgotten status
EmailIsBouncing Primary email has bounced
HasRoles Has specific lifecycle roles
Search Free-text search across profile fields

Context Rules

Rules based on a profile's roles in classes, courses, and programmes.

Rule Description
IsIn / IsNotIn In (or not in) specific classes, courses, themes, or campuses
PlaysRole Has a specific role with optional state/substate filter
NotRole Does NOT have a specific role
OwnedBy / NotOwned Owned by specific staff or unassigned
HasWithdrawn / HasNotWithdrawn Withdrawal status in a context
Unassigned No owner assigned

Application Rules

Rules based on application (applic) status.

Rule Description
HasApplic / DoesNotHaveApplic Has any application
HasStartedApplic Has started an application
HasSubmittedApplic Has submitted an application
HasPendingPaymentApplic Has an application awaiting payment
Submitted Submitted a specific application template
HasStartedApplicByThemself / ByProxy / ByStaff Who initiated the application

Evaluation Rules

Rules based on application evaluations.

Rule Description
HasEvaluation / HasNoEvaluation Has an evaluation
HasStartedEvaluation Evaluation initiated
HasSubmittedEvaluation Evaluation completed
HasAssignedEvaluationTo Evaluation assigned to a specific reviewer

Campaign Rules

Rules based on email campaign engagement.

Rule Description
Sent / NotSent Received (or did not receive) specific campaigns
Open / DidNotOpen Opened (or did not open) a campaign
Click Clicked a link in a campaign

Event Rules

Rules based on event registration and attendance.

Rule Description
Registered / DidNotRegister Registered (or not) for an event
Attended / DidNotAttend Attended (or not) an event
RegisteredButDidNotAttend Registered but did not attend

Form Rules

Rule Description
Submitted / DidNotSubmit Submitted (or not) a specific form

Field Rules

Rules that filter on custom field values.

Rule Description
Is / IsNot Field equals / does not equal a value
Contains / DoesNotContain Field contains / does not contain a substring
After / Before Date is after / before a value
AfterOrOn / BeforeOrOn Date comparisons inclusive of boundary
Exists / DoesNotExist Field has / does not have a value

Policy Rules

Rules based on consent and policy agreements.

Category Rules
Marketing HasAgreed, DoesNotWant, HasNotResponded, Selection, DoesNotIncludeEmail
Privacy HasAgreed, HasNotAgreed, HasNotResponded
Data Processing HasConsentGivenByStaff, DoesNotHaveConsent

Organisation Rules

Rule Description
IsInTheCommunityOf In an organisation's community
IsPrimaryContact Is the primary contact for an organisation

Other Rules

Category Rules
Transcripts HasTranscript
Course Registrations StateIs, RegistrationStateIs, CourseStateIs
Experience HasExperienceAt

Query Resolution

The segment query engine translates rules into MongoDB queries and resolves matching profile IDs.

How Rules Combine

  1. Pinned segments are always combined with AND — all must match
  2. Filter segments are combined with OR by default — matching any is sufficient
  3. The pinned result is ANDed with the filter result for the final query

Within a Single Segment

  • Inclusive = false (default): All rules must match (AND logic)
  • Inclusive = true: Any rule can match (OR logic)
  • System rules: Rules marked as system: true are always required, even in inclusive mode

Selected Profiles

In addition to rule-based matching, segments support manual profile selection. Staff can hand-pick profiles to include in a segment, which is combined with rule results.

Scoping

Segments can be scoped to specific contexts, limiting which campaigns or automations can use them. This supports institutional boundaries and team-based access control. See Data Access Scopes for how scopes integrate with the authorization system.

Use Cases

Use Case Segment Type Example
Email campaigns Shared or Embedded Target alumni who attended events in 2025
Automation triggers Shared Trigger welcome email for new prospects
Compliance enforcement Pinned Ensure marketing consent before any campaign
Campaign reporting Static Know exactly who received a campaign
Audience building Shared "MBA Prospects in Europe" reused across campaigns
One-off targeting Embedded Custom audience for a single email blast