Moving platforms

How to migrate an affiliate program without losing a single link

By Jimi Barkway · Published 4 September 2026 · Part of the blog

The short answer

A published affiliate link carries the old platform's referral parameter, so the new tracking script has to read that parameter and map the partner's old token to the same person. Get that right and no link breaks. Then move partners, customers and transactions in that order, with a dry run first. Run both platforms for a month, compare sales rather than clicks, collect fresh tax forms because the payer of record changes, and send your affiliates one email that leads with the fact they care about: their links keep working.

Why do affiliates' links break when you move platforms?

In shortBecause a published link carries the old platform's referral parameter, and a new tracking script that does not read that parameter treats the visitor as unreferred. Everything else in a migration is bookkeeping. This is the part that loses money.

An affiliate link is a URL with a parameter on the end. Which parameter depends on the platform: via on one, fpr on another, tap_s on a third. Your partners pasted those links into reviews, videos, newsletters and profile bios over months or years. You cannot recall any of them. Nobody can.

So the whole question is whether the new script reads the old parameter. If it does, a link in a review from two years ago credits the same affiliate from the day the script goes on your site. If it does not, every one of those links is dead from the cutover, and nobody tells you. The affiliate notices when their next statement is empty.

AffiliateRail's script reads eighteen referral parameters besides its own, in a fixed order, and its own parameter wins a tie. The attribution guide lists them and the script itself is public, so you can check your platform's parameter is there before you move. The other half of the trick is the token. Each imported partner keeps their old referral token, so a link that says ?via=jane still maps to Jane, and never to a new id nobody published. Nothing to re-publish.

What has to move, and in what order?

In shortThree kinds of record, in this order: partners, then customers, then transactions. Payout details and tax forms never move. Every import runs as a dry run first, and every run can be rolled back.

Order matters. Partners first, because customers point at partners, then customers, because transactions point at customers, then transactions last, one row per payment, with the customer, the partner, the amount and the date. A row with no amount imports as a lead. Statuses are translated on the way in, and money arrives as a proper amount with a currency.

The records come from a spreadsheet, or straight from the old platform with your own API key. The key is used read-only, encrypted for the run, and removed when the run finishes. Nothing changes on the other side, which is what lets both platforms run at once. Five platforms import directly. The rest go through a CSV, with the column mapping pre-filled from your headers. The imports guide has the field lists.

Every import dry-runs first. The full pass, counting what would be created, updated, skipped and failed, with nothing written. Read those counts against the old dashboard. Run it for real only when they agree. If a run turns out wrong, rollback undoes it in one click: everything it created is removed and everything it updated is restored.

Two things never move, on purpose. Payout details, because a PayPal address or a bank account is something a partner gives to whoever pays them, and that is about to be you. And tax forms, for the reason in the tax section below.

How long do you run both platforms?

In shortA month of parallel running costs nothing. Both scripts on the page, both dashboards open, and one full payout cycle on the new side before the old account closes.

There is no required overlap. But a month buys three things. You can compare the two dashboards on the same traffic. You can watch a payout cycle end to end on the new side, from the sale to the money landing. And the last stragglers, the people who clicked a link the week before the cutover, get credited on whichever side saw them.

One thing to know before you compare. Some older tools' script hosts are on EasyPrivacy, the filter list most ad blockers ship with. If the old script is blocked on a visitor's browser and the new one is not, the old dashboard under-counts that visitor and the new one does not. So the two click columns will not match, and the gap is not an error. Compare sales. Sales arrive on the webhook whatever the browser did.

What does not carry over?

In shortPortal passwords, raw click logs, cookies already set on visitors' devices, and files stored in the old platform's resource area. People, links, customers, sales and commissions do carry.

What moves in a migration, what does not, and what to do about each
RecordMoves?What that means for you
PartnersYesEach keeps their old referral token, so their published links keep crediting them.
CustomersYesEach stays bound to the partner who referred them, so recurring commissions keep going to the right person.
TransactionsYesOne row per payment. A row with no amount becomes a lead.
Commission balancesWith the transactionsWhat each partner is owed is there when they arrive. Check the counts against the old dashboard first.
Published linksKeep workingThe script reads the old parameter. Nobody edits anything.
Portal passwordsNoPartners set a new one from the invite. Their identity, links and history are waiting for them.
Raw click logsNoPeople and money move, not click-by-click traffic. Click counting starts fresh.
Cookies on visitors' devicesNoA visitor referred last week carries the old platform's attribution until they click any affiliate link again. No vendor can move another vendor's cookies.
Hosted filesNoLogos, banners and PDFs in the old resource area need uploading again.
Payout detailsNeverPartners enter their PayPal or bank details in the new portal, with the rail's own checks as they type.
Tax formsNeverFresh forms for a new payer of record. The next section.

Do tax forms carry over?

In shortTreat them as not carrying. A W-8BEN is valid to the end of the third calendar year after it is signed, but whether a form collected by one payer covers a different payer is a question for your accountant. The safe answer is fresh forms for a new payer of record.

The validity rule is the IRS's own, in the W-8BEN instructions. The transfer question is not answered anywhere in plain words, and this page will not pretend it is. What is certain is this. If you are moving from a platform that paid your affiliates on your behalf to one where you pay them from your own account, the payer of record changes, and the form was given to the old payer.

So collect again. Turn on required tax forms and each partner sees the W-9 or W-8 flow in their portal on their first visit. Payouts wait until the form is in, which is the only enforcement that works. The tax forms page has which form, from whom, and what a UK or EU founder does instead.

Move platforms without losing a published link

Eighteen other platforms' parameters, read from the day the script goes on. Fourteen days, no card.

Start free trial

What do you tell your affiliates?

In shortOne email, the day the script goes on, with four facts: their links keep working, the one thing they need to do, when and from where the next payout runs, and who to reply to. Send it yourself. No platform sends it for you.

The importer does not email anyone, and a migration report to the merchant is on the backlog rather than in the product. So the message below is yours to send. It works because it leads with the fact they are worried about, and because it names the day.

The email to your affiliates

Subject: The affiliate program moves to a new platform on [date], and your links keep working

Hi [first name],

From [date] the [program name] affiliate program runs on a new platform, and every link you have already published, in any post, video or newsletter, credits you exactly as it does today, because the new tracking reads the same link. Nothing to edit.

One thing to do. You will get an invite to the new partner portal at [portal address]. Set a password there and check your payout details, because payouts from [date] come from us directly and the old platform will not have them.

Your balance and your customers come across with you. The next payout runs on [date]. Nothing else changes.

Reply to this email if anything looks wrong and I will fix it the same day.

[your name]

Send a second, shorter one the day the first payout lands on the new side, because that is the message that ends the worry, and it is the one most merchants forget to send. Two emails.

What is the order of the day?

In shortExport, create, dry-run, run, install, invite, overlap, watch a payout, close. Nine steps, most of them minutes. The one that takes a month is the overlap, and it takes no effort.

The migration checklist

  1. Export from the old platform: partners, customers, transactions. Every platform has an export page or an API; the guide for your platform links it.
  2. Create the program on the new side and connect billing. The connection is read-only.
  3. Dry-run the import. Compare the counts with the old dashboard. Fix the mapping until they agree.
  4. Run it.
  5. Add the tracking script to your site, and from this moment every old link credits its partner, whichever parameter it carries.
  6. Send the email above, then invite your partners. Their links, customers and balance are already there when they arrive.
  7. Run both platforms for a month. Compare sales, not clicks.
  8. Watch one payout cycle complete on the new side, with the tax forms in and the money landing.
  9. Close the old account. Remove its script last.

There is a step-by-step guide for each platform you might be leaving, with its referral parameter, its export page, and what it does not carry, on the comparison pages. Each one is checked against the vendor's own help pages on the date it shows.

How many links does a migration lose?

In shortNo published figure exists, and this page will not invent one. The honest answer is a rule: none, if the new script reads the old parameter and the partner keeps their token, and all of them if it does not.

That is why the first question on this page is the parameter, and the export is second. An export can be re-run. A link in a video from three years ago cannot be re-published. Check the parameter before you check anything else.

Common questions

Will my affiliates' old links keep working?

They do, if the new script reads the old platform's referral parameter and each partner keeps their old token. AffiliateRail's script reads eighteen parameters besides its own, and the importer keeps the token, so a link published years ago credits the same person from the day the script goes on. Check your platform's parameter is in the list before you move.

Do I have to run both platforms at the same time?

There is no required overlap. A month of running both costs nothing, lets you compare the dashboards on the same traffic, and lets you watch one payout cycle finish on the new side before you close the old account.

What does the importer never touch?

Payout details and tax forms. Partners enter their PayPal or bank details in the new portal, and fill in a fresh W-9 or W-8 there, because the payer of record is changing. The importer also never writes anything to the platform you are leaving.

Can I undo an import?

Every run can be undone. Every import dry-runs first with nothing written, and a real run rolls back in one click: everything it created is removed and everything it updated is restored.

Do my affiliates have to do anything?

One thing: accept the invite to the new portal, set a password, and check their payout details are there. Their links, customers and balance are already waiting. The email on this page says exactly that.

Where these facts come from

Every figure above was read off the document named here on the date beside it. If one has moved on, email support@affiliaterail.com and we will correct the figure and move the date.

Start

Move the program and keep every link

A built-in importer, a dry run before anything is written, and a script that reads the old parameter from day one. No card for fourteen days. Full refund within 30 days of your first payment.