Segment types
The OneSignal platform supports two main categories of segments:Subscription-based Segments
Subscription-based segments are built using filters on subscription attributes, such as device type, language, or app version.User-based Segments
User-based segments are built using filters on user-level attributes rather than individual subscriptions. Currently, these segments support filters on message events and custom events. Examples include:- When a user last opened an email, SMS, or push notification sent via OneSignal.
- Specific custom events tracked in your app or website.
Creating segments
Dashboard
Create and manage segments from Audience > Segments.
API
Create segments programmatically using the Create Segment API.
CSV Import
Bulk-import subscribers into a segment by uploading a CSV.
Create a segment in the dashboard

Exclude segments
Exclude a segment to prevent its members from receiving a message or entering a Journey. Common use cases:- Avoid sending duplicate or conflicting messages
- Respect user messaging preferences (e.g., “opted out of promo”)
- Prioritize transactional messages over campaigns
- Sending a message
- Building a Journey
- Using the Exclude Segment option in segment settings
Filters
Filters define which subscriptions belong to a segment. You can combine multiple filters using AND or OR logic.| Filter | Description |
|---|---|
| First session | Date/time of user creation. |
| Last session | Last time Subscription opened the app or site. |
| Session count | Number of times Subscription opened the app or visited the site. |
| Usage duration | Total seconds the Subscription had your app/site open. |
| Language | User’s preferred language (based on device/browser). See multi-language support. |
| App version | Pulled from Android versionCode or iOS CFBundleShortVersionString. Combine with Device type to filter by different app versions per platform. See Target outdated app versions. |
| Device type | iOS, Android, Web Push (browser), Email, etc. |
| User tag | Custom tags you set via the SDK or API. See Add Tags. |
| Location | Filter by radius from coordinates (lat/long). Requires at least 1 meter and up to 2 decimal places of precision. See location permission. |
| Country | Based on last IP geolocation (ISO 3166-2 code). |
| Test users | Users marked as Test Users. |

Message event filters
Message event filters allow you to filter users based on their interaction with one of your messaging channels within a certain window.
between option to define a custom start and end range (in days ago).
Trackable interactions by channel:
| Channel | Trackable Interactions |
|---|---|
| Push | Sent, Received, Clicked, Failed |
| SMS | Sent, Delivered, Failed |
| Sent, Delivered, Opened, Clicked, Bounced, Failed, Suppressed, Reported as spam | |
| In-App | Received, Clicked |
Custom event filters
Custom event filters let you target users based on meaningful actions they have taken in your app, website, or external systems.Custom event filters are currently in Early Access.To request access, contact
support@onesignal.com with your company name, OneSignal Organization ID, and App ID(s).
Using custom event filters
Using custom event filters
Start by selecting the event type you want to filter on. Then specify:
- The action you want to track.
- Whether the user
hasorhas notperformed that action.
- Minimum, maximum, or exact number of times the action must be performed.
- A time window during which the action must (or must not) occur — choose a preset range or define a custom window using the
betweenoption (start and end in days ago).
Event properties
Event properties
After selecting an event type, you can optionally filter on event properties. You can include filters on multiple properties:You can filter by:
- Choose
all— applies an AND condition across properties. - Choose
at least one— applies an OR condition.
dot notation.ExampleGiven the following custom event structure:signup.referral_code→ to target users with referral codeSAVE15.signup.location.country→ to target users inCanada.metadata.labels.0→ to target users with labelred.
Segment logic: AND vs OR
Use AND to combine filters that all must match. Use OR to match any of multiple conditions.- AND example
- OR example
Create a segment of users who:
- Have not returned in more than 7 days
- Will be removed after 11 days

Managing segments
View users
View users
Click Options > View Users to see which subscriptions are in the segment.
Edit
Edit
Click the segment name or Options > Edit to change filters.
Pause / Resume
Pause / Resume
If you’re near your segment limit (based on your plan), you can pause segments. Targeting a paused segment will fail.
Set as default
Set as default
Set a default segment to be auto-selected when sending a new message. This helps reduce targeting mistakes and save time.
Duplicate
Duplicate
Copy a segment’s filters to create a new one.
Deleting segments
- Dashboard
- API
- Go to Audience > Segments
- Click the three-dot menu next to a segment
- Select Delete

FAQ
How do I add myself to a segment?
How do I add myself to a segment?
- Find your Subscriptions using your External ID.
- Either:
- Create a segment using the Test Users filter or the tag.
Do segment counts include opted-out users?
Do segment counts include opted-out users?
- Visible counts only include opted-in subscriptions.
- Segments used in Journeys and in-app messages include both subscribed and unsubscribed subscriptions.
- To see unsubscribed subscriptions, use the Export CSV of Players API.
Are segment counts always accurate?
Are segment counts always accurate?
Segments larger than 80,000 total users may show an estimated size rather than a precise count for performance. For the most accurate numbers, see the message report stats after sending the message.
What types of in-app purchases are tracked?
What types of in-app purchases are tracked?
- Tracked: Consumable purchases made while the OneSignal SDK is active.
- Not tracked: Subscription purchases.
- To import historical purchase data, use the Update User API with the
purchasesparameter.
