Skip to main content

Segments

What are Segments?

Segments in SuperFCM are dynamic groups of subscribers that automatically update based on matching specific filter criteria. Each segment consists of:

  • Name: A descriptive identifier for the segment (not visible to subscribers)
  • Filter Groups: Sets of conditions that determine membership for the segment
  • Status: The current state of the segment (draft, active, archived)
  • Multiple Entries: Determines whether subscribers can enter the segment once or multiple times

Segment Status

Each segment in SuperFCM has a lifecycle status that determines how it behaves and where it can be used within the platform. Understanding these statuses is critical for managing your segmentation strategy effectively.

StatusDashboard VisibilitySubscriber EvaluationAvailable for MessagesEditableDeletable
Active
Draft
Archived❌ (by default)

Active segments are fully functional: they can be used in messages, continuously update subscriber membership, and be edited at any time. Changes to active segments are reflected in linked messages immediately. Subscriber membership is automatically updated based on segment filters, typically within 5 minutes for time-based conditions.

Draft segments, while editable, are not evaluated or usable in campaigns until activated, making them ideal for building and testing segmentation logic in advance of a campaign.

Archived segments, by contrast, are frozen: they are hidden from the dashboard view, excluded from all messaging workflows, and no longer receive subscriber updates. If edits or reuse are required, archived segments must first be restored from archive.

Managing Segments

Creating Segments

To create a segment:

  1. Go to the Segments section in your dashboard.
  2. Click New Segment.
  3. Provide a descriptive name for the segment.
  4. Build your filter groups using the condition builder.
  5. Save the segment by clicking Save draft.
info

New segments are are automatically created as draft and require activation before they can be used.

Activating Segments

To activate a segment:

  1. Go to the Segments section in your dashboard.
  2. Find the segment you wish to copy.
  3. Click the context menu (three dots) next to it.
  4. Select Activate.

Editing Segments

To edit a segment:

  1. Go to the Segments section in your dashboard.
  2. Find the segment you wish to edit.
  3. Tap it and make the changes in the dialog that opens.
  4. Save the changes by clicking Save.
warning

Changes to active segments have immediate impact on any linked messages.

Copying Segments

To copy a segment:

  1. Go to the Segments section in your dashboard.
  2. Find the segment you wish to copy.
  3. Click the context menu (three dots) next to it.
  4. Select Copy.

This will create a duplicate of the segment in draft state. To rename, simply edit the segment.

Archiving Segments

When a segment is no longer needed but should be preserved for future reference:

  1. Go to the Segments section in your dashboard.
  2. Find the segment you wish to archive.
  3. Click the context menu (three dots) next to it.
  4. Select Archive.
info

You cannot archive a segment that is still linked to an active message. You must first deactivate, archive, or unlink those messages.

Restoring Segments

To bring back an archived segment:

  1. Go to the Segments section in your dashboard.
  2. Find the segment you wish to restore (use the dashboard filters to show archived segments).
  3. Click the context menu (three dots) next to it.
  4. Select Restore.

Restored segments return to draft state and must be activated before use.

Deleting Segments

To permanently delete a segment:

  1. Go to the Segments section in your dashboard.
  2. Make sure the segment’s status is Draft or Archived.
  3. Click the context menu next to the segment.
  4. Choose Delete.
  5. Confirm the deletion.
info

You cannot delete a segment that is still linked to a message (regardless of message status). Unlink the segment first before deletion.

Segment Filters

SuperFCM provides a flexible filtering system for creating precisely targeted segments. All subscription properties are available for use in filter conditions. See the Subscription Properties Reference for a complete list of available fields.

Filters are organized into filter groups, where:

  • Conditions within a group are combined using the AND operator — all must be true for a subscriber to match the group.
  • Multiple groups are combined using the OR operator — matching any one group qualifies a subscriber for the segment.

This structure allows for both highly specific and broadly inclusive segmentation logic.

Custom Subscription Properties

Custom subscription properties allow you to tailor segmentation based on app-specific data. These properties must be registered in your app settings before they can be used in a segment filter.

To register a custom property:

  1. In the main menu, go to Settings.
  2. Scroll to the Custom Subscription Properties section and click Add Property.
  3. Enter a unique name and select the appropriate data type.
  4. Click Save to register the property.
tip

Property names must use only letters, numbers, and underscores. Both snake_case (e.g., last_purchase_date) and camelCase (e.g., lastPurchaseDate) formats are supported, as long as they follow these character rules.

info

Custom properties that are in use within any segment (regardless of segment status) cannot be deleted.

Supported Operators

SuperFCM supports a rich set of filter operators, and each one is valid only for specific data types. When defining a filter, the system validates both the operator and the field type. For example, comparison operators like < or > are only valid for number and date types. Filters that apply to array fields work with both arrays of strings and arrays of numbers.

OperatorStringNumberBooleanDateArrayDescription
<Less than
<=Less than or equal to
==Equal to
>Greater than
>=Greater than or equal to
!=Not equal to
inValue exists in list
not-inValue does not exist in list
starts-withString starts with provided value
ends-withString ends with provided value
containsString or array contains value
not-containsString or array does not contain value
emptyField is empty or null
not-emptyField is not empty or null

Example: Active Samsung Users

The JSON example below defines a segment targeting subscribers who use Samsung devices and have been active within the last 24 hours (1,440 minutes). Subscribers who become inactive for more than 24 hours will automatically exit the segment. With allowMultipleEntries set to true, these users can re-enter the segment if they meet the criteria again in the future — ensuring dynamic, up-to-date membership based on user activity.

{
"name": "Active Samsung Users",
"status": "active",
"filterGroups": {
"group1": [
{ "field": "deviceManufacturer", "operator": "==", "value": "Samsung" },
{ "field": "dateLastSeen", "operator": "<", "value": 1440 }
]
},
"allowMultipleEntries": true
}