PaywallProject Docs
  1. Home
  2. PaywallProject plugin
  3. Move subscribers to PaywallProject with an AI app (MCP)
  1. Home
  2. AI
  3. Move subscribers to PaywallProject with an AI app (MCP)

Move subscribers to PaywallProject with an AI app (MCP)

An AI app connected to your site, such as Claude or ChatGPT, can move your subscribers for you. It reads your old system or an export, shows you a preview, and imports only after you say yes. Nobody is charged.

It uses the tools paywallproject-preview-import-subscribers and paywallproject-import-subscribers, which run the same checks as Tools → Import subscribers.

Before you start

  • Update to PaywallProject 4.2.0 or later. Connect the app to your site as an administrator (Connect an AI app to PaywallProject). The Support role can’t import.
  • Connect the Stripe account your readers pay into, and create one level for each old plan (steps 1 and 2).
  • Check the Stripe mode under PaywallProject → Settings → Stripe. Live subscriptions need live mode.
  • Coming from Ghost or Memberful? Paste its API key in the plugin first, as below.
  • Coming from Substack or another file-only platform? Export first. Your platform’s guide says which files.
Old systemsource valueWhat it reads
Leaky Paywall, MemberPress, Paid Memberships Pro, Restrict Content Pro, WooCommerce Subscriptionsleakypaywall, memberpress, pmpro, rcp, woocommerceThe plugin’s data on your site, even while it’s deactivated. For Leaky Paywall, group accounts, payments and paywall settings come over only in Tools → Import subscribers
StripestripeSubscriptions in your connected account that aren’t canceled
Ghost, Memberfulghost, memberfulTheir API, with the key you pasted in the last hour
An export filecsv (the default)The rows the app sends from your file

Ask something like this:

Import my MemberPress members into PaywallProject. First show me how each MemberPress plan and status maps to our levels and statuses, with how many readers each has. Then preview the import and show me what will be created, updated, and skipped, with every warning. Don't import anything until I approve.

The app then:

  1. Previews up to 100 readers with that source, with a suggested level and status for each. Nothing is saved.
  2. Shows you the plans and statuses with reader counts, and who was left out and why.
  3. Changes the mapping when you ask, with plan_map and status_map, such as {"Digital Monthly (membership #12)": "digital-monthly", "*": "skip"}. "*" covers everything not listed; "skip" leaves it out.
  4. Imports a page after you approve it, then reads the next page with the preview’s cursor, until it’s done. Use limit for smaller pages.

Readers billed outside Stripe come back with the warning resubscribe_needed (details).

Ghost and Memberful need a key first

The app never sees an API key. Paste it in the plugin, as the same WordPress user the app connects as:

  1. Go to PaywallProject → Tools. On the Import subscribers card, select Start an import.
  2. Choose Import directly from Ghost (with an API key) or Import directly from Memberful (with an API key).
  3. Enter the address and key, and select Connect and read.
  4. Within the hour, ask the app to import from Ghost or Memberful.

The key stays encrypted on your site for one hour, for you only. Never paste a key into the chat. Move from Ghost and Move from Memberful show where to find each key.

Method 2: Give it an export file

Attach the file to your conversation and ask something like this:

Here's the subscriber export from our old paywall. Please move these subscribers into PaywallProject on our site. Match each old plan to one of our levels and show me the mapping first. Then preview the import and show me what will be created, updated, and skipped, with every warning. Don't import anything until I approve.

The app then suggests a level for each old plan and a status for each old status, and previews up to 500 rows at a time (at most 100 with Stripe IDs). Larger files go in batches.

The preview changes nothing on your site or in Stripe. Step 4: Read the preview explains every skip and warning.

Approve the import

When the preview looks right, tell the app to go ahead. It imports exactly the rows you reviewed.

  • Nothing is charged or created in Stripe, and no email is sent.
  • Readers who already had an account keep their login. New accounts get a random password.
  • The preview token lasts 30 minutes and works only for the person who asked for it.
  • If the connection drops, ask the app to run the import again with the same token. Nothing is imported twice.
  • The result gives each new account’s ID and any Stripe metadata to set.

Good follow-up questions

  • “Which rows were skipped, and why? Put them in a table.”
  • “Which readers have to subscribe again, and when does each one’s access end?”
  • “List every Stripe subscription whose metadata I need to change, with the values to set.”
  • “Preview the same source again and confirm nothing is left to change.”

For everything else an AI app can do, see What your AI app can do in PaywallProject (MCP tools).

Updated on November 7, 2026
Was this article helpful?

Related Articles

Get more help
Can't find the answer you're looking for? Get in touch.
Contact support