Migrate from Smartlead
One-time import of your Smartlead workspace into Superkabe — campaigns, sequences, leads, and mailbox metadata
What This Migration Tool Does
The Smartlead migration is a one-time import from your existing Smartlead workspace into Superkabe. It pulls your campaign structure, sequence steps and A/B variants, lead lists with custom fields, mailbox metadata, and a 7-day warmup health snapshot used to seed conservative initial send caps. The wizard lives at /dashboard/migration/from-smartlead.
It does not pull mailbox authentication. OAuth tokens and SMTP passwords never leave Smartlead — you reconnect each mailbox natively in Superkabe via Google / Microsoft OAuth or encrypted SMTP credentials. That's an intentional security boundary, not a limitation we plan to remove.
When to Run This
Run the migration when you're ready to either fully decommission Smartlead (aggressive mode) or let existing sequences finish there while starting new outreach in Superkabe (conservative mode). All imported campaigns land paused — nothing sends until you launch them in Superkabe.
What Gets Imported vs. What Doesn't
Side-by-side reference so you know exactly what survives the move:
Imported
- Campaigns — name, schedule (timezone, hours, days), daily send limit, send-gap, track-opens / track-clicks, stop rules
- Sequence steps — subject, HTML body, delay-in-days between steps
- A/B variants — subject + body for each variant (the variants come over; per-variant statistics restart)
- Leads — email, first/last name, company, custom fields (stored on CampaignLead)
- Mailbox metadata — from-address, provider type, daily target, warmup reputation, 7-day warmup snapshot
- Campaign ↔ mailbox pool — which mailboxes were attached to which campaign
Not imported
- Mailbox auth — OAuth tokens, SMTP passwords. Security boundary; you re-auth in Superkabe.
- Send history — past opens, clicks, bounces, replies before the migration date.
- Inbox / replies — Superkabe starts with a clean unified inbox view.
- A/B variant statistics — variant content imports; performance counters reset to zero.
- Smartlead-only fields — keys without a Superkabe equivalent are stored as custom variables on the lead, not promoted to first-class fields.
- Snippets / templates — saved snippet libraries don't come over; recreate as needed.
- Webhook subscriptions — outbound webhooks must be reconfigured in Superkabe.
- Block list / suppression list — opt-outs are not pulled today; a separate one-time CSV import is the workaround.
Opt-out leads (PAUSED / STOPPED in Smartlead)
Leads you explicitly halted in Smartlead are never imported regardless of mode. They're counted in the preview but skipped at runtime — Superkabe will not contact someone you already stopped contacting.
Security Model
Your Smartlead admin API key is required only during the migration window. We hold it encrypted at rest while the import runs, and discard it on the earliest of:
- 24 hours after the import completes — TTL is shrunk on success
- 72 hours after you paste the key — hard ceiling regardless of import state
- Immediately, on demand — "Discard now" button in the wizard
Pasting the key is gated behind an explicit authorization checkbox. Submitting it records aConsentrow in our audit trail capturing the actions you authorized: read campaigns, read leads, read email-account metadata, and pause active campaigns at the start of the import.
Why we pause your Smartlead campaigns first
Before reading any leads, the importer pauses every ACTIVE Smartlead campaign. Without this step, Smartlead would keep sending while we're reading — and after you launch in Superkabe, the same recipient could get a duplicate first-touch from both platforms. The wizard requires a checkbox confirming this before it will start.
Step-by-Step Walkthrough
1. Generate a Smartlead admin API key
In your Smartlead dashboard, open Settings → API Keys and create a new admin key. Copy it to your clipboard — you'll only paste it once.
2. Open the wizard and paste the key
Navigate to /dashboard/migration/from-smartlead. Paste the key, tick the authorization checkbox, and click Validate & continue. Superkabe pings Smartlead with the key — invalid keys return immediately with an error and are never persisted.
3. Review the preview
The wizard does a read-only pass and shows totals: campaigns by status, mailboxes by provider, sequence-step count, and a five-bucket lead breakdown:
- – Never contacted — no email has gone out yet (always safe to import)
- – Stale contact — last contacted > 14 days ago
- – Recent contact — last contacted within 14 days (highest re-touch risk)
- – Completed — sequence finished without reply
- – Opted out — PAUSED or STOPPED in Smartlead (never imported)
4. Pick a migration mode
The mode picker is the core decision. Both modes import campaigns, sequences, mailboxes, and never-contacted leads. They differ in how they handle in-flight leads:
Aggressive (default)
Import never-contacted, stale, and completed leads. Recent contacts are skipped by default but can be opted in via a checkbox. Every imported lead restarts at step 1 in Superkabe — threading on existing Smartlead sequences is broken. Best for fully decommissioning Smartlead.
Conservative
Only import never-contacted leads. Mid-sequence leads stay in Smartlead and finish naturally with the original sender, in the original thread. Best when you want to keep Smartlead running for 1–3 months while existing sequences drain and start fresh leads in Superkabe.
5. Start the import
Confirm the "Smartlead campaigns will be paused" checkbox and click Import. The job runs in the background. The wizard polls every 2.5 seconds and shows live counters: campaigns scanned, mailboxes imported, sequence steps imported, leads imported, and per-bucket skip counts. You can close the tab — the job continues server-side and resumes its display when you return.
6. Reconnect mailboxes
When the job finishes, the wizard shows the list of imported mailbox addresses with a per-row Connect link. Each goes to /dashboard/sequencer/accounts where you authenticate via Google / Microsoft OAuth or paste SMTP credentials. Any mailbox you don't reconnect sits idle and its imported campaigns will not send through it.
7. Launch your campaigns
Imported campaigns land in paused with paused_reason: imported_from_smartlead. Review them at /dashboard/campaigns — check the sequence body, attached mailboxes, and schedule, then click Launch when ready.
Edge Cases & Known Limitations
- – Large campaigns (50K+ leads) — split server-side and processed sequentially. Expect noticeably longer runtimes; the wizard keeps showing progress, and the 72-hour key TTL is enough to cover even very large workspaces.
- – Spintax — Smartlead's
{a|b|c}randomized variants are mapped to Superkabe'sStepVariantrows where possible. Complex nested spintax comes over verbatim and may need manual cleanup. - – Tracking pixels / unsubscribe links — Smartlead-injected open-tracking pixels and unsubscribe anchors pointing at
smartlead.ai/slmail.meare stripped from imported HTML. Your own custom links are preserved. - – Lead persona / tags — Smartlead doesn't carry a structured persona field. Imported leads default to
persona: "imported"andlead_score: 50. Update routing rules accordingly, or re-enrich these leads via Clay to get real personas before launching. - – Stop-on-open / stop-on-click — Smartlead supports stop-rules tied to opens and clicks; Superkabe's schema currently only supports stop-on-reply and stop-on-bounce. Other stop conditions are surfaced in the import stats so you can recreate them if needed.
- – Warmup data — when a mailbox has no warmup history, the import logs it under
warmupSnapshotsMissingand seeds the mailbox with the customer's configured daily target. WithUSE_IMPORT_BASELINE=true, unhealthy baselines (warmup-blocked, >5% spam, low reputation) cap the initial daily limit conservatively. - – Webhooks — outbound webhook subscriptions don't come over. Reconfigure in Superkabe's settings.
How Long It Takes
Most workspaces complete in 5–15 minutes. Larger libraries take longer — the bulk of runtime is the lead-fetch loop, which is bounded by Smartlead's API rate limits, not by Superkabe.
| Workspace size | Typical runtime |
|---|---|
| Up to 10K leads | 5–15 minutes |
| 10K – 50K leads | 15–60 minutes |
| 50K – 250K leads | 1–4 hours |
| 250K+ leads | Several hours — well within the 72h key window |
If It Fails Partway
The import is idempotent. Every record (campaign, sequence step, variant, mailbox, lead, campaign-lead) carries an import_external_id from Smartlead, and the writer upserts on it. If the job fails midway, simply re-run the wizard — already-imported records are updated in place; only the missing ones get created.
- – Within 72h of paste — the same key is still on file. The retry kicks in with no extra steps.
- – After 72h — the key has been wiped. Paste it again and re-run; the importer continues to upsert on external IDs, so previously imported data is not duplicated.
- – Failed leads — invalid emails and per-row errors are surfaced in the job's stats panel under
leadsSkippedInvalidEmail. - – The job row itself — terminal failure stores the error message on
ImportJob.errorfor the support team to inspect.
Cost
The migration tool is free on every tier. Email-validation credits are not consumed during import — leads arrive with whatever validation status they had in Smartlead. If you want to refresh validation against Superkabe's pipeline (syntax / MX / disposable / catch-all + MillionVerifier on Growth and Scale), trigger a re-validation from the Leads page after the import completes; that does consume credits per your plan.
Roll-Back
There is no automatic rollback.
The migration only adds — it never deletes existing records. If you import into the wrong workspace or change your mind, contact support@superkabe.com with your organization ID and the import job ID (visible in the wizard); the support team can scope a cleanup to records carrying the correspondingimport_external_id. Until that's done, your imported campaigns stay paused and harmless — they will not send unless you explicitly launch them.