Move from OneSignal to Sendora.
Move push subscribers + templates + segments from OneSignal to Sendora Push.
Step-by-step
- 1
1. Export subscribers + tags from OneSignal
OneSignal CSV export covers `player_id`, device platform, push token, tags (your custom traits). Pull into a working dir.
30 min - 2
2. Map tags → Customer profile traits
OneSignal tags become Customer traits in Sendora — same names, same values. Data Sync imports CSV directly with schema validation.
1 hour - 3
3. Wire APNs + FCM creds into Sendora
Upload APNs auth key (`.p8` + key_id + team_id) + FCM service-account JSON via the Push module's settings UI. Web Push VAPID keys are generated for you.
30 min - 4
4. Drop the Sendora SDK
Install RN / iOS / Android SDK. Replace `OneSignal.setExternalUserId(userId)` with `sendora.identify(userId)`. `registerForPushNotifications` shape is identical. Anon → identified device-takeover means no duplicate notifications post-signin (OneSignal customers chase this for months).
Half a day - 5
5. Rebuild segments as Audiences
OneSignal segments port to Sendora audiences via Customers module. Same query semantics — real-time membership instead of OneSignal-local.
Half a day - 6
6. Side-by-side test + sunset
Run parallel for 3-7 days. Compare delivery, open, click rates in Health module. Once parity holds, kill OneSignal SDK.
Calendar week observation
Watch-outs
- OneSignal Journeys (Lifecycle) features port to Sendora Automation — review per-journey logic for edge cases.
- OneSignal in-app messaging is a separate product surface; port to Sendora In-App Messages module.
- Device-takeover changes the duplicate-push handling — review your downstream user-mirror tables to consume `auth.device_takeover` webhook.
Push
APNs + FCM + Web Push + Live Activities + Geofences + Critical Alerts + per-org frequency caps + quiet hours + sticky-by-user A/B — one SDK, three transports.
OneSignal and Braze send pushes. Sendora's Push module ships the same transport surface (APNs cert + token, FCM, Web Push VAPID), plus Live Activities (iOS ActivityKit + Android ongoing notifications) + Geofences + Critical Alerts + per-org frequency caps + TZ-aware quiet hours + sticky A/B variant assignment + automatic invalid-token pruning. Device-takeover on signin retires the anon `user_id` so a single device doesn't get duplicate pushes. Honest about scope: audience fan-out is via Automation workflows (not a single-call `sendToAudience()` API), and the A/B test ships variant assignment + manual winner declaration — not automatic statistical readout or auto-promote.
Read full Push pageStuck on the migration? We'll help.
Launch partners get white-glove migration help direct from the engineering team. Free plan covers real product use during the parallel-run period.