Moving your apps and website from another push notification service. The plan: set up Pushix next to the old service, switch your backend and apps over, then turn the old service off once most users are on the new app version.
1. Create your account and apps
Sign up at www.pushix.in, then create one app in the dashboard for each product. One Pushix app holds its Android, iOS and website subscribers. You get an App ID (used by your apps and website) and a REST API key (used only by your backend) under App settings → Keys.
2. Use the same Firebase project
If your previous service sent to your apps through your own Firebase project, upload a service account key from that same project in App settings → Channels. Then tokens collected before and by the new SDK all belong to the right project. For iPhones, upload your APNs key to that Firebase project (Cloud Messaging tab); an APNs .p8 key you already have works.
3. Import your subscribers (optional)
- Export your subscribers from the previous service as a CSV file (unzip it if needed).
- Pushix dashboard → Subscribers → Import CSV → choose the file.
Recognised columns include id (or player_id, subscription_id), identifier (the FCM token), external_user_id, tags, language, timezone, country, app_version, session_count, last_active and created_at. The import keeps the device ids, tags, external user ids, language, session counts and last-active dates. If your database stores those device ids, they keep working with include_player_ids.
When a user updates to the app version with the Pushix SDK and the phone reports the same FCM token, the SDK takes over the imported row instead of creating a new one.
Only Android rows are imported. iPhones register again (with new device ids) when they open the updated app, and website subscribers when they next visit the site with the Pushix web SDK; browsers that already allowed notifications are subscribed again silently.
Imported devices still running the old app version don't have the Pushix SDK yet. Android usually shows plain notifications sent to those tokens, but taps may not be reported. Test with one phone on the old version before you rely on it. During the switch-over, give each campaign a
collapse_idso a phone that is reachable through both an old and a new token shows the message once.
4. Change your backend
Point your backend at Pushix and use the app's REST API key from App settings → Keys. In PHP:
$ch = curl_init('https://pushix.in/api/v1/notifications');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json; charset=utf-8',
'Authorization: Basic ' . PUSHIX_REST_KEY,
]);
$fields = [
'app_id' => PUSHIX_APP_ID,
'include_external_user_ids' => [$userId],
'headings' => ['en' => 'Order shipped'],
'contents' => ['en' => 'Your order is on the way'],
'data' => ['screen' => 'orders'],
];Or use the helper in libraries/php/PushixClient.php (Node.js and Python helpers are in libraries/ too). /api/v1/notifications and /notifications are the same endpoint, and Authorization: Basic, Key or Bearer all work.
Things to check in your existing calls (field details in REST API):
included_segmentswith the built-in names (Subscribed Users,Active Users,Inactive Users,Engaged Users) work as-is. Create your own segments again in Pushix → Segments with the same names, so your code doesn't change.- iOS and web fields (
ios_badgeType,subtitle,chrome_web_icon,web_url,isIos,isAnyWeb, ...) are supported. template_idworks once you create the template in Pushix (Templates, or composer → Save as template) and use its id.delayed_option(timezone delivery) returns an error. Remove it.- Responses contain
id,recipientsanderrors.
During the switch-over you can send through both: call Pushix first, then the old service for old app versions, with the same collapse_id.
5. Change the Flutter app
Add pushix_flutter and Firebase to pubspec.yaml (see Flutter SDK for the Android and iOS setup), remove the old push SDK, and start Pushix when the app starts:
await Firebase.initializeApp();
Pushix.Debug.setLogLevel(PushixLogLevel.verbose);
await Pushix.initialize('PUSHIX_APP_ID', serverUrl: 'https://pushix.in');
Pushix.Notifications.requestPermission(true);
Pushix.login(userId);
Pushix.User.addTagWithKey('level', '5');
Pushix.Notifications.addClickListener((PushixNotificationClickEvent event) {
final data = event.notification.additionalData;
});The Flutter SDK guide lists every call. Native and React Native apps work the same way: Android SDK (Pushix.initWithContext with https://pushix.in as the server URL), iOS SDK (Pushix.initialize with https://pushix.in as the server URL, plus the notification service extension) and React Native SDK (pushix-react-native). Only one push SDK should handle Firebase messages, so remove the old one in the same release.
6. Change your website (web push)
Turn on web push in App settings, then replace the old service's page snippet and service worker with Pushix's: the snippet from the Setup guide (PushixDeferred, Pushix.init, Pushix.login) and the pushix-sw.js file at the root of your site. Step by step in Web SDK. On WordPress, use the plugin from WordPress plugin.
7. Set up your messaging again
| What you need | In Pushix |
|---|---|
| Saved messages | Templates (save from the composer) |
| Welcome series, re-engagement, scheduled reminders | Automated messages: Welcome, Win back, Recurring |
| In-app messages | In-app messages (all Pushix SDKs) |
| A/B testing | Composer → Test variants first |
| Delivery reports | Sent messages and Analytics, with CSV exports |
8. Release and watch
- Install the new build on your phone, mark it as a test device, and send a test from the dashboard.
- Release the update.
- Watch Subscribers: new installs and updated phones appear with SDK
pushix-flutter/...(orpushix-android,pushix-ios,pushix-react-native), browsers withweb-.... - When most active users are on the new version (Home → "Opened it this week"), stop sending through the old service.
Checklist
- Pushix account created, one app per product
- Firebase key uploaded and "Test connection" passes; APNs key in Firebase for iPhones
- Web push turned on,
pushix-sw.jsand the snippet on your site (if you use web push) - Subscribers imported from CSV (optional)
- Your segments created with the same names
- Backend uses the Pushix URL, App ID and REST key
- App uses the Pushix SDK; Android and iOS setup done; notification icon set
- Templates, automations and in-app messages set up
- Test message received on a test device, tap opens the right screen
- Your plan covers your subscribers and monthly notifications (Plan & usage)
Send your first notification
Create an app in Pushix to get your App ID and REST API key, then follow this guide. The free plan needs no card.