> ## Documentation Index
> Fetch the complete documentation index at: https://doc.trackrev.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Migrate from FirstPromoter

> Move your FirstPromoter promoters, referral tokens, promo codes, and unpaid balances to TrackRev.

FirstPromoter calls affiliates **promoters** and their referral code a **ref ID** (the `?fpr=`
parameter). Both come across.

## Export your promoters

<Steps>
  <Step title="Open your campaign's promoter list">
    In FirstPromoter, go to the campaign you're moving and open its **Promoters** list.
  </Step>

  <Step title="Filter if you need to">
    Leave it on **All** to move everyone, or filter first — the export follows your filter.
  </Step>

  <Step title="Download as CSV">
    Use the export/download action on the list. Keep the **ref ID** and **promo code** columns:
    they're what preserve links and coupon attribution.
  </Step>
</Steps>

<Note>
  Running several FirstPromoter campaigns? Export them one at a time and import each into its own
  TrackRev campaign — that keeps each campaign's terms attached to the right affiliates.
</Note>

## Import it

In TrackRev, go to **Settings → Migration**, pick **FirstPromoter**, and upload the file.
The mapping is auto-detected:

| FirstPromoter column                                 | TrackRev field                                |
| ---------------------------------------------------- | --------------------------------------------- |
| `email`                                              | Email — the affiliate's identity              |
| `name` / `first_name` + `last_name`                  | Name                                          |
| `ref_id` / referral token                            | Tracking parameter → their referral link slug |
| `promo_code`                                         | Coupon code                                   |
| `state` / status                                     | Approval status                               |
| `paypal_email`                                       | PayPal email                                  |
| `current_balance` / unpaid earnings                  | Carried-over balance                          |
| `sales_volume`, `customers_count`, `referrals_count` | Opening revenue / sales / leads               |

Anything auto-detection misses you re-point yourself in the preview step.

## Keeping `?fpr=` links working

FirstPromoter links look like `https://yourapp.com/?fpr=sarah`. With **Keep their existing
referral codes** on, `sarah` becomes the affiliate's TrackRev link slug, so the same code follows
them across.

The `fpr` **parameter** itself is FirstPromoter's. On TrackRev the affiliate's link is
`yourdomain.com/sarah` (or your [custom domain](/link-tracking/custom-domains)), and coupon codes
keep working regardless of link format — which is why bringing promo codes across matters as much
as the codes themselves.

<Warning>
  Turn off the FirstPromoter script only after your TrackRev pixel is live and recording sales, or
  you'll have a window with no attribution on either side. See
  [Install the pixel](/getting-started/install-pixel).
</Warning>

## What doesn't transfer

* Individual historical referrals and commission rows — settle outstanding payouts in
  FirstPromoter, then let TrackRev's ledger start at go-live.
* Promoter tax forms — collect them again from the [partner portal](/affiliate/tax-forms).
* Campaign assets and email templates — rebuild them in
  [email kits](/affiliate/messaging-and-email-kits).

<Card title="Back to the migration overview" icon="arrow-left" href="/affiliate/migration/overview">
  The full before/after checklist for moving a programme.
</Card>
