> For the complete documentation index, see [llms.txt](https://docs.perkville.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.perkville.com/features/customers/memberships.md).

# Memberships

## Membership Data

If you are a membership-based business, a customer's membership information can be synced to Perkville. Membership data is stored in Perkville as an [external member record](https://www.perkville.com/developers/docs/v2/#v2_resource_14_anchor). A single Perkville profile can have multiple external membership records.

A customer's external membership records determine a customer's membership status, membership type, membership join date, and membership cancel date (all stored on the [customer's program connection](https://www.perkville.com/developers/docs/v2/#v2_resource_7_anchor)).

{% hint style="info" %}
**Membership status is different from Perkville program status.** Membership status comes from your connected membership or POS system. Program status describes the customer's connection to your loyalty program in Perkville. A customer can be active in one and inactive or pending in the other. See [Program status](/features/customers/program-status.md) for the distinction.

The customer's overall **Perkville status** is separate again. For example, a customer who closes their Perkville account can show **Inactive (Closed by user)**. See [Reversing a user's Perkville account closure](/features/customers/reversing-a-users-perkville-account-closure.md).
{% endhint %}

{% hint style="warning" %}
It's important to note that the definition of a membership varies depending on the membership system. Oftentimes there can be a discrepancy between what you, as the business, consider a membership, and what the membership system considers a membership. For example, oftentimes class packages and series are not considered memberships.
{% endhint %}

See My customer signed up for a new membership, will their points transfer? for guidance on membership changes and point continuity.

## Membership Features

Perkville features a number of features and integration automations powered off of membership data. Most membership features can be set in your [Membership settings](/features/settings/advanced/membership-settings.md).

### Restrict program participation to active members

You can restrict rewards program participation to only active members. This means that users who are not active members at your business will not be able to join, earn, redeem, or refer friends in your program. You can set this up via [Membership settings](/features/settings/advanced/membership-settings.md).

{% hint style="danger" %}
Please confirm with Perkville Support that your integration is set up to sync membership data before turning this on. You will also want to confirm that your definition of an active member aligns with the integration.
{% endhint %}

### Expire points from cancelled members

You can set up Perkville to automatically expire the remaining point balance after a customer's membership is cancelled. In [Membership settings](/features/settings/advanced/membership-settings.md), enable cancellation-based point expiration and choose the grace period between the membership cancellation and point expiration.

This is the supported program-level approach when you want cancelled members' balances cleared automatically. It is separate from manually redeeming or adjusting points on an individual customer profile.

The cancellation-based expiration setting depends on **Only active members can participate in the rewards program** being enabled. Perkville recommends using a grace period of more than one day in case a membership temporarily lapses or the customer rejoins.

If you need to address customers who were already cancelled before changing the setting, contact Perkville Support to confirm the appropriate approach for your program and integration.

### Reporting

In [Membership settings](/features/settings/advanced/membership-settings.md) you can set up Perkville to only include active members in emailed reports.

### Earning activities

There are a number of earning automations that can be powered with membership data stored in Perkville. For more information reach out to Perkville Support.

#### Membership joins

Award points when someone joins as a member, signs up, or renews for a membership.

#### Membership anniversaries and milestones

The Membership Anniversary earning rule can automatically award points and/or instant rewards on the annual anniversary of a member's synced join date. The dedicated page also includes troubleshooting steps when an expected anniversary award is missing.

Other membership milestones, such as remaining a member for 90 days, can also be used to award points when supported by your integration and program configuration.

#### Membership upgrades

When a customer upgrades their membership type, award them points.

#### Referrals

Award points to a referrer when a referral signs up for a membership.

## Troubleshooting a membership linked to the wrong account or email

If a customer is active in your membership system but is not earning points, appears inactive, or has a membership associated with the wrong Perkville profile or email, first check how the membership record is linked.

1. Compare the customer's email and external member ID in Perkville with the corresponding record in your membership or POS system. See [Customer identifiers](/features/customers/customer-identifiers.md).
2. If the correct customer has two separate Perkville accounts, use [Transfer account data](/features/customers/transfer-account-data.md) to move eligible membership data and points to the preferred account.
3. If there is only one Perkville account and the customer simply needs to use a different email address, change the email on that account rather than creating or transferring to another account.

When troubleshooting, focus first on whether the external membership record is attached to the correct Perkville profile. A primary-email change alone will not resolve a membership record that is associated with a different account.

## Changing the default (canonical) membership

When a profile has multiple membership records, Perkville has built in logic to determine what the default membership attached to the member should be. If you ever need to override this default, you can change the default membership in the Connected Members section on the customer's profile page.

The member/membership currently being used will have the **Default** tag next to it.

To change the default, click **Change Default Member**, and you will be prompted to select from the available options and hit **Save**.

{% hint style="warning" %}
Please note that overriding the default member means that this member will not reset if any new membership changes come in. This choice will stay in place until it's reverted to Perkville's default system, or the membership is transferred or deleted.
{% endhint %}

An overridden default member will have the **Manual Override** tag next to it.

If you ever need to revert back to the system default, open **Change Default Member** and click **Revert To System Default**.

You can also view a history of the changes to the default.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.perkville.com/features/customers/memberships.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
