> ## Content Index
> Fetch the complete content index at: https://ghost.org/help/llms.txt
> Use this file to discover other available public pages before exploring further.

# Import members
- URL: https://ghost.org/help/import-members/
- Published: 2023-04-19T13:00:38.000Z
- Updated: 2026-08-12T11:57:37.000Z
- Author: Ghost
- Tags: Memberships, Manual

Ghost allows you to import your existing audience in an easy way so that they can access content on your new membership website. You can export any external list of supporters, email subscribers or patrons to make sure your audience can access your content on your Ghost site.

### Migration guides

We have guides for migrating your content and members from several well known membership platforms:

- [Substack](https://ghost.org/docs/migration/substack/)
- [Mailchimp](https://ghost.org/docs/migration/mailchimp/)
- [Medium](https://ghost.org/docs/migration/medium/)
- [Patreon](https://ghost.org/docs/migration/patreon/)
- [Newspack](https://ghost.org/docs/migration/newspack/)
- [Beehiiv](https://ghost.org/docs/migration/beehiiv/)
- [Kit](https://ghost.org/docs/migration/kit/)
- [Buttondown](https://ghost.org/docs/migration/buttondown/)
- [Memberful](https://ghost.org/docs/migration/memberful/)

### Gather your subscribers list

If you're using a platform not listed above, you'll want to start by exporting your current subscribers or members by following instructions from your current platform. 

### Prepare your CSV file

We've created a [**downloadable template**](https://static.ghost.org/v3.0.0/files/member-import-template.csv?ref=ghost.org) to help you get started. Ensure you clean your data before importing it into Ghost.

Imports should be in a CSV format and support the following fields:

- `email` \- email addresses \[required\]
- `name` \- full names
- `note` \- member notes
- `subscribed_to_emails` \- \[true/false\] identify which members will receive email newsletters
- `stripe_customer_id` \- unique Stripe customer ID to import existing paid subscribers.
- `complimentary_plan` \- \[true/false\] import members who have a free subscription
- `labels` \- Labels need to be in quotes and comma-separated, e.g. `"label 1, label 2"`
- `tiers` \- A tier name as it appears in Ghost, such as `"Premium Membership"`
- `created_at` \- Date format ISO 8601: `2019-10-30T14:52:08.000Z`

The `stripe_customer_id` field can either be a Stripe customer ID (like `cus_GdsYH4fZbHx9hF`) or `auto`. If set to `auto`, Ghost will search the connected Stripe account for a customer with the given email address.

The `email` field is a required field - all other fields are optional.

| email                                                 | name       | note                   | subscribed\_to\_emails | stripe\_customer\_id | complimentary\_plan | labels           | tiers              | created\_at              |
| ----------------------------------------------------- | ---------- | ---------------------- | ---------------------- | -------------------- | ------------------- | ---------------- | ------------------ | ------------------------ |
| [testemail@example.com](mailto:testemail@example.com) | Test Email | Member import template | true                   | cus\_1234abcd1a2b3c  | false               | "vip, promotion" | Premium Membership | 2019-10-30T14:52:08.000Z |

If the `tiers` field is supplied, the subscription in Stripe will be updated so it uses the product that Ghost created when you created tiers. The amount charged will not be changed, and discounts are honoured. This is transparent to the subscriber, and no emails are sent.

For example, if you imported someone who previously paid $5 per month with a 20% forever discount, and imported them onto a tier called "Premium" which is normally charged at $8 per month, their subscription will stay at $5 with a 20% discount but on that "Premium" tier.

You should create tiers *before* importing paid subscribers; otherwise, Ghost will not import the member because the tier & product in Stripe will not be found. 

## Multiple newsletters

Importing members when you have multiple newsletters works as follows:

**Importing new members**

- `subscribed_to_emails=true` → members will be opted in to all newsletters that have "Subscribe new members on signup" turned on.
- `subscribed_to_emails=false` → members are unsubscribed from all newsletters upon import.

**Importing existing members**

- `subscribed_to_emails=true` → email subscription preferences will be left alone, **unless** they were previously unsubscribed from all.
- `subscribed_to_emails=false` → members are unsubscribed from all newsletters.

##   
Import your CSV file

1\. Navigate to the **Members** area in Ghost admin

2\. Click the **Settings** icon at the top-right of the screen and select **Import members**

3\. Upload your CSV file and make any further required changes before clicking **Import members**

![](https://storage.ghost.io/c/69/0f/690faecc-18d1-42c5-a99a-83ce5fada384/content/images/2022/05/CleanShot-2022-05-23-at-11.28.02.gif)

## Integrations

It's also possible to automate keeping your members list up to date using our [Zapier integration](https://ghost.org/integrations/zapier/?ref=ghost.org) to automatically send new subscribers that have been added to other apps directly into Ghost, or vice versa.