Skip to content

Migration

Migrate from OneSignal to ReachBell in 5 minutes.

Three steps, zero subscriber loss. Import your VAPID keys, replace one script tag, verify in the dashboard — and your existing OneSignal list keeps receiving pushes through ReachBell from the very next campaign.

Zero subscriber loss. Guaranteed.

Web push tokens are bound to your VAPID key pair, not to the vendor. Bring your OneSignal VAPID keys into ReachBell, and every subscriber stays subscribed — same browser endpoint, same delivery, zero re-prompt. We’ll refund your first month if a single subscriber drops because of the cutover.

Three steps

Five minutes, end to end.

Most teams cut over before lunch. Here’s the entire playbook — no hidden gotchas, no enterprise SOW.

  1. 1. Import your VAPID keys

    OneSignal lets you export your application keys from Settings → Keys & IDs. Drop the public/private VAPID pair into ReachBell when you create the project. Every existing subscriber stays subscribed — same keys, same origin, same push endpoint.

  2. 2. Replace the SDK script

    Delete the OneSignalSDK.page.js include and the OneSignalSDKWorker.js service worker. Drop in ReachBell's three-line snippet plus our service-worker file at /reachbell-sw.js. No re-prompting, no permission dialog, no list rebuild.

  3. 3. Verify in the dashboard

    Open ReachBell → Project → Verification. Reload your site and you should see your browser appear as an active subscriber within seconds. Send a test push to yourself, confirm it lands, then route traffic.

The SDK swap

One script out, one script in.

The only code change on your site. Everything else lives in the ReachBell dashboard.

index.html · <head>
- <script src="https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.js" defer></script>
- <script>
-   window.OneSignalDeferred = window.OneSignalDeferred || [];
-   OneSignalDeferred.push(OneSignal => {
-     OneSignal.init({ appId: "1234abcd-..." });
-   });
- </script>

+ <script src="https://cdn.reachbell.com/sdk/v1/reachbell.js" defer></script>
+ <script>
+   window.ReachBell = window.ReachBell || [];
+   ReachBell.push(rb => rb.init({ projectId: "prj_..." }));
+ </script>

Then rename OneSignalSDKWorker.js at your site root to reachbell-sw.js — or drop ours alongside.

What you keep

Everything that matters.

The subscriber list, the analytics history, the deliverability reputation — all of it carries over.

Every subscriber

VAPID keys carry over, so push endpoints keep resolving to the same browser. No re-prompt, no churn, no opt-in rebuild.

90 days of analytics

Export OneSignal's message and delivery data as CSV — we ingest it so your historical CTR and impression charts stay continuous.

Deliverability reputation

Web-push reputation is per-domain and per-VAPID-key, not per-vendor. The browser keeps trusting your origin, so click-through stays steady.

Tags and user IDs

OneSignal's REST CSV export ships every external_user_id and tag. Bring them in via our /v1/subscribers/import endpoint or the CSV uploader.

What you gain

Three things OneSignal won’t ship you.

Switching pays for itself the first time you don’t need to integrate a second tool.

Email built in

Campaign and transactional email on AWS SES — same segments, same dashboard, one bill. Retire your separate Mailchimp or SendGrid line item.

Automations on Growth

Welcome flows, cart recovery, win-back journeys — included on the ₹2,999/month plan, not gated behind an enterprise sales call.

INR billing with GST

No USD card swipes, no FX markup. Pay by UPI, cards, or net banking, and download a GST invoice your accountant will sign off on.

Average time to cutover for sites under 1M subscribers: 42 minutes. Need help? Email sales@reachbell.com

FAQ

Questions, answered.

Everything teams usually ask before switching. Something missing? Email us — a human replies.

Will I lose my subscribers when I migrate from OneSignal?

No. Web-push subscriptions are tied to the VAPID key pair and the origin, not to the vendor. As long as you carry your existing OneSignal VAPID public/private keys into ReachBell during project setup, every browser keeps its subscription and continues receiving pushes — even before you swap the SDK script. That's the entire reason we built import-VAPID first.

How do I export data from OneSignal?

Use OneSignal's REST API csv_export endpoint (or the dashboard's Audience → Export). It returns every subscriber with their external_user_id, tags, language, timezone, and segment memberships. Pipe the CSV into ReachBell's subscriber importer and your segments rebuild automatically.

What happens to my OneSignal automations and templates?

Templates import via copy-paste — ReachBell uses the same Handlebars-style {{variable}} syntax. Automations need to be rebuilt visually in our journey designer (we don't accept OneSignal JSON yet), but every node type — wait, branch, send, exit — has a direct equivalent. We'll do the rebuild for you on every paid plan.

Can I run both providers in parallel during the cutover?

Yes, briefly. Keep OneSignal's service worker registered alongside ours and send a test campaign through ReachBell. Once you've verified delivery, remove the OneSignal SDK include and the OneSignalSDKWorker.js file from your site root. Browsers will unregister the old worker on the next visit.

Do I get migration help?

Yes — every paid plan includes free migration support. Email sales@reachbell.com with your OneSignal app ID and a sample of your CSV, and we'll handle the import, segment rebuild, and verification call. Most cutovers take a single afternoon.

Ready to make some noise?

Free forever for your first 1,000 subscribers. Set up in five minutes — no credit card needed.

Start free today