How to
Import creators and codes
Migrate existing creators and referral codes with the CSV import tool or the API.
Bring your existing creators into Superfiliate with the email, program, and referral code they already use. For a one-time migration, use the CSV import tool in the app. Use the API when you need a scripted import or ongoing enrollment from another system. Both options create the creator and code mapping used for attribution. For a Custom OMS (non-Shopify) store, complete the storefront tracking and paid-order integration in Attribution as well.
Prepare your creator data
Choose the destination program and check a small sample before importing the full list. Use each creator’s email, rather than the email of a shopper they referred. For example:
| Field | Example | What to check |
|---|---|---|
| john@example.com | Required. Use the email the creator will use to access their portal. | |
| Name | John | Optional profile information. |
| Code | JOHN | Include the existing public code to preserve it. Resolve duplicate codes assigned to different creators before importing. |
| Program | Ambassadors | Choose the program in the CSV importer, or pass its campaign_id through the API. |
Keep existing discounts active in your commerce platform. For non-Shopify stores, importing a code establishes its Superfiliate mapping; your own commerce platform still applies and manages the discount at checkout. Agree on a cutover date and how previously shared links will continue to work. Plan historical orders, commissions, and balances separately from this creator/code import.
Option 1: use the CSV migration tool
Use this option to upload an existing creator list without building an API integration. The importer lets you choose a program, map your columns, and review the import results.
- 1
Open Import creators
In Creators, open More actions → Import creators. Select the target program and give the imported list a name.
- 2
Download and fill in the template
Select Download template in the importer. Keep its helper header. Fill in email and the existing code for each creator, plus any profile information you want to bring over. Email is the only mandatory field; a supplied code is needed to preserve that code.
- 3
Choose how existing codes are handled
To associate an existing merchant-managed code with its creator, set
code_activationtolink. Review this choice for every row. The CSV importer defaults a blank activation value tooverride. - 4
Upload, map, and review
Upload your CSV and match its columns to the creator properties, including Email, Code, and Code activation. Select Ignore this field for columns you do not want to import. Review the selected program, mapped values, and code replacement notice, then select Import.
- 5
Check the results
Follow the import’s details page, or open Creators → Imported lists. Check the processed counts and Import errors. Correct failed rows before uploading them again, then verify a sample of creator profiles and codes.
For the full walkthrough, see How to Import Existing Contacts To Your Superfiliate Account. Its Shopify code-activation options describe how Shopify discounts are created or replaced; they do not create discounts in an external commerce platform.
Option 2: import through the API
Create server-side credentials with customers.write and campaigns.read. Write access also permits customer reads. Keep the client ID and secret on your backend; see API Keys.
- 1
Find the target program
List programs and save the desired program’s ID. These are affiliate programs, separate from gifting campaign IDs.
List programsbash curl "https://api.superfiliate.com/api/v1/campaigns" \ -H "Authorization: Bearer $SF_CLIENT_ID:$SF_CLIENT_SECRET" - 2
Find or create the creator
Submit the creator’s email and optional profile fields. If that email already exists, the endpoint returns the existing customer and updates supplied non-blank profile fields. Omit fields you do not intend to update, or search by email first and reuse the existing ID. Save the returned Superfiliate customer
id; it is separate from your OMS customer ID.Create or find Johnbash curl -X POST "https://api.superfiliate.com/api/v1/customers" \ -H "Authorization: Bearer $SF_CLIENT_ID:$SF_CLIENT_SECRET" \ -H "Content-Type: application/json" \ -d '{"email":"john@example.com","first_name":"John"}' - 3
Enroll with the existing code
If the returned customer ID is
789012and the target program ID is345678, associate JOHN with that creator:Preserve the existing merchant-managed codebash curl -X POST "https://api.superfiliate.com/api/v1/customers/789012/enroll" \ -H "Authorization: Bearer $SF_CLIENT_ID:$SF_CLIENT_SECRET" \ -H "Content-Type: application/json" \ -d '{ "campaign_id": 345678, "code": "JOHN", "code_activation": "link" }'For an existing code that your store manages, use
code_activation: link. To generate new codes instead, follow the options in Enroll a customer.
Repeat the customer and enrollment requests for each record. Save the source record ID, returned Superfiliate customer ID, program, and code so you can resume failed rows without reimporting the whole list. Observe the rate limits and retry transient failures with backoff. Fix code conflicts or validation errors before retrying affected records. Both API requests write real records; validate a small batch in your agreed test store first.
Verify the migration
- Compare imported/successful counts with your source list and resolve every failed record.
- Check each sampled creator’s email, program, and code. Through the API, verify
campaign_id,code, andmicrosite_urlin the customer response. - Open the returned referral URL and confirm its destination. Use this URL when sharing links rather than constructing it yourself.
- Test a purchase through the creator link without a code, then a separate purchase with the existing code. For a Custom OMS store, use the cookie, browser event, and paid-order checks in Attribution and confirm the intended creator receives attribution.
curl "https://api.superfiliate.com/api/v1/customers?email=john@example.com" \
-H "Authorization: Bearer $SF_CLIENT_ID:$SF_CLIENT_SECRET"