A Loyalty Journey is an automated messaging flow that starts after players finish your Welcome Journey. Its goal is to reward continued play, move players through loyalty tiers and turn retained players into high value advocates. This tutorial covers two implementation cases:Documentation Index
Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
Use this file to discover all available pages before exploring further.
- Case 1 – Basic: Session count and two tags (
loyalty_tier,lifetime_points) set via the OneSignal SDK or API. Fixed milestone rewards. No webhooks. - Case 2 – Advanced: Same linear tier progression structure as Case 1. Adds webhooks that sync to your backend, tier-locked monetization offers, deeper Liquid personalization and a winback email escalation for players inactive 14+ days.
Loyalty program goals
| Goal | Description |
|---|---|
| Reward consistent engagement | Recognize returning players with escalating rewards tied to activity milestones |
| Drive tier progression | Move players through Bronze → Silver → Gold → Platinum with clear rewards at each threshold |
| Increase purchase frequency | Use perks locked to each tier and limited time offers to convert engaged free players |
| Strengthen social bonds | Use guild membership, friend referrals and cooperative play to make it harder for players to walk away |
| Reduce drop-off | Detect engagement dips early and step in before the player goes quiet |
| Build advocacy | Encourage high tier players to recruit friends, leave reviews and participate in community events |
Prerequisites
For both cases:- Familiarity with Journeys overview concepts
- An active OneSignal app with push notifications configured
- OneSignal mobile SDK installed
- Players have completed your onboarding flow (7+ sessions recommended)
- Segment: Session count > 6 (players who have completed onboarding)
- Tags
loyalty_tierandlifetime_pointsset on the player’s profile via the mobile SDKaddTagsmethod or the Update user API endpoint
- External ID configured so player profiles are unified across devices and channels
- Data tags representing loyalty state, purchase history and engagement metrics
- Custom events firing from your game backend for purchases, level-ups, daily logins, social actions and milestone completions
- Journey webhooks enabled on your account (contact OneSignal sales for access)
Loyalty tier structure
Both journeys use a four tier system. The thresholds and perks below are examples. Define what makes sense for your game’s economy.| Tier | Points threshold | Example perks |
|---|---|---|
| Bronze | 0 | Daily login bonus, basic cosmetic rewards |
| Silver | 500 | 2x daily bonus, exclusive Silver cosmetics, priority matchmaking |
| Gold | 2,000 | 3x daily bonus, Gold exclusive gear, early access to events |
| Platinum | 5,000 | 5x daily bonus, Platinum badge, VIP shop, direct developer channel |
Case 1: Basic loyalty journey
Target players using session count and two tags set on each player’s profile via the OneSignal SDK or API. This case requires no custom event tracking and can run alongside your existing onboarding journey.How this journey works
The journey rewards players who completed onboarding by recognizing their progress through Bronze → Silver → Gold → Platinum and bringing them back if they go quiet. After session 6 the player enters the journey at Bronze and sees a welcome in-app message. The journey then runs three nearly identical tier sections in order: Bronze → Silver, Silver → Gold, Gold → Platinum. Each section watches three signals in parallel and routes the player down whichever fires first:- Approaching the next tier: send a points-to-go push, then wait for the tier to be reached
- Already in the next tier (catch-up): skip the push and go straight to the celebration in-app message
- Inactive for 7+ days: send a re-engagement push, then wait for the tier to be reached
loyalty_tier and lifetime_points tags via the OneSignal SDK (addTags) or server-side API and the journey reacts to segment membership changes automatically.
At a glance
| Step | Channel | Timing | Message |
|---|---|---|---|
| Loyalty welcome | In-App | Journey entry | Tier map + program introduction |
| Tier approaching nudge | Push | When the player enters the approaching segment | Points to next tier calculation |
| Tier celebration IAM | In-App | When the player enters the next tier segment | Full screen milestone achievement |
| Engagement dip re-engagement | Push | When the player enters the Low weekly engagement segment | Tier specific progress nudge with a bonus points offer |
| Platinum referral | Push | After the Platinum celebration IAM | Friend invite with bonus points |
Journey settings
Configure these settings on the Settings tab of the journey before building the steps. See Journey settings for full reference.| Setting | Value |
|---|---|
| Entry rules: Audience segment | Session count > 6 AND loyalty_tier exists |
| Entry rules: Future additions only | Checked. Only players who newly cross session 6 enter the journey. Existing Silver, Gold and Platinum players at launch never enter, which is intentional. The welcome step is meant for new loyalty enrollees. |
| Exit rules | None. The journey naturally ends after the Platinum referral push. Setting an exit rule on the Platinum segment would remove players before they reach the Platinum celebration in-app message, per exit rule behavior. |
| Re-entry rules | Not enabled. With future additions only checked, players who exit (at Platinum or via expiration) cannot re-enter this journey. Route exiters into a separate VIP journey (Platinum graduates) or winback journey (expiration exits) with their own entry criteria. |
Required segments
Wait Until conditions route players based on segment membership. Create these segments before building this journey.| Segment name | Filters |
|---|---|
| Bronze approaching Silver | loyalty_tier = bronze AND lifetime_points > 399 |
| Silver tier | loyalty_tier = silver |
| Low weekly engagement | Last session > 4 days ago |
| Silver approaching Gold | loyalty_tier = silver AND lifetime_points > 1,599 |
| Gold tier | loyalty_tier = gold |
| Gold approaching Platinum | loyalty_tier = gold AND lifetime_points > 3,999 |
| Platinum tier | loyalty_tier = platinum |
Journey steps
The journey opens with a welcome in-app message, then runs three tier sections in order: Bronze → Silver, Silver → Gold and Gold → Platinum. Each tier section is self-contained and ends at its tier celebration in-app message. Each tier section opens with a multi-condition Wait Until that forks into four branches. Build the nodes for each branch separately in the journey builder. All non-exit branches converge at the tier celebration in-app message before the next tier section begins. Each Wait Until’s expiration branch exits the journey if the player doesn’t progress: 21 days at the start of each tier section, 10 days after each push. The journey settings disable re-entry, so route stalled players to a separate winback journey.Welcome (before the first tier section)
In-App Message: Loyalty welcome
Tier section: Bronze → Silver
The fork: multi-condition Wait Until
Wait Until: multi-condition fork
| Condition | Branch the player goes down |
|---|---|
| User enters Bronze approaching Silver segment | Approaching branch |
| User enters Silver tier segment | Catch-up branch |
| User enters Low weekly engagement segment | Low engagement branch |
| Expiration (21 days with no segment entry) | Exit the journey |
Branch 1: Bronze approaching Silver
Build these nodes on the Bronze approaching Silver branch coming out of the fork.Push Notification
Branch 2: Silver tier (catch-up)
For players who reach Silver in one jump and skip the approaching segment. For example, a player who earns 500 points in a single burst (a big purchase or daily reward bundle) and crosses straight from Bronze into Silver. Don’t add any nodes on this branch. Connect it directly to the Silver tier celebration in-app message in the convergence section below.Branch 3: Low weekly engagement
Build these nodes on the Low weekly engagement branch coming out of the fork.Push Notification
Convergence: Silver tier celebration IAM
All non-exit branches reach this node. After the celebration in-app message, continue to the next tier section.Tier section: Silver → Gold
The fork: multi-condition Wait Until
Wait Until: multi-condition fork
| Condition | Branch the player goes down |
|---|---|
| User enters Silver approaching Gold segment | Approaching branch |
| User enters Gold tier segment | Catch-up branch |
| User enters Low weekly engagement segment | Low engagement branch |
| Expiration (21 days with no segment entry) | Exit the journey |
Branch 1: Silver approaching Gold
Build these nodes on the Silver approaching Gold branch.Push Notification
Branch 2: Gold tier (catch-up)
For players who reach Gold in one jump and skip the approaching segment. Don’t add any nodes on this branch. Connect it directly to the Gold tier celebration in-app message in the convergence section below.Branch 3: Low weekly engagement
Build these nodes on the Low weekly engagement branch.Push Notification
Convergence: Gold tier celebration IAM
All non-exit branches reach this node.Tier section: Gold → Platinum
The fork: multi-condition Wait Until
Wait Until: multi-condition fork
| Condition | Branch the player goes down |
|---|---|
| User enters Gold approaching Platinum segment | Approaching branch |
| User enters Platinum tier segment | Catch-up branch |
| User enters Low weekly engagement segment | Low engagement branch |
| Expiration (21 days with no segment entry) | Exit the journey |
Branch 1: Gold approaching Platinum
Build these nodes on the Gold approaching Platinum branch.Push Notification
Branch 2: Platinum tier (catch-up)
For players who reach Platinum in one jump and skip the approaching segment. Don’t add any nodes on this branch. Connect it directly to the Platinum tier celebration in-app message in the convergence section below.Branch 3: Low weekly engagement
Build these nodes on the Low weekly engagement branch.Push Notification
Convergence: Platinum tier celebration IAM and referral
All non-exit branches reach these nodes.In-App Message: Platinum tier celebration
Success metrics to track
- Tier progression rate (% of players reaching Silver within 30 days)
- Push CTR on tier approaching notifications
- Re-engagement rate after a Low weekly engagement push
- Platinum conversion rate
Best practices for Case 1
- Introduce the loyalty program with a clear visual. An in-app message with a tier map shows players the full progression path and what they earn at each tier. Players are more likely to engage when they know what they’re working toward.
- Let players progress at their own pace. Wait Until on segment entry reacts the moment a player crosses a threshold or lapses, so messages land when they’re relevant instead of on a fixed weekly check. Players who never trigger a condition exit cleanly at the Wait Until expiration.
- Celebrate every tier transition in-app. Push notifications announce proximity; in-app messages celebrate achievement. The tier up moment should feel like unlocking a new level in the game itself.
- Move Platinum players into a separate VIP journey. The Loyalty Journey’s job ends at Platinum. Once a player hits that tier, move them into a separate journey focused on VIP perks, exclusive events and referral programs.
Add more channels and message types
Push is the backbone of Case 1, but adding a second channel gives you coverage when push is disabled and richer moments inside the game.- Add email as a backup channel for inactivity. Some players disable push or never grant permission. Place an Email step after the Low weekly engagement push so every inactive player receives the message in at least one channel. The email can carry a tier progress summary with a visual progress bar and a comeback incentive. Push delivers only to subscribed push subscriptions; email reaches everyone with an email subscription.
- Use in-app messages to deepen tier celebrations. When an approaching push opens the app, the next session is a high intent moment to surface a full celebration with a rich in-app message. Place the in-app message step after the corresponding push so it triggers on the session the player opens in response.
Journey messages
Journey actions
Case 2: Advanced loyalty journey
Same linear tier progression structure as Case 1. Adds webhooks that sync to your backend, tier-locked monetization offers, deeper Liquid personalization and a winback email escalation for players inactive 14+ days.How this journey works
Same Bronze → Silver → Gold → Platinum structure as Case 1, plus an enrollment phase up front and richer follow-ups after each tier. After session 6 the player enters at Bronze, sees a personalized welcome in-app message and is initialized via a Tag User node before the tier sections begin. The journey then runs three tier sections. Each section watches three signals in parallel:- Approaching the next tier: send a points-to-go push, then wait for the tier to be reached
- Already in the next tier (catch-up): skip the push and go straight to the celebration in-app message
- Inactive for 7+ days: send a re-engagement push. If the player is still inactive at 14 days, escalate to a winback email.
At a glance
| Phase | Step | Channel | Trigger |
|---|---|---|---|
| Phase 1: Enrollment | Loyalty welcome | In-App | Journey entry |
| Phase 1: Enrollment | Initialize tier and points | Tag User | After welcome |
| Phase 1: Enrollment | Register enrollment | Webhook | After 15-minute Wait |
| Phase 1: Enrollment | Push opt-in prompt | In-App | After webhook |
| Phase 2: Bronze → Silver | Approaching push, re-engagement push, winback email, Silver celebration IAM, perk sync webhook, guild prompt IAM | Push + Email + In-App + Webhook | Wait Until segment entry |
| Phase 3: Silver → Gold | Approaching push, re-engagement push, winback email, Gold celebration IAM, perk sync webhook, tier-locked offer IAM | Push + Email + In-App + Webhook | Wait Until segment entry |
| Phase 4: Gold → Platinum + finale | Approaching push, re-engagement push, winback email, Platinum celebration IAM, VIP webhook, graduation tag, referral push, Ambassador IAM | Push + Email + In-App + Webhook + Tag User | Wait Until segment entry |
Journey settings
Configure these settings on the Settings tab of the journey before building the steps. See Journey settings for full reference.| Setting | Value |
|---|---|
| Entry rules: Audience segment | Session count > 6 AND loyalty_tier exists |
| Entry rules: Future additions only | Checked. Only players who newly cross session 6 enter. Existing Silver, Gold and Platinum players at launch never enter, which is intentional. The welcome step is meant for new loyalty enrollees. |
| Exit rules | None. The journey naturally ends after the Platinum referral and Ambassador recognition steps. Setting an exit rule on the Platinum segment would remove players before they reach the Platinum celebration in-app message. |
| Re-entry rules | Not enabled. With future additions only checked, players who exit cannot re-enter this journey. Tag Platinum graduates on the way out and use that tag as the entry segment for a separate VIP journey. Use a separate winback journey for expiration exits. |
Required data
Set the following user properties and events via SDK calls or the server-side API.User properties (tags)
| Property | Type | Description | How to set |
|---|---|---|---|
loyalty_tier | String | Current tier: bronze, silver, gold, platinum | Server API: Update when points cross a threshold |
lifetime_points | Number | Total loyalty points earned all-time | Server API: Increment on point earning activities |
total_spend | Number | Cumulative in-app purchase amount (cents) | Server API: Increment on each purchase |
purchase_count | Number | Total number of purchases | Server API: Increment on each purchase |
last_purchase_date | Date | Unix timestamp of the most recent purchase | Server API: Update on each purchase |
player_level | Number | Current in-game level | Server API or SDK: Update after each level-up |
player_class | String | Character class or play style | SDK: Set when player selects their class/hero |
has_guild | Boolean | Whether the player is in a guild/clan | Server API or SDK: Set on guild join event |
friends_count | Number | Number of in-game friends | Server API: Update on friend add/remove |
referral_count | Number | Number of friends referred who completed onboarding | Server API: Increment on successful referral |
Events to track
These events power backend logic that updates the tags above. The journey itself reacts to segment entry (which the tag updates trigger) rather than to events directly.| Event | Description | How to set |
|---|---|---|
points_earned | Player earns loyalty points from any activity | Server API: Fire with amount and source properties |
tier_up | Player crosses a tier threshold | Server API: Fire with new_tier and old_tier properties |
iap_purchase | Player completes an in-app purchase | Server API: Fire with amount, item and currency properties |
level_up | Player reaches a new level | SDK or Server: Fire with level number as property |
referral_complete | A referred friend completes onboarding | Server API: Fire with referred_user_id |
guild_contribution | Player contributes to a guild activity | SDK: Fire with contribution_type and amount |
event_participation | Player participates in a limited time event. Used by a separate event-driven journey, not this one. | SDK: Fire with event_id and score |
Required segments
Wait Until and Yes/No Branch nodes route players based on segment membership. Create these segments before building this journey.| Segment name | Filters |
|---|---|
| Bronze approaching Silver | loyalty_tier = bronze AND lifetime_points > 399 |
| Silver tier | loyalty_tier = silver |
| Silver approaching Gold | loyalty_tier = silver AND lifetime_points > 1,599 |
| Gold tier | loyalty_tier = gold |
| Gold approaching Platinum | loyalty_tier = gold AND lifetime_points > 3,999 |
| Platinum tier | loyalty_tier = platinum |
| 7-day inactive | Last session > 6 days ago |
| 14-day inactive | Last session > 13 days ago |
| No guild | has_guild = false |
| No purchases | purchase_count = 0 |
| 3+ referrals made | referral_count > 2 |
Journey map
This journey runs as a single linear flow: an enrollment chain at the top, three tier sections (Bronze → Silver, Silver → Gold, Gold → Platinum) that follow the same shape as Case 1 and a Platinum finale. Each tier section adds a webhook to sync perks to your backend along with tier-locked monetization or social prompts.Phase 1: Loyalty program enrollment
In-App Message: Personalized loyalty welcome
Tag User: Initialize loyalty state
loyalty_tier = bronze and lifetime_points = 0. The Tag User node is a journey action that applies tags to the player as they pass through this step. No SDK call from your app is needed here.Outside the journey, your app or backend keeps these same tags up to date as players earn points by calling the mobile SDK addTags method or the Update user API endpoint.Wait: 15 minutes
Webhook: Register enrollment in backend
external_id and enrollment time to your game backend. The backend can use this to start tracking point earning activities and apply any enrollment bonus.In-App Message: Push opt-in prompt
Phase 2: Bronze → Silver progression
This phase mirrors Case 1’s tier section pattern, enriched with a webhook to activate Silver perks on your backend and a guild prompt for unaffiliated players. The phase opens with a multi-condition Wait Until that forks into four branches. Build the nodes for each branch separately in the journey builder. All non-exit branches converge at the Silver tier celebration in-app message.The fork: multi-condition Wait Until
Wait Until: multi-condition fork
| Condition | Branch the player goes down |
|---|---|
| User enters Bronze approaching Silver segment | Approaching branch |
| User enters Silver tier segment | Catch-up branch |
| User enters 7-day inactive segment | Inactive branch |
| Expiration (21 days with no segment entry) | Exit the journey |
Branch 1: Bronze approaching Silver
Build these nodes on the Bronze approaching Silver branch coming out of the fork.Push Notification
Branch 2: Silver tier (catch-up)
For players who reach Silver in one jump and skip the approaching segment. For example, a player who earns 500 points in a single burst (a big purchase or daily reward bundle) and crosses straight from Bronze into Silver. Don’t add any nodes on this branch. Connect it directly to the Silver tier celebration in-app message in the convergence section below.Branch 3: 7-day inactive
Build these nodes on the 7-day inactive branch coming out of the fork.Push Notification
Convergence: Silver tier celebration IAM and follow-ups
All non-exit branches reach these nodes.In-App Message: Silver tier celebration
Webhook
external_id, tier and point total to your backend. Activate Silver perks: 2x daily bonus, cosmetic unlocks, priority matchmaking.Phase 3: Silver → Gold progression
Same shape as Phase 2 with Silver to Gold segments, plus a tier-locked monetization offer after the Gold celebration in-app message.The fork: multi-condition Wait Until
Wait Until: multi-condition fork
| Condition | Branch the player goes down |
|---|---|
| User enters Silver approaching Gold segment | Approaching branch |
| User enters Gold tier segment | Catch-up branch |
| User enters 7-day inactive segment | Inactive branch |
| Expiration (21 days with no segment entry) | Exit the journey |
Branch 1: Silver approaching Gold
Build these nodes on the Silver approaching Gold branch coming out of the fork.Push Notification
Branch 2: Gold tier (catch-up)
For players who reach Gold in one jump and skip the approaching segment. Don’t add any nodes on this branch. Connect it directly to the Gold tier celebration in-app message in the convergence section below.Branch 3: 7-day inactive
Build these nodes on the 7-day inactive branch coming out of the fork.Push Notification
Convergence: Gold tier celebration IAM and follow-ups
All non-exit branches reach these nodes.In-App Message: Gold tier celebration
Yes/No Branch
- Yes: In-App Message: “Gold only drop. The {{ player_class | default: ‘hero’ }} Starter Pack. 70% off. Locked to Gold tier and above. Your loyalty earned you this price.”
- No: In-App Message: “Gold buyers only: Premium Season Pass at 30% off. Every Gold exclusive drop this season, locked in for less.”
Phase 4: Gold → Platinum progression and Platinum finale
Same shape as Phase 3 with Gold to Platinum segments. Ends with a Platinum referral push and Ambassador recognition for high referral players.The fork: multi-condition Wait Until
Wait Until: multi-condition fork
| Condition | Branch the player goes down |
|---|---|
| User enters Gold approaching Platinum segment | Approaching branch |
| User enters Platinum tier segment | Catch-up branch |
| User enters 7-day inactive segment | Inactive branch |
| Expiration (21 days with no segment entry) | Exit the journey |
Branch 1: Gold approaching Platinum
Build these nodes on the Gold approaching Platinum branch coming out of the fork.Push Notification
Branch 2: Platinum tier (catch-up)
For players who reach Platinum in one jump and skip the approaching segment. Don’t add any nodes on this branch. Connect it directly to the Platinum tier celebration in-app message in the convergence section below.Branch 3: 7-day inactive
Build these nodes on the 7-day inactive branch coming out of the fork.Push Notification
Convergence: Platinum celebration IAM, VIP handoff and referral
All non-exit branches reach these nodes. The journey ends after the Ambassador check.In-App Message: Platinum tier celebration
Webhook
external_id and full loyalty profile to your backend. Activate all Platinum perks and flag this player for VIP handling in customer support, community management and future beta invitations.Tag User
loyalty_program = platinum_graduate. Use this tag as the entry segment for a separate VIP journey, so Platinum players continue receiving VIP tier messaging after this journey ends.Push Notification
Handling tier decay
If your loyalty program includes tier decay, handle it with care:- Warning push (7 days before deadline): “Your {{ loyalty_tier | capitalize }} status expires in 7 days. Bank {{ points_needed }} more points this month to keep your perks.”
- Grace period (3 days): Give a 3-day grace period before downgrading. Send a final push: “Last chance. Your {{ loyalty_tier | capitalize }} perks expire tomorrow. Log in to save your tier.”
- Downgrade with dignity: “Your tier has been adjusted to {{ new_tier | capitalize }}. Progress isn’t lost. Earn {{ points_to_restore }} points to restore your {{ old_tier | capitalize }} status.”
Success metrics to track
- Average days to reach each tier
- Re-engagement rate after 7-day inactivity push
- First purchase rate at Gold tier
- Winback email conversion rate at 14-day inactivity
- Referral conversion rate from Platinum players
Best practices for Case 2
- Add a Webhook after every tier celebration in-app message. OneSignal doesn’t unlock perks. Your game does. A Webhook step notifies your game server the moment a player reaches a new tier, so their rewards activate right away instead of waiting for the next sync.
- Lock offers to specific tiers. A Gold only deal converts better than a random promotion because players perceive it as earned. Non-buyers at Gold need a reason to make their first purchase; existing buyers need a value upgrade.
- Handle tier decay with empathy. Warn early, offer a grace period and frame any downgrade as temporary. A “highest tier achieved” badge preserves the player’s sense of accomplishment even during inactive periods.
- Celebrate every tier transition in-app. The tier up moment should feel like unlocking a new level in the game itself. Push announces proximity; the in-app message delivers the reward.
- Hand off Platinum graduates to a VIP journey. This journey ends at Platinum. Tag Platinum players on the way out and use that tag as the entry segment for a separate VIP journey focused on exclusive events, beta invitations and referral programs.
Add more channels and message types
The rich data in Case 2 makes it possible to expand beyond push and in-app messages and add channel moments tied to specific player behavior.- Add SMS for high value moments. Once a player crosses a value threshold like first purchase or Platinum tier, SMS becomes a high attention channel for time sensitive offers: a limited time event invite, a flash sale on a class matched pack, or an exclusive Platinum drop. Reserve SMS for VIP tier audiences to keep send volume low and engagement high.
- Extend email beyond winback. Email isn’t only a re-engagement fallback. Use Email steps after tier celebration in-app messages and on a recurring schedule (Days 30, 60, 90 of loyalty program membership). Deliver class specific tips, loyalty program recaps and exclusive member content for players who prefer less frequent in-app messaging.
- Layer on a separate event-driven journey for limited time events. Use the
event_participationevent as the entry trigger for a dedicated event-driven journey that recognizes participation, rewards points and gates exclusive challenges to Gold and Platinum players. Keeping it separate avoids tangling event responses into the linear tier flow.
Custom events
Journey webhooks
Case 1 vs. Case 2 at a glance
| Case 1: Basic | Case 2: Advanced | |
|---|---|---|
| Data required | Session Count + 2 tags (loyalty_tier, lifetime_points) | 10+ tags + 7+ events |
| Setup effort | Low. Your app or backend sets two tags via the OneSignal SDK or API. Fixed thresholds. | High. Your backend calculates points, tracks events and updates tags |
| Tier tracking | Wait Until on segment entry, driven by tag changes | Wait Until on segment entry, driven by backend tag updates and synced via webhooks |
| Push logic | Segment-driven: push fires when the player enters an approaching, tier, or low engagement segment | Same segment-driven structure, with richer Liquid personalization and tier-locked offers layered in |
| Journey actions | Wait Until + Time Window | Wait Until + Time Window + Yes/No Branch + Tag User + Webhook |
| Personalization | Tier name and point count only | Class, level, spend history, guild status, play time, referral count, purchase behavior |
| Monetization | n/a | Tier-locked offers after the Gold celebration IAM, buyer/non-buyer segmentation |
| Social features | n/a | Guild prompt at Silver, referral push at Platinum, Ambassador recognition for high referral players |
| Re-engagement | Single 7-day inactivity branch in each tier section | Two-step escalation per tier section: 7-day push, then email winback if 14-day inactive |
| Tier decay | n/a | Warning push, 3-day grace period, downgrade message with points needed to restore |
| Backend sync | One way. Your app or backend writes tags to OneSignal via SDK/API; OneSignal doesn’t push back | Webhook fires after each tier celebration IAM to activate perks on your backend |
| Best for | Small games, solo developers, MVPs, early loyalty experiments | Established games, growth teams, games with in-app purchases and social features |