RekomiRekomiBlogPricing
Rekomi Docs
Rekomi Docs
Welcome to Rekomi
Quickstart for brandsPlans and trialsIntegrationsStripe Connect (sales tracking)Organization settingsTeam managementNotifications
Migrations from other platformsMigrating from RewardfulMigrating from TapfiliateMigrating from FirstPromoterMigrating from PartnerStackMigrating from Dub PartnersMigrating from Tolt

Campaigns and commissions

CampaignsCommission modelsPay per click or lead (CPC & CPL)Coupon-code attributionSub-affiliate recruitingTracking and attribution

Affiliates

Recruit affiliatesManage affiliatesAI co-pilotApply to the curated network

Money flow

SalesPayoutsMulti-currencyTax formsReports

Email

Sending domainBroadcasts
For brandsMigrate from another platform
|Brands|

Migrating from Dub Partners

Move your Dub Partners affiliate roster onto Rekomi. The self-serve importer reads Dub's open-source CSV schema, extracts slugs from partner_link URLs to preserve ?via= links, and maps Dub's 8-state status vocabulary to Rekomi's 4-state enum.

This guide is for brands switching from Dub Partners to Rekomi. The importer reads Dub's CSV export (sourced directly from the open-source schema), extracts the affiliate slug from each row's partner_link URL, dedupes by email, and maps Dub's eight status values to Rekomi's four.

For most affiliates, existing brand.com/?via=alex links are preserved automatically. Affiliates with multiple Dub short links get a fresh single Rekomi link; preserving the full set requires a custom backfill via Dub's API.

Migration is on Starter or higher; auto-notify is on Growth or higher.

What the importer brings across

FieldSource columnNotes
EmailEmailRequired. Lowercased + trimmed. Primary dedup key.
Full nameNameSingle column, full name.
StatusStatus8-state Dub vocabulary; mapping below.
Tracking slugpartner_link (URL parsed) or link_key (fallback)Slug extracted from the URL's ?via= or ?ref= query param.

Dub's CSV export has configurable columns: ID, Name, Email, Country, Status, "Enrolled at", and "Payouts enabled at" are always included; optional columns (Description, Clicks, Leads, Conversions, Sales, Revenue, Commissions, Net Revenue, Website, YouTube, X/Twitter, LinkedIn, Instagram, TikTok) are toggled on at export time. The importer fuzzy-matches case-insensitively and silently ignores columns it doesn't use.

Status mapping

Dub has the most granular status vocabulary of the 5 supported platforms (8 distinct states). The importer collapses to Rekomi's 4-state enum:

Dub StatusRekomi
approvedApproved
invitedApproved (the partner has a usable link)
pendingPending
rejectedRejected
declinedRejected
archivedRejected
deactivatedBanned
bannedBanned
anything else, blank, or missingPending

The match is case-insensitive. The "invited → Approved" mapping is intentional: an invited partner in Dub has been pre-provisioned with a working tracking link, which is closer to Rekomi's Approved (link active) than Pending (no link yet).

How slug preservation works

Dub's tracking URL is brand.com/?via={key} by default (using the via attribution param, same as Rewardful). Rekomi's tracking URL is also brand.com/?via={slug} once you have via in your attribution params - via is one of the 16 defaults, so no extra config is needed.

The importer extracts the slug for each row in two passes:

  1. Primary: parse the partner_link column (e.g. https://brand.com/?via=alex) and extract the value of the ?via= or ?ref= query param.
  2. Fallback: read the link_key column directly (Dub's internal short-link key).

Preservation succeeds when:

  1. The extracted value is a valid alias: 3-64 characters, alphanumeric plus hyphen, no leading or trailing hyphen.
  2. The slug is not already taken globally.

If both extraction attempts fail (e.g. the row has no partner_link and no link_key), a fresh 12-character random slug is generated; the affiliate's existing Dub link breaks.

Multiple links per partner is a structural mismatch. In Dub, one partner can have many short links each (e.g. dub.sh/alex-blog, dub.sh/alex-yt). Dub's CSV export flattens to one row per partner, picking one of their links as partner_link. The importer creates one Rekomi tracking link per imported affiliate - the affiliate's other Dub links are not preserved. If keeping the full set is critical for your migration, contact support; we can scope a Dub API-side backfill that imports every link.

Step-by-step cutover

1. Export from Dub

In Dub, open Program → Partners. At the top of the partners table, click the ⋮ (kebab) menu and choose Export as CSV. For lists under 1,000 partners, the download starts immediately. For lists over 1,000 partners, Dub emails the CSV asynchronously - check your inbox.

When exporting, leave the default columns selected (ID, Name, Email, Country, Status, Enrolled at, Payouts enabled at). Optionally enable Description and any social columns if you want them in your local archive, though the importer ignores them.

2. Upload the CSV

Open /dashboard/settings/migrate. Pick Dub Partners as the source, select your destination Rekomi campaign, and upload the CSV.

3. Opt into auto-notify (Growth+ only)

Check Notify affiliates after import and compose a personal note. Click Send a sample to myself to fire a preview, then let the bulk dispatch run at 1 email/sec.

4. Swap the tracking snippet

Install Rekomi's tracking snippet, remove Dub's snippet. Since via is one of Rekomi's default attribution params, every existing brand.com/?via=alex link starts attributing to Rekomi from the moment the swap is live.

5. Cancel Dub

Keep Dub active for a 24-48 hour shadow period if you want to compare numbers, then cancel. Note that any Dub short links on the dub.sh domain stop working when Dub is cancelled - affiliates who shared those instead of branded links need to update them.

What is NOT imported

DataStatusWorkaround
Multiple short links per partnerOnly one preservedContact support for a Dub API-side backfill of every link.
Dub-hosted short links on dub.shDomain dependencyAffiliates need to update share links if they used dub.sh; branded brand.com/?via= links keep working via attribution params.
Historical clicks, leads, conversionsNot portableFirst-party cookie data is platform-specific; new history starts fresh on Rekomi.
Historical sales and commissionsSelf-serve (Step 2)Import them via the sales/commissions CSV under Settings, Migrate, Step 2. See Importing history and earnings.
Description and social linksSilently ignoredIf you need them as affiliate metadata, contact support; affiliate-side custom fields are on the roadmap.
CountrySilently ignoredCountry detection works automatically from each click via geo-IP.
"Enrolled at" / "Payouts enabled at"Silently ignoredRekomi creates fresh timestamps on import.

Common gotchas

My export is taking a long time. Lists over 1,000 partners are emailed async by Dub. Check your account owner's inbox; it usually arrives within 10-15 minutes.

partner_link is empty for some rows. Some Dub partners (especially pending or invited ones) haven't been issued a tracking link yet. The importer falls back to link_key, then to a fresh random slug. The job detail panel lists which rows fell back.

My invited partners landed as Approved. Yes - that's the intentional mapping. An invited partner in Dub has a working link and is closer to Rekomi's Approved state. If you want them as Pending, bulk-reclassify via /dashboard/affiliates after import.

Some affiliates have multiple Dub short links and only one came across. Correct. Dub's CSV is one-row-per-partner. To preserve all links per partner, contact support for a Dub API-side backfill.

My partner links use a custom Dub domain (go.brand.com). Same flow - the slug is still extracted from the ?via= or ?ref= query param. If your custom Dub domain points to a Dub-hosted endpoint rather than brand.com, repoint the DNS to Rekomi after the snippet swap to keep links resolving.

Verifying the import landed clean

After the job completes:

  1. Open /dashboard/affiliates and spot-check 5-10 rows for name + email match.
  2. Confirm one affiliate's tracking link is brand.com/?via={key} matching the source Dub link.
  3. Check the job detail panel for any rows that fell back to fresh slugs - those affiliates' old Dub links won't work.
  4. Send a sample notification to yourself.
  5. Click your own test link with the new snippet live; confirm a click row appears within seconds.

Then fire the bulk auto-notify and cancel Dub.

Importing history and earnings

To bring over each affiliate's past performance, export your sales/commissions CSV from Dub (Program, Commissions, Export as CSV) and upload it under Settings, Migrate, Step 2 (separate from the affiliate roster above).

  • Past conversions and commissions are matched to the affiliate by email (or preserved slug) and recorded with the amount and date from your export. Amounts are read as major-unit money; verify the totals on the preview screen.
  • Commissions Dub already paid import as locked history (shown in lifetime totals, never paid again). Commissions still owed are queued for a Rekomi payout only if you authorize it on the preview screen.
  • If your export includes a customer's Stripe customer/subscription id and your Stripe is connected, existing subscriptions keep paying the same affiliate on renewals.
  • A dry-run preview shows what will import (and exactly how much, if anything, Rekomi would pay) before you commit. Re-running is safe. Voided and refunded rows are skipped.

See the migrations overview for the full reference.

Where to go next

  • Tracking and attribution: via and the other 15 default attribution params.
  • Migrating from other platforms: URL-preservation matrix.
  • vs Dub Partners: side-by-side comparison if you are still evaluating.

Migrating from PartnerStack

Move your PartnerStack affiliate roster onto Rekomi. The self-serve importer handles PartnerStack's loosely-documented CSV format via header fuzzy-matching. Tracking links use path-based URLs that need a redirect rule for full preservation; the importer handles roster, status defaults, and notifications.

Migrating from Tolt

Move your Tolt partner roster onto Rekomi with the self-serve CSV importer. Dedupes by email, preserves referral slugs where Tolt exports them, keeps your affiliates' existing ?aff= links attributing, and optionally emails everyone a one-click sign-in invite.

On this page

What the importer brings acrossStatus mappingHow slug preservation worksStep-by-step cutover1. Export from Dub2. Upload the CSV3. Opt into auto-notify (Growth+ only)4. Swap the tracking snippet5. Cancel DubWhat is NOT importedCommon gotchasVerifying the import landed cleanImporting history and earningsWhere to go next