Migrate from...From Amplitude

Migrate from Amplitude

What carries over

Amplitude conceptSaaS Tracker equivalent
amplitude.track()tracker.track()
amplitude.setUserId() + amplitude.setUserProperties()tracker.identify()
Events (Data Export)Import via Batch API
CohortsRecreate 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.