Migrate Your Historical Data from v1
If you're upgrading from Sealmetrics v1, the Migration Wizard imports your historical data into your v2 site. Migrations run in the background overnight, so you can schedule the import today and check the results tomorrow morning.
What gets migrated
| Data type | Migrated | Where it lands in v2 |
|---|---|---|
| Conversions | Yes | Your Conversions report |
| Microconversions | Yes | Your Microconversions report |
| Pageviews (pre-aggregated) | Yes | Your Pages report (URL → name, totals → page views, entrances) |
| Terms / OS / Device dimensions | Yes | Rolled into your Sources & Devices reports |
All available data types are always migrated together — you don't need to (and can't) pick a subset. Properties on conversions and microconversions are preserved.
engaged_entrances is always 0 on migrated rows — Sealmetrics v1 didn't record this signal. Your v2 bounce-rate calculation will only be meaningful for traffic captured after you installed the v2 pixel.
How the wizard works
The Migration Wizard has three steps:
- Connect — authenticate against your v1 account.
- Select Dates — confirm the auto-calculated date range (or customize it).
- Status — track the migration once it's been scheduled.
You don't have to babysit the wizard. Once you complete step 2, the job is queued and the wizard closes the loop by moving you into step 3. You can close the tab; the job runs on its own overnight.
Step 1 — Connect to v1
- Go to Settings → Migration.
- Click Start New Migration.
- Enter your Sealmetrics v1 credentials:
- Email — the address you use to log into Sealmetrics v1.
- Password — the v1 password.
- v1 Account ID — the MongoDB account identifier from your v1 setup.
- Submit the form. The wizard validates the credentials against v1 and advances to the next step. If the credentials are wrong or v1 is unreachable, you'll see the error and stay on step 1.
Your credentials are encrypted at rest (Fernet / AES) and are used only to open a short-lived tunnel to v1 during the migration. Sealmetrics never stores them in the clear.
Step 2 — Select the date range
When step 2 opens, the wizard connects to v1 in the background and calculates a suggested date range for you:
- Start = your oldest data in v1.
- End = the day before your first v2 pageview (to avoid double-counting the overlap).
By default the wizard uses that suggested range. You almost never need to change it — it's the exact range that fills the gap between v1 and v2 with no duplicates.
Customizing the range
If you want to import a shorter window (e.g. only the last 6 months), tick "I want to customize the date range" and pick the dates yourself.
Rules:
- Maximum window: 2 years (730 days). The wizard will refuse a longer range.
- End date can't be in the future.
- If your v1 data extends beyond 2 years back, the "available" range shown will be capped at 2 years.
If you extend the end date past what the wizard suggests, you'll overlap with data that v2 already captured. The wizard shows a red warning: "Under your responsibility. Existing v2 data for this range will be replaced." Only do this if you know what you're doing.
Important: match your timezones
Make sure your v1 timezone matches your v2 site's timezone. Data is bucketed by local day in both platforms, so a mismatch will shift every metric across day boundaries and make the join at the seam look wrong. The wizard shows a reminder before you submit.
Click Schedule Migration to queue the job.
Step 3 — Status
Once queued, the wizard shows the job's status. Migrations do not run immediately: they are processed during the nightly window between 01:00 and 07:00 CET. Depending on when you scheduled it, the job may sit in pending for a few minutes to several hours before the worker picks it up.
Status values you may see:
| Status | Meaning |
|---|---|
pending | Waiting for the next processing window. |
running | The worker is currently importing your data. |
completed | Done — data is available in your reports. |
failed | Something went wrong; the worker will auto-retry the next night. |
You can close the tab safely — the worker runs server-side and doesn't need your browser open. Come back to Settings → Migration anytime to check progress.
Cancelling
You can cancel a job that's still pending or has failed. Once a job is running, cancellation is not possible — the worker completes the current run to avoid leaving your data half-imported.
Retries
Failed jobs are automatically retried the next night. There's no "Start New Migration" button for a failed job — the retry is automatic. If a job keeps failing, contact support with the job ID.
Constraints and edge cases
- One completed migration per site. After a migration reaches
completed, you can't queue another one for the same site — contact support if you need to re-migrate (rare; usually only after a data-model change). - Nocturnal processing only. The worker is idle during the day; jobs scheduled at 3pm won't start until 01:00 CET the next morning. This is deliberate — batch imports at night avoid competing with live ingestion resources.
- Idempotent inserts. When the worker imports a date range, it first deletes any existing v2 rows in that range, then inserts the v1 data. Re-running (in the rare cases support enables it) does not create duplicates.
- Sub-batched inserts. The worker paginates through MongoDB and writes ClickHouse in batches of 200 rows, with pauses between batches, so your live analytics stay responsive during the import.
After the migration
Once the job reaches completed, imported data is available immediately in your v2 reports — no further action needed. In particular:
- The Conversions and Microconversions reports show the merged history.
- The Pages report includes v1 URLs with their page views and entrances.
- Channel grouping is applied to imported rows using the default v2 rules (any custom channel rules you add later will only affect new traffic — same rule as everywhere else in Sealmetrics: classification happens at ingest time).
Troubleshooting
"No data found in v1 for this account." The credentials worked but the v1 account has no historical data. Nothing to migrate — you can start with a clean v2 setup.
"A completed migration already exists for this account." This account has already been migrated. If you genuinely need to re-run it, contact support.
Job stuck in pending past the next 01:00 CET window. Check Settings → Migration — a longer queue at your migration cohort can delay the start. If a job is still pending more than 24 h after being scheduled, ping support with the job ID.
Job in failed state. Failed jobs auto-retry the next night. Check back the morning after; if it fails twice in a row, contact support with the job ID and the error message from the status card.
Related documentation
- First Steps with Sealmetrics — set up your v2 account before importing.
- Migration from v1 (tracker) — update your tracking pixel from v1 to v2.
- Migration from v1 (API) — migrating API integrations from the legacy Postman collection to the current REST API.
- Installation — install the current tracking script.
- How to Measure Conversions — configure conversions in v2.
- Conversions Report — verify imported conversions in your reports.