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 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.

This guide is for brands switching from Tolt to Rekomi. Tolt is a Stripe, Paddle, and Chargebee-native affiliate platform for SaaS startups. The self-serve importer reads Tolt's partner CSV export, dedupes by email, preserves the referral slug when the export carries one, and optionally emails every imported affiliate a one-click sign-in invite.

Most teams complete the cutover in a single afternoon. 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 namename, or first_name + last_nameIf name is present it wins; otherwise the two parts are joined with a space.
StatusstatusSee mapping table below.
PayPal emailpaypal_email, payout_email, or paypalOptional. Tolt's most common payout method; preserved as the affiliate's payout destination when present.
Tracking slugreferral_code (or ?aff= extracted from a referral-link column)Best-effort. If neither is present, a fresh 12-character random slug is generated. See How slug preservation works.

Anything else in the partner CSV (company name, country, totals) is silently ignored by the roster importer. To bring over historical sales and commissions, use the separate commissions export in Step 2 (see Importing history and earnings).

Status mapping

Tolt's partner statuses map to Rekomi's 4-state enum:

Tolt statusRekomi
activeApproved
pendingPending
suspendedPaused
rejectedRejected
anything else, blank, or missingPending

The match is case-insensitive. suspended is a reversible, temporary deactivation in Tolt (the partner cannot earn new commissions or reach the portal until reactivated), so it maps to Paused rather than a hard Banned. You can reclassify any row with the bulk-status action in /dashboard/affiliates after import. Approved imports get an ApprovedAt timestamp set to the import time so payout eligibility math works correctly.

How slug preservation works

Tolt's referral links use the ?aff= query parameter, for example brand.com/?aff=alex. aff is one of Rekomi's built-in attribution params and works out of the box, so your affiliates' existing ?aff= links keep attributing on Rekomi the moment you swap the tracking snippet, whether or not the importer preserves the exact slug.

Slug preservation itself is best-effort for Tolt. Tolt models the referral code on its separate Links resource rather than on the Partner object, so a partner CSV export often does not include a slug column at all. The importer preserves a slug when:

  1. The export includes a referral_code (or ref_code / code) column, or a referral-link column (referral_link, affiliate_link, link, url) from which it can parse the ?aff= value.
  2. That value is a valid alias: 3-64 characters, alphanumeric plus hyphen, no leading or trailing hyphen.
  3. The slug is not already taken in the global Rekomi namespace (slugs are platform-wide unique, not per-org).

When all three hold, the affiliate keeps their exact slug. When the export carries no code and no parseable link, the affiliate gets a fresh 12-character random slug; their account still imports cleanly. You can see which slugs were preserved versus regenerated in the import job detail panel.

Step-by-step cutover

1. Export from Tolt

In Tolt, open Partners and use the export action to download your partners as a CSV. Save it locally.

2. Confirm your attribution param includes aff

aff is one of Rekomi's built-in attribution params and works out of the box. If you have narrowed your custom param list, open /dashboard/settings/attribution and make sure aff is included before importing. This is what makes your affiliates' existing Tolt links resolve to the right affiliate on Rekomi.

3. Upload the CSV

Open /dashboard/settings/migrate. Pick Tolt as the source, select your destination Rekomi campaign, and upload the CSV. The importer runs synchronously and shows a row-by-row result: imported, skipped (duplicate or missing email), or errored (parse failure).

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

Check Notify affiliates after import and compose a short personal note in the rich-text editor (~500 visible characters). The note renders inside a brand-accent blockquote at the top of every notification email, above a single Claim your account button that takes the affiliate to a pre-filled Clerk sign-up.

Click Send a sample to myself to fire a preview to your own verified email before the bulk send kicks off. The bulk dispatch is throttled to one email per second with up to 200ms jitter; a 500-row import takes about 8 minutes end to end.

5. Swap the tracking snippet

Install Rekomi's tracking snippet on your marketing site, then remove the Tolt snippet (tolt.js). The moment the new snippet is live, every existing brand.com/?aff=alex link attributes to Rekomi instead of Tolt. Your affiliates do not need to know about the change.

Keep Tolt active for a 24-48 hour shadow period to compare the two sides if you want belt-and-suspenders confidence; then cancel Tolt.

What is NOT imported

DataStatusWorkaround
Historical clicksNot portableFirst-party cookie data is platform-specific; new click history starts fresh on Rekomi.
Historical sales and commissionsSelf-serve (Step 2)Import them via the commissions CSV under Settings, Migrate, Step 2. See Importing history and earnings below.
Referral codes not in the exportBest-effortTolt stores codes on its Links resource; rows without a referral_code or parseable ?aff= link get fresh slugs. Their ?aff= links still attribute via the attribution param.
Custom commission rulesNot importedConfigure Rekomi's commission models directly.

Common gotchas

My export has no referral_code column. That is expected: Tolt keeps the referral code on its Links resource, not the Partner object. Affiliates whose code is not in the file get a fresh Rekomi slug, but their existing ?aff= links keep attributing because aff is a recognized attribution param. If you need to preserve exact slugs, add a referral-link or code column to the export before downloading (if your Tolt plan supports it).

A partner is suspended in Tolt. They import as Paused (not Banned), since Tolt's suspension is reversible. Reactivate or reclassify them with the bulk-status action in /dashboard/affiliates.

My affiliates use a custom domain portal. Tolt's branded portal (e.g. affiliates.yourbrand.com) is replaced by Rekomi's affiliate area when the affiliate claims their account; their ?aff= referral links are unaffected.

Verifying the import landed clean

After the import job completes:

  1. Open /dashboard/affiliates and spot-check 3-5 rows. Confirm name, email, and status match the Tolt source.
  2. Open one affiliate's detail page and confirm the tracking link is present (the original ?aff= slug when preserved, or a fresh Rekomi slug otherwise).
  3. Send a sample notification to yourself and confirm the Claim your account button lands on the pre-filled Clerk sign-up.
  4. Click an affiliate's existing ?aff= link with the new snippet installed; confirm a click row appears under that affiliate within a few seconds.

If steps 1-4 all pass, fire the bulk auto-notify and cancel Tolt when comfortable.

Importing history and earnings

To bring over each affiliate's past performance, export your commissions CSV from Tolt and upload it under Settings, Migrate, Step 2 (separate from the partner roster above).

  • Tolt records money in integer cents (the amount field is the partner's commission; revenue is the sale gross), so the importer reads those columns as minor units.
  • Past conversions and commissions are matched to the affiliate by email (or preserved slug) within the target campaign, and recorded with the amount and date from your export.
  • Commissions Tolt already paid import as locked history (shown in lifetime totals, never paid again). Commissions still owed (pending or approved) are queued for a Rekomi payout only if you authorize it on the preview screen. Refunded, fraud, and rejected rows are skipped.
  • A dry-run preview shows what will import (and exactly how much, if anything, Rekomi would pay) before you commit. Re-running is safe.

See the migrations overview for the full reference.

Where to go next

  • Tracking and attribution: confirm aff is in your param list, configure cookie window and stickiness.
  • Migrating from other platforms: the broader URL-preservation matrix if you also have affiliates on other platforms.
  • Plans and trials: see what each tier includes and how the 14-day free trial behaves.

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.

Campaigns

The central object in Rekomi. Create, configure, archive.

On this page

What the importer brings acrossStatus mappingHow slug preservation worksStep-by-step cutover1. Export from Tolt2. Confirm your attribution param includes aff3. Upload the CSV4. Opt into auto-notify (Growth+ only)5. Swap the tracking snippetWhat is NOT importedCommon gotchasVerifying the import landed cleanImporting history and earningsWhere to go next