RekomiRekomiBlogPricing
Rekomi Docs
Rekomi Docs
Welcome to Rekomi
Brands
|Brands|

Migrating from another affiliate platform

Move your affiliate program to Rekomi without changing affiliate URLs. The 16-platform compatibility matrix, the bulk-invite flow, and the custom-param config for niche cases.

The single biggest fear about switching affiliate platforms is having to email every affiliate to update their links. With Rekomi, you almost never have to.

Rekomi natively recognizes the attribution query params used by 20+ major affiliate platforms. As long as your previous platform used one of the 16 query-param conventions in the table below, your affiliates' existing links keep working unchanged when you swap out the JavaScript snippet on your site. Same slugs, same URLs, no affiliate outreach.

How affiliate URLs actually work (the boring truth)

Almost every affiliate platform on the market produces links that look like one of these:

https://your-brand.com/?via=alex
https://your-brand.com/?ref=alex
https://your-brand.com/?fpr=alex
https://your-brand.com/?aff=alex

The platform's JavaScript snippet on your site reads the query param (via, ref, fpr, aff, etc.) and persists the slug (alex) as the referring affiliate. The slug + the param name are the only two things that determine whether the link still attributes after migration. So the migration math is:

  1. Same slug + same param convention → link works as-is, no affiliate sees any difference.
  2. Same slug + different param → one redirect line on your reverse proxy fixes it.
  3. Different slug → affiliates need a new link.

Most migrations are case 1.

Native compatibility matrix

PlatformTheir query paramWorks on Rekomi as-is?
Rewardful?via=Yes
Tapfiliate?ref=Yes
FirstPromoter?fpr=Yes
Refersion?rfsn=Yes
Affiliately?aff=Yes
LeadDyno?aff=Yes
Tolt?aff=Yes
Post Affiliate Pro?a_aid=Yes
AffiliateWP?ref=Yes
UpPromote?ref=Yes
Goaffpro?ref=Yes
Friendbuy?ref=Yes
Reditus?via=Yes
Dub Partners?via=Yes
iDevAffiliate?idev=Yes
Talkable?mbsy=Yes
Awin?awc=Yes
ShareASale?sscid=Yes
CJ Affiliate?cjevent=Yes
Impact?irclickid=Yes (post-redirect URL persistence)
PartnerStack?partner_key= (query mode)Yes for query mode; path-based mode needs a redirect rule
Voluum / generic CPA?affid=Yes
Cellxpert?affcode=Yes

If your platform is not in this list but uses a recognizable query-param convention, you can add it as a custom param under Settings > Attribution in the Rekomi dashboard.

The 3-step migration

Assuming your previous platform uses one of the 16 recognized params:

1. Import affiliates with slugs preserved

Two ways to bring your existing affiliates over with their slugs intact:

Option A: CSV import (Settings > Migrate). Pick your source platform (Rewardful, Tapfiliate, FirstPromoter, Dub Partners, or Tolt), upload the CSV, hit Import. Our parser reads the source-platform's slug column automatically:

SourceSlug column we read
Rewardfultoken (or extracted from link URL)
Tapfiliatereferral_code
FirstPromotercust_ref (v1) or ref_id (v2)
Dub Partnerspartner_link (parsed ?via= value)
Toltreferral_code or ?aff= link (best-effort; Tolt keeps codes on its Links resource)
PartnerStackNot supported (path-based URLs)

A green "Affiliate links preserved automatically" badge appears next to the platform name on the upload screen when the parser will read slugs. Every imported affiliate keeps their existing slug; their existing public referral URL (e.g. brand.com/?via=alex) continues to attribute on Rekomi unchanged.

Option B: Bulk invite with slugs (Affiliates page > Invite > Bulk). Toggle the paste format to email, slug, name and paste one row per affiliate:

alex@example.com, alex, Alex Example
jamie@example.com, jamie-r, Jamie Recommends

We send each invite as usual; the accept flow uses the slug you supplied. If a slug is taken or invalid, that affiliate still gets an invite but with a fresh random slug. The response surfaces those rows in a slugConflicts array so you can re-send or re-think.

Option C: MCP install assistant. Ask the connected AI assistant: "I'm migrating from FirstPromoter. Here's my affiliate list." Hand it the CSV; the assistant calls bulk_invite_affiliates with the recipients shape (per-row email + slug + name) under the hood and reports back per-row outcomes.

Single invites are free on every plan including Trial. Bulk invites and CSV imports require Starter or higher with an active paid subscription.

What happens when a slug is taken

Affiliate slugs are globally unique across Rekomi. If you try to migrate an affiliate with slug alex and another brand somewhere on Rekomi already has an affiliate with slug alex, your import:

  1. Still creates the invite / affiliate row.
  2. Falls back to a fresh random 12-char slug for that one affiliate.
  3. Reports the row in the slugConflicts (bulk) or slugFallback (CSV) response field so you know which one to re-send under a different slug, or to ask that affiliate to update their link.

In practice this is rare for migrating brands because most affiliate slugs are name-based and the global namespace is sparse. Brands with very generic slugs (e.g. an affiliate literally named affiliate1) are the most likely to hit a conflict.

2. Swap out the JavaScript snippet on your site

Replace your old affiliate-platform script tag with the Rekomi loader. The snippet is shown on every install recipe page (/dashboard/setup/install/platforms/...).

3. Connect Stripe (or set up coupon attribution)

If your previous platform was Stripe-webhook-driven (most are), connect Stripe in the Connect payment processor step (/dashboard/setup/connect-sales) and conversion attribution flows automatically. If you were using coupon-code attribution previously, mint per-affiliate Stripe promotion codes under each affiliate's detail page.

4. (Optional) Import historical earnings

Under Settings > Migrate > Step 2, upload your platform's referrals/commissions export to bring over each affiliate's past conversions and commissions so their stats are not reset to zero. Already-paid commissions import as locked history (never paid again); unpaid ones are queued for a Rekomi payout only if you explicitly authorize it on the preview screen. When the export includes a customer's Stripe customer/subscription id and your Stripe is connected, we seed the attribution so existing subscriptions keep paying the same affiliate on renewals. Every history import shows a dry-run preview (including exactly how much, if anything, Rekomi would pay) before you commit, and re-running is safe. See the migrations overview for details.

That's it. Affiliates never had to update a single link, and their history comes with them.

When you DO need a redirect rule

A few cases need one extra line on your server:

Niche query-param platforms

If your previous platform used a param not in the recognized 16 (e.g. an internal tool that used ?our_aff_id= or similar), add it as a custom param in Settings > Attribution:

  • Comma-separated additional params, each 2-32 chars, lowercase letters / digits / underscore / hyphen
  • Up to 10 custom entries, 256 chars total

After saving, the new params are recognized by the loader on the next page load. No snippet re-paste, no affiliate outreach.

Path-based platforms (PartnerStack legacy, Impact)

PartnerStack and Impact often produce path-based links like partner.brand.com/refer/alex or offers.impact.com/c/12345/alex. These can't be migrated by query-param recognition alone because the slug is not in the URL's query string. Options:

  1. CNAME the old subdomain to your origin + add a path rewrite. Example for Cloudflare Workers:
addEventListener("fetch", (event) => {
  const url = new URL(event.request.url);
  const m = url.pathname.match(/^\/refer\/([a-z0-9-]+)\/?$/);
  if (m) {
    return event.respondWith(
      Response.redirect(`https://your-brand.com/?via=${m[1]}`, 302),
    );
  }
});
  1. Email affiliates once with new links. For high-volume affiliates this is friction, but if you only have a few partners on a path-based platform, it can be the cleanest solution.

Custom platforms with completely different conventions

If your old platform did something exotic (POST-based attribution, fingerprinting, etc.), reach out to support@rekomi.com and we'll help you scope a custom integration path.

Why your previous platform pushed friction at you

Most affiliate platforms have a financial incentive to make leaving them feel painful. Rewardful's docs say drop-in migration is supported. Impact's "media partner migration team" is a sales-friction tax built into the product. PartnerStack's "Concierge migration" service is the same thing in different packaging.

We don't have that incentive. The more brands that switch in, the better Rekomi gets. Drop-in compatibility with the 16 most-common params is a one-time engineering cost we paid up front so you never have to.

Programmatic migration via the MCP install assistant

If you have an AI client connected to Rekomi via MCP (Claude Desktop, Claude Code, Cursor, Continue, Zed, ChatGPT Connectors), ask it:

"I'm migrating from FirstPromoter. Here's my affiliate list as a CSV. Help me move everything over."

The assistant calls:

  1. get_billing_state to confirm your plan tier covers bulk-invite.
  2. get_attribution_params to confirm your source platform's param is in the defaults (FirstPromoter's ?fpr= is).
  3. bulk_invite_affiliates to send the branded invite emails.
  4. Optionally update_attribution_params if you need a custom param.

The entire migration runs in chat. No CSV upload UI, no copy-paste between tabs.

See also

  • MCP server: the AI install assistant + 32 other tools
  • Pixel tracking: the loader script behavior + recognized params
  • Bulk affiliate invites API: the underlying endpoint the install assistant uses

On this page

How affiliate URLs actually work (the boring truth)Native compatibility matrixThe 3-step migration1. Import affiliates with slugs preservedWhat happens when a slug is taken2. Swap out the JavaScript snippet on your site3. Connect Stripe (or set up coupon attribution)4. (Optional) Import historical earningsWhen you DO need a redirect ruleNiche query-param platformsPath-based platforms (PartnerStack legacy, Impact)Custom platforms with completely different conventionsWhy your previous platform pushed friction at youProgrammatic migration via the MCP install assistantSee also