> ## Documentation Index
> Fetch the complete documentation index at: https://www.referly.so/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Migrate from PartnerStack

> Import your partners, referred customers, and sales from PartnerStack into Referly with your PartnerStack API key. Step-by-step guide to finding the key, connecting, choosing what to import, every field setting, and tracking each import.

Moving from PartnerStack doesn't mean rebuilding your program by hand. Referly connects straight to your PartnerStack account and pulls your **partners**, the **customers** they referred, and your past **sales and commissions** across for you — no CSV exports, no file wrangling. You give Referly one key from PartnerStack, choose what to bring over, and it does the rest in the background.

This guide walks through the whole move: where to find the key inside PartnerStack, how to connect, every setting you'll see while choosing what to import, and how to follow each import as it runs.

<Note>
  New to migrating in general? Start with the [Migration overview](/docs/help-center/getting-started/migrate/overview) for how imports work, then come back here for the PartnerStack-specific steps.
</Note>

## Before you start

You'll need:

* **Admin access to your PartnerStack account** — the company dashboard where you manage your partner program, so you can reach its settings and copy your API key.
* **Your Referly program open** in the dashboard, ready to import into.
* A few minutes. Larger programs take longer to pull across, but the import runs in the background — you don't have to wait on the screen.

<Warning>
  Your PartnerStack API key grants access to your PartnerStack account. Treat it like a password: copy it straight into Referly, don't paste it anywhere public, and don't share it. Referly stores it securely so you only enter it once.
</Warning>

## Get your API key from PartnerStack

Referly connects to PartnerStack using an **API key** from your PartnerStack company dashboard. PartnerStack gives you two values — a **public key** and a **secret key** — but Referly only needs the **secret key**. Here's how to find it on PartnerStack's side:

<Steps>
  <Step title="Log in to PartnerStack">
    Sign in to your PartnerStack account as an admin. Use your **company dashboard** — the one where you manage your partners and rewards — not a partner's own login.
  </Step>

  <Step title="Open your API keys">
    Go to **Settings**, then open **Integrations**, and find the **PartnerStack API Keys** section.
  </Step>

  <Step title="Choose your Production keys">
    PartnerStack shows two sets of keys: **Test** and **Production**. Use the **Production** keys. Test keys only work with test data and won't bring your real partners, customers, and sales across.
  </Step>

  <Step title="Copy your Secret key">
    Reveal and copy the **Secret key** from the Production set. This single value is all Referly needs — you can ignore the public key.
  </Step>
</Steps>

<Note>
  If you ever think your secret key has been exposed, you can regenerate it in the same PartnerStack settings screen — then reconnect in Referly with the new key.
</Note>

With the secret key copied, head back to Referly.

## Open the import tool and choose PartnerStack

<Steps>
  <Step title="Open the import tool">
    In your Referly dashboard, select the **plus (+)** button in the top bar, then choose **Import Data**. You can also select **Import** from the top of your **Affiliates**, **Customers**, or **Sales** pages.
  </Step>

  <Step title="Pick PartnerStack as your source">
    On the **Choose your source** screen, select **PartnerStack** from the list of platforms.
  </Step>
</Steps>

![choose-partnerstack-source](https://qnthgdfusotvjgaxpfie.supabase.co/storage/v1/object/public/public-assets/docs/uploads/1784648185060-971690-SCR-20260721-qftl.png)

## Connect your PartnerStack account

The next screen shows PartnerStack connecting to Referly, with a single **API key** field.

<Steps>
  <Step title="Paste your secret key">
    Paste the **Secret key** you copied from PartnerStack into the **API key** field. It's hidden as you type, the same way a password field is.
  </Step>

  <Step title="Save the connection">
    Select **Save connection**. Referly checks the key with PartnerStack right away. If it works, you'll see the connection saved with a green **Saved connection** badge. If it doesn't, double-check that you copied the whole **Secret key** from the **Production** set and try again.
  </Step>
</Steps>

![partnerstack-connection-form](https://qnthgdfusotvjgaxpfie.supabase.co/storage/v1/object/public/public-assets/docs/uploads/1784648189338-99668-SCR-20260721-qgew.png)

Referly remembers this connection, so the next time you import from PartnerStack — say, to bring sales across after your partners — you won't have to enter the key again. To swap in a different key later, select **Replace connection**.

## Choose what to import

Once the connection is saved, you choose which parts of your PartnerStack program to bring over. There are three, and they line up with PartnerStack like this:

| Select this in Referly | What it brings over from PartnerStack                                                       |
| ---------------------- | ------------------------------------------------------------------------------------------- |
| **Affiliates**         | Your partners, with their names, emails, and referral links.                                |
| **Referrals**          | The customers your partners referred, each linked back to the partner who referred them.    |
| **Sales**              | Your past transactions and the commissions attached to them, credited to the right partner. |

You can tick one, two, or all three — but the **order you import them matters**. Referred customers attach to partners, and sales attach to customers, so those have to exist in Referly first. Always bring your **partners over first**, then referrals, then sales. See [Import in the right order](#import-in-the-right-order) below.

![select-objects-and-fields](https://qnthgdfusotvjgaxpfie.supabase.co/storage/v1/object/public/public-assets/docs/uploads/1784648194431-312245-SCR-20260721-qghh.png)

### Pick the fields to bring across

When you tick an object, it expands to show every field Referly can pull from PartnerStack for it. Each field has a checkbox, so you decide exactly what comes across. A few fields are marked **Required** — these are the details Referly needs to create the record, so they're always on and can't be switched off.

Here's what you can bring for each object.

<AccordionGroup>
  <Accordion title="Affiliate (partner) fields">
    * **First name** *(required)* — the partner's first name.
    * **Last name** *(required)* — the partner's last name.
    * **Email** *(required)* — the partner's email address. This is also how Referly links their referred customers and sales back to them, so a partner with no email in PartnerStack can't be brought across.
    * **Join date** — when they joined your PartnerStack program, so their history stays accurate.
    * **Affiliate link** — their referral link. Referly brings over the partner's default link from PartnerStack so their existing links carry over.
    * **Provider affiliate ID** — the partner's key in PartnerStack, kept for your reference.
    * **Provider status** — the partner's status in PartnerStack (for example, approved or archived), kept for your reference.

    PartnerStack doesn't share a separate payout email, so that field stays empty for partners brought in this way.
  </Accordion>

  <Accordion title="Referral (customer) fields">
    * **First name** *(required)* — the customer's first name.
    * **Last name** *(required)* — the customer's last name.
    * **Email** *(required)* — the customer's email address.
    * **Affiliate email** *(required)* — the email of the partner who referred them. This is how each customer gets attached to the right partner, which is why partners must be imported first. A customer Referly can't trace back to one of your partners is skipped.
    * **Join date** — when the customer was first created in PartnerStack.
    * **External user ID** — the customer's ID from PartnerStack (or the connected billing system), kept for your reference.
    * **Provider customer ID** — the customer's key in PartnerStack, kept for your reference.
    * **Provider status** — whether the customer was a live or test record in PartnerStack.
  </Accordion>

  <Accordion title="Sale fields">
    * **Customer email** *(required)* — the email of the customer who bought.
    * **Customer name** — the customer's name.
    * **Affiliate email** — the email of the partner credited for the sale.
    * **Transaction amount** *(required)* — the value of the sale.
    * **Transaction date** — when the sale happened.
    * **Commission** *(required)* — the commission earned on that sale. PartnerStack can attach more than one reward to a single transaction; Referly adds those together so each sale shows the full commission it earned.
    * **Paid status** — whether the commission was already paid out in PartnerStack, so your payout history stays right.
    * **Affiliate link** — the partner's key or link tied to the sale, kept for your reference.
    * **Provider transaction ID** — the transaction's ID in PartnerStack, kept for your reference.
    * **Provider status** — the reward's status in PartnerStack (for example, pending or approved).
  </Accordion>
</AccordionGroup>

The default selections cover what most programs want, so if you're not sure, leaving them as they are is a safe choice. When you're happy with your picks, select **Continue**.

## Check the field matches

Before anything is imported, Referly shows you a preview of your PartnerStack data lined up against the matching Referly fields. This is your chance to confirm everything landed in the right place — that names, emails, and amounts are matched to the fields you'd expect.

![map-fields-review](https://qnthgdfusotvjgaxpfie.supabase.co/storage/v1/object/public/public-assets/docs/uploads/1784647794604-449157-SCR-20260721-pwuf.png)

Look the preview over, and when it looks right, confirm to start the import.

## Start the import and follow its progress

Imports run in the background, so you can close the panel and keep working. Every import appears in the **Recent Imports** list inside the import tool, each with its own progress.

An import moves through these states:

| Status         | What it means                              |
| -------------- | ------------------------------------------ |
| **Pending**    | Queued and about to start.                 |
| **Processing** | Bringing your records in right now.        |
| **Paused**     | You've paused it; resume it any time.      |
| **Completed**  | Finished — all records handled.            |
| **Failed**     | The import stopped before finishing.       |
| **Cancelled**  | The import was stopped and won't continue. |

Each card shows a progress bar and a running count of how many records came in and how many were **skipped**. A record is skipped when it's missing a detail Referly needs — for example, a PartnerStack partner with no email, a customer Referly can't trace back to one of your partners, or a sale with no amount or commission on it. That's normal; the skipped count just tells you those few couldn't be brought across.

![partnerstack-import-progress](https://qnthgdfusotvjgaxpfie.supabase.co/storage/v1/object/public/public-assets/docs/uploads/1784647809579-261213-SCR-20260721-pywv.png)

You can **pause** a running import and **resume** it later, open **Details** for the full breakdown, or **delete** one you no longer need.

## Import in the right order

Because referred customers attach to partners and sales attach to customers, run your PartnerStack imports in this order and let each finish before starting the next:

<Steps>
  <Step title="Affiliates first">
    Bring your partners over so there's an affiliate for every customer and sale to attach to.
  </Step>

  <Step title="Referrals next">
    Import your referred customers. Each one links to its partner by email — which only works once those partners are already in.
  </Step>

  <Step title="Sales last">
    Import your transactions and commissions, credited to the partners and matched to their customers.
  </Step>
</Steps>

Referly reminds you of this order as you go, and it won't let you start a customer or sales import while the affiliate import it depends on is still running. Since your PartnerStack connection is saved, each round just means reopening the import tool, picking PartnerStack, and choosing the next object.

<Tip>
  Check each import's results — the imported and skipped counts — before moving on to the next type. Getting partners in cleanly first means your customers and sales attach to the right partners automatically.
</Tip>

## Related

<Columns cols={2}>
  <Card title="Migration overview" icon="map" href="/docs/help-center/getting-started/migrate/overview" arrow>
    How imports work and what you can bring across.
  </Card>

  <Card title="Migrate from CSV" icon="file-csv" href="/docs/help-center/getting-started/migrate/csv" arrow>
    Prefer a spreadsheet? Import affiliates, customers, or sales from a file.
  </Card>

  <Card title="Commission plans overview" icon="money-bill" href="/docs/help-center/getting-started/commissions/overview" arrow>
    Set the terms your migrated partners earn on.
  </Card>

  <Card title="Invite affiliates" icon="paper-plane" href="/docs/help-center/getting-started/recruit/invite-affiliates" arrow>
    Bring new partners into your program by email.
  </Card>
</Columns>
