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 ToltMigrating from Lemon SqueezyMigrating from Gumroad

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 Tapfiliate

Move your Tapfiliate affiliate roster onto Rekomi. Self-serve CSV import preserves every existing referral code so ?ref= links keep working, with the gotcha that Tapfiliate emails the export rather than offering a direct download.

This guide is for brands switching from Tapfiliate to Rekomi. The self-serve importer reads Tapfiliate's standard CSV export, dedupes by email, preserves every referral_code so existing brand.com/?ref=alex links keep working, and optionally fires a personal sign-in invite to each imported affiliate.

The only thing different about a Tapfiliate migration vs. the others: Tapfiliate emails you the CSV instead of streaming a download. Plan for an extra round-trip.

Migration is available on Starter or higher; auto-notify requires Growth or higher.

What the importer brings across

FieldSource columnNotes
Emailemail or EmailRequired. Lowercased + trimmed. Primary dedup key.
First namefirstname or first_name (or Firstname)Joined with last name into the full name.
Last namelastname or last_name (or Lastname)Joined with first name.
StatusProgram_approvedTri-value approval flag; mapping below.
Tracking slugextracted from the Program_referral_link URLTapfiliate's export has no dedicated code column; the referral code lives inside the link URL (query param or trailing path segment). A hand-built referral_code / ref_code column is read first when present.

The importer is case-insensitive on every column header, so Tapfiliate's "Firstname" works as well as "first_name". Any column the importer doesn't recognize (e.g. Affiliate_id, Signed_up_at, Signup_source, company, country) is silently ignored. The affiliates export carries no clicks column at all (Tapfiliate's click numbers are Reporting-page aggregates, API-only), so historical click counts cannot come from this file.

Status mapping

Tapfiliate's export carries a single approval flag: Program_approved. The mapping:

Tapfiliate Program_approvedRekomi
true / 1 / yes / active / approvedApproved
false / 0 / no / disapprovedRejected
blank / missingPending

The match is case-insensitive. Tapfiliate's CSV cannot distinguish archived from active (archived affiliates are excluded from the export entirely). See the "archived affiliates" gotcha below.

How slug preservation works

Tapfiliate's tracking URL is brand.com/?ref={referral_code}. Rekomi's tracking URL is also brand.com/?ref={slug}: ref is one of Rekomi's 16 default attribution params, so no extra configuration is needed.

The importer extracts the referral code from each row's Program_referral_link URL (a hand-built referral_code or ref_code column wins when present) and tries to register it as the affiliate's new Rekomi slug. Preservation succeeds when:

  1. The extracted code is a valid alias: 3-64 characters, alphanumeric plus hyphen, no leading or trailing hyphen.
  2. The slug is not already taken globally.

Tapfiliate auto-generates short alphanumeric referral codes by default, which means almost every code is well-formed and rarely collides. Brands that customize codes to recognizable names (alex, growth2024, etc.) get a slightly higher collision rate but the importer logs every fallback in the job result panel.

If a row has no parseable referral link and no code column, a fresh 12-character random slug is generated; the affiliate's existing Tapfiliate link breaks.

Step-by-step cutover

1. Confirm the ref attribution param (usually nothing to do)

ref is one of Rekomi's 16 default attribution params, so Tapfiliate's ?ref= links are recognized out of the box. If you have ever customized your params, open /dashboard/settings/attribution and confirm ref is still active.

2. Export from Tapfiliate

In Tapfiliate, open Affiliates and click Select All (or select the rows you want). Click Export. Tapfiliate does NOT give you a direct download - instead, it emails the CSV to your account owner's address. This is unique to Tapfiliate and is the most common point of confusion in this migration.

Wait for the email (usually a minute or two), save the attached file locally, and proceed to the next step.

3. Upload the CSV

Open /dashboard/settings/migrate. Pick Tapfiliate as the source, select your destination Rekomi campaign, and upload the CSV.

4. Reclassify archived affiliates (if applicable)

Tapfiliate's CSV does NOT include archived affiliates at all, and even for non-archived rows the only state you get is the program_approved boolean. If you had affiliates in Tapfiliate's "rejected" or "blocked" buckets, they either:

  1. Won't appear in the CSV at all (Tapfiliate excludes them), in which case there is nothing to do - they're not migrated.
  2. Will appear as Pending in Rekomi (boolean blank/false) and you can mark them Rejected via the bulk-status action in /dashboard/affiliates.

If you specifically need archived affiliates in your Rekomi org, contact support; the white-glove path can reconstruct them from raw Tapfiliate data.

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

Same flow as every other migration: check Notify affiliates after import, compose a personal note, fire a sample to yourself, then let the bulk dispatch run at 1 email/sec.

6. Swap the tracking snippet

Install Rekomi's tracking snippet, remove Tapfiliate's snippet. Every existing brand.com/?ref=alex link starts attributing to Rekomi from the moment the swap is live.

What is NOT imported

DataStatusWorkaround
Archived affiliatesExcluded by Tapfiliate's CSVWhite-glove migration can reconstruct them from raw data.
Custom fieldsSilently ignoredContact support if you need specific fields preserved.
Historical click countsNot in Tapfiliate's exportsTapfiliate's affiliates export has no clicks column (their click numbers are Reporting-page aggregates, API-only), and per-click event logs are not portable from any platform. Click totals start fresh on Rekomi.
Leads (trial customers)Self-serve (Step 2)Upload Tapfiliate's Customers export in Step 2: trial-status rows import as zero-money lead records attributed to their affiliate.
Historical conversions and commissionsSelf-serve (Step 2)Import them via the Conversions export under Settings, Migrate, Step 2. See Importing history and earnings.
Tapfiliate program structureNot importedSet up Rekomi campaigns first; map at upload time.
Tapfiliate auto-approval rulesNot importedConfigure them in Rekomi via recruit affiliates workflows.

Common gotchas

The "Export" button looks broken - nothing downloads. That's expected. Tapfiliate emails the CSV. Check the inbox of your Tapfiliate account owner.

Some affiliates were marked archived in Tapfiliate but not in my CSV. Archived affiliates are excluded from Tapfiliate's export by design. They are not migrated. If you need them, contact support.

The program_approved column is missing on some rows. They default to Pending. Bulk-approve them post-import via /dashboard/affiliates if appropriate.

My affiliates' referral codes have special characters. Tapfiliate allows hyphens in referral codes which Rekomi accepts. Underscores, slashes, dots, or other punctuation cause the slug to fail validation, and the affiliate gets a fresh random slug instead. The job detail panel lists which slugs fell back.

Verifying the import landed clean

After the job completes:

  1. Open /dashboard/affiliates and spot-check 3-5 rows for name + email match.
  2. Spot-check one affiliate's tracking link: confirm it's brand.com/?ref={referral_code} matching their Tapfiliate value.
  3. Send a sample notification to yourself; confirm the Claim your account button pre-fills correctly.
  4. Click your own test link with the new snippet live; confirm a click row appears within seconds.

Then fire the bulk auto-notify and cancel Tapfiliate when comfortable.

Importing history and earnings

To bring over each affiliate's past performance, export your Conversions CSV from Tapfiliate (emailed, like the affiliate export) and upload it under Settings, Migrate, Step 2 (separate from the affiliate roster above). You can also upload Tapfiliate's Customers export in the same Step 2 slot: rows with trial status (Tapfiliate's lead analog) import as zero-money lead records attributed to their affiliate, so your funnel and lead counts are not reset to zero. Active/canceled customer rows are skipped there (an active customer's history arrives via the Conversions export instead).

  • Past conversions and commissions are matched to the affiliate by the Afilliate_id code (or display name) and recorded with the amount and date from your export. Amounts are read as major units with the per-row Currency column.
  • Tapfiliate's Approved column is an approval flag, not a payment status, so every imported commission locks as settled history (shown in lifetime totals, never paid by Rekomi). Disapproved rows are dropped. Settle any final open balances inside Tapfiliate before you cancel.
  • Tapfiliate's exports carry no Stripe customer/subscription ids and no customer email (identity is your own Customer_id), so automatic recurring re-attribution is not available from this file; existing subscriptions can be re-linked via the white-glove path if needed.
  • A dry-run preview shows what will import before you commit. Re-running is safe. Disapproved and refunded rows are skipped.

See the migrations overview for the full reference.

Where to go next

  • Tracking and attribution: full reference for ref and other attribution params.
  • Migrating from other platforms: URL-preservation matrix across all sources.
  • vs Tapfiliate: side-by-side comparison if you are still evaluating.

Migrating from Rewardful

Move your Rewardful program onto Rekomi with one API pull. Rekomi imports your affiliates (with ?via= tokens and click counts), your leads, and your commission history directly from Rewardful's API; a support-provided CSV remains as a fallback.

Migrating from FirstPromoter

Move your FirstPromoter program onto Rekomi with one API pull. Rekomi imports your promoters (with referral tokens and click counts), your leads, and your commission history directly from FirstPromoter's API; a CSV upload remains as a fallback.

On this page

What the importer brings acrossStatus mappingHow slug preservation worksStep-by-step cutover1. Confirm the ref attribution param (usually nothing to do)2. Export from Tapfiliate3. Upload the CSV4. Reclassify archived affiliates (if applicable)5. Opt into auto-notify (Growth+ only)6. Swap the tracking snippetWhat is NOT importedCommon gotchasVerifying the import landed cleanImporting history and earningsWhere to go next