Migration Guide

Import your existing subscribers from LaunchPass, Upgrade.chat, PayRole, or any generic CSV file.

Before You Start

Important Note
Imported subscribers will not be charged automatically — they are created with the status from the CSV; Stripe subscriptions must be set up separately for future billing.
  • Export your subscriber data from your current platform as a CSV file
  • Create the corresponding package(s) in our dashboard first — the importer maps subscribers to existing packages

Supported Platforms

LaunchPass

Export your member list from LaunchPass. The expected CSV columns are:

ColumnDescription
Discord IDSubscriber's Discord user ID (required)
EmailSubscriber's email address
TierLaunchPass tier/plan name
Start DateSubscription start date
Statusactive, cancelled, etc.

Tier names are auto-matched to your packages by name. You can also provide explicit tier-to-package mapping or select a default fallback package.

Upgrade.chat

Expected CSV columns:

ColumnDescription
Discord User IDRequired
ProductProduct/tier name
Purchase DateWhen the subscription started
ExpiryExpiry date (used to determine if still active)
EmailSubscriber's email

PayRole

Expected CSV columns:

ColumnDescription
User IDDiscord user ID (required)
SubscriptionSubscription/plan name
StartStart date
EndEnd date
AmountPayment amount

Generic CSV

For any other platform, use the generic CSV importer. The minimum required column is:

  • discordUserId — the Discord user ID (17-20 digit snowflake)

Optional columns:

  • packageId — Convex package ID
  • email — subscriber email
  • startDate — subscription start date
  • status — active, cancelled, expired, paused

Import Process

Navigate to Migrate

Go to Migrate in the dashboard sidebar.

Select Platform

Select your source platform and upload your CSV file.

Preview and Map

Preview the parsed data and check for validation warnings. Select a default package as a fallback for rows that can't be auto-mapped.

Import

Click Import — you'll see a summary of successes and errors.

After Import

  • Role sync — run /sync in your Discord server to assign roles to imported members
  • Set up billing — imported subscribers don't have Stripe subscriptions; set up new checkout flows for future billing
  • Verify — check the Customers page to ensure all data imported correctly

Status Mapping

Input StatusMapped To
active, trialingactive
cancelled, canceled, expired, inactiveinactive
ending, cancellingending
pausedpaused

Troubleshooting

Missing Discord User IDs

The Discord User ID is a numeric snowflake (e.g., 123456789012345678). If you only have usernames, you'll need to get the user IDs from Discord (enable Developer Mode → right-click user → Copy User ID).

Package mapping failures

If tier/product names don't match your packages, select a default package. All unmapped rows will use it as a fallback.