Migrate from Amplitude
What carries over
| Amplitude concept | SaaS Tracker equivalent |
|---|---|
amplitude.track() | tracker.track() |
amplitude.setUserId() + amplitude.setUserProperties() | tracker.identify() |
| Events (Data Export) | Import via Batch API |
| Cohorts | Recreate as audience rules in Messages |
Migration steps
Export events from Amplitude
Use Amplitude’s Export API to download raw event data as gzipped NDJSON.
curl -u "$AMPLITUDE_API_KEY:$AMPLITUDE_SECRET_KEY" \
"https://amplitude.com/api/2/export?start=20240101T00&end=20250423T23" \
--output amplitude_export.zip
unzip amplitude_export.zip
# Produces: amplitude_export/000000_0 (NDJSON)Transform to SaaS Tracker format
const lines = require('fs').readFileSync('amplitude_export/000000_0', 'utf8').split('\n').filter(Boolean);
const transformed = lines.map(line => {
const e = JSON.parse(line);
return {
event: e.event_type,
distinctId: e.user_id ?? e.device_id,
timestamp: new Date(e.event_time).toISOString(),
properties: {
...e.event_properties,
...e.user_properties,
$migrated_from: 'amplitude',
},
};
});
require('fs').writeFileSync('st_events.ndjson', transformed.map(e => JSON.stringify(e)).join('\n'));Ingest via Batch API
Follow the batching steps from the PostHog migration guide.
Replace the Amplitude SDK
- import * as amplitude from '@amplitude/analytics-browser';
- amplitude.init('API_KEY');
- amplitude.track('page_view', { url: '/' });
+ import { SaaSTracker } from '@saas-tracker/sdk';
+ const tracker = new SaaSTracker({ apiKey: process.env.ST_API_KEY });
+ tracker.track('page_view', { url: '/' });Amplitude Recommend / Predict
If you used Amplitude Predict for churn scoring, SaaS Tracker’s built-in XGBoost model is a direct replacement. See Predictive Churn.