# Help Center

### Welcome To Inveterate

{% embed url="<https://vimeo.com/707033000>" %}

Inveterate is a platform to help Shopify merchants build custom membership programs that provide their most valuable customers an elevated customer experience.

This help center was created to guide you through every step of the setup process - from creating your Inveterate account all the way through launching your first membership program.

Follow the guide in order to get the best experience possible.  Feel free to reach out to our team at any time - we're always happy to help.

### Memberships 101

Are you completely new to membership programs?  We recommend reading our Memberships 101 guide before you starting building.

{% content-ref url="/pages/eupohrlAh7e74DzQLHWY" %}
[Memberships 101](/help-center/strategy-and-best-practices/memberships-101)
{% endcontent-ref %}

### First Time Installation

Get ready to start building your program by installing the app and setting up your Inveterate profile:

{% content-ref url="/pages/tT6ISnzuQR78GS4fWoki" %}
[Getting Started](/help-center/guides/getting-started)
{% endcontent-ref %}

### Build My Program

Get ready to start building your membership program!  Follow the guide below to learn how to configure all of your benefits, create your landing page, and get ready to launch.

{% content-ref url="/pages/WLCj85gT9Ym58sqwxjz4" %}
[Program Setup](/help-center/guides/program-setup)
{% endcontent-ref %}

### Manage My Members

Your members are the foundation of your program.  Use the guide below to learn how to manage your members and make sure your VIPs are always taken care of.

{% content-ref url="/pages/unJBdUS0KOOqHFS5m2lx" %}
[Members](/help-center/guides/members)
{% endcontent-ref %}

### Optimize My Membership Program

Inveterate provides you with an analytics suite so you can get a granular view of every one of your member segments.  Follow the guide below to learn how to use the performance dashboard.

{% content-ref url="/pages/M18ikR40XtYU61IsVEPw" %}
[Performance](/help-center/guides/performance)
{% endcontent-ref %}

### Settings

This guide teaches you about the settings menu and options.  This is where you set up your personal and business profiles.

{% content-ref url="/pages/pH0C7A3PGqaky1GND1HW" %}
[Settings](/help-center/guides/settings)
{% endcontent-ref %}

### Tag Information

Get a better understand of the updates we make in your store:

{% content-ref url="/pages/wB4llidYR6IXxijXML0R" %}
[Customer Tags](/help-center/tag-information/customer-tags)
{% endcontent-ref %}

{% content-ref url="/pages/Zr1L3A9PihIgNcimlosV" %}
[Order Tags](/help-center/tag-information/order-tags)
{% endcontent-ref %}

### Advanced Guides

{% content-ref url="/pages/NxADWlqFiEEaueVgjQ9j" %}
[Shopify Scripts](/help-center/advanced-guides/shopify-scripts)
{% endcontent-ref %}


# Welcome To Inveterate

Inveterate is a platform to help Shopify merchants build custom membership programs that provide their most valuable customers an elevated customer experience.

**Got 1 minute?** Check out this video of our product leader:

{% embed url="<https://vimeo.com/707033000>" %}

###


# Getting Started

This section will run you through the steps to install Inveterate in Shopify and get the back end configured with your live theme.

### Follow the guides below in order

{% content-ref url="/pages/2gKMM6KAaOpvDxhIvHPW" %}
[Install The Inveterate App](/help-center/guides/getting-started/install-the-inveterate-app)
{% endcontent-ref %}

{% content-ref url="/pages/ndCMf5hAziIlngxVLmhf" %}
[Set Up Company Profile](/help-center/guides/getting-started/set-up-company-profile)
{% endcontent-ref %}

{% content-ref url="/pages/uW9e1alXYU50qpcIOvfF" %}
[Enable Inveterate On Your Store](/help-center/guides/getting-started/enable-inveterate-on-your-store)
{% endcontent-ref %}

{% content-ref url="/pages/9ojqS50xUT6wcS4b6zyM" %}
[Adjust Customer Account Settings In Shopify](/help-center/guides/getting-started/adjust-customer-account-settings-in-shopify)
{% endcontent-ref %}

{% content-ref url="/pages/9govTa263mtFON8iAWE1" %}
[Add Membership Link Snippet to Customer Account Template](/help-center/guides/getting-started/add-membership-link-snippet-to-customer-account-template)
{% endcontent-ref %}


# Install The Inveterate App

You must install the Inveterate app into your Shopify account before you can proceed.

Installing the app is done in two steps.  First you install the app onto your Shopify store and then you create your Inveterate account.

Follow the steps below in order.

{% content-ref url="/pages/kvoUrrCWc1neCWrys37E" %}
[App Installation](/help-center/guides/getting-started/install-the-inveterate-app/app-installation)
{% endcontent-ref %}

{% content-ref url="/pages/spoP2YvJ4e0fDcL6x8nJ" %}
[Creating Your Inveterate Account](/help-center/guides/getting-started/install-the-inveterate-app/creating-your-inveterate-account)
{% endcontent-ref %}


# App Installation

The Inveterate app must be installed before you can create your account or set up your membership program.

To install, visit [Inveterate](https://apps.shopify.com/inveterate) in the Shopify App Store and click "Add app".  Follow the prompts to install the app. &#x20;

You will be prompted to log in to your Shopify store, approve the installation, and then approve the billing agreement.

This step is complete once you see the Inveterate Sign Up page at the end.

{% hint style="warning" %}
You will not be charged when you install Inveterate, the app is free to install.
{% endhint %}

#### Download the PDF below for step-by-step instructions

{% file src="/files/wkGtb7A9vNcYGPYiqmsR" %}

{% embed url="<https://youtu.be/4IXxcObaQaY>" %}


# Creating Your Inveterate Account

#### After you install the Inveterate app you will be prompted to create your account. &#x20;

{% hint style="info" %}
Pro Tip: Use the same email address as your Shopify Store Owner so you don't miss any important emails about your membership program.  You **cannot** change your account email after you sign up.
{% endhint %}

After you create your account, you will be brought to the login page.  Log in to Inveterate using the credentials you just created.

Once you have logged into your new account you are ready to move onto setting up your company profile.

{% embed url="<https://youtu.be/G2Cy0WWQEV0>" %}


# Set Up Company Profile

#### You will need to upload your company logo and enter your brand name into your Inveterate profile.

{% hint style="info" %}
Pro Tip: Use the same logo you use on your website, this will build a sense of continuity for your brand as your customers sign up for your membership program.&#x20;
{% endhint %}

Navigate to Settings > General and you will see the fields to upload your logo and enter your brand name.

{% hint style="warning" %}
You are not able to edit the store URL or Currency, these are mapped to your Shopify account.
{% endhint %}

We have linked a Photoshop template below that you can use to create your logo file.

{% file src="/files/tuKQtt9yy0xAIMx1qUCc" %}
Inveterate Business Profile Logo Template
{% endfile %}

#### Download the PDF below for step-by-step instructions

{% file src="/files/JDCQZdlYHzz3qUyV8Csa" %}

{% embed url="<https://youtu.be/9dAWS5oRgb0>" %}


# Enable Inveterate On Your Store

#### For Inveterate theme features to work you'll need to enable the Inveterate App Embed on your live theme.

To enable:

1. Navigate to the Themes menu, and click Customize
2. Click Theme Settings, and then select App Embeds
3. Find the Inveterate App Embed and turn the toggle to On
4. Click Save

![How to find the App Embed toggle](/files/OONvXsALB5rC0m4NGVai)

![Inveterate App Embed toggle](/files/y51Zk8BER7r5QrKOFqyT)

#### Download the PDF below for step-by-step instruction

{% file src="/files/Y5NOAtHD49icG70ZXqvg" %}

{% embed url="<https://youtu.be/U024oLAXHJc>" %}


# Adjust Customer Account Settings In Shopify

Your Shopify store needs to be set to use the Classic user account experience.

{% hint style="warning" %}
To use customer accounts you must have the [Online Store sales channel](https://help.shopify.com/en/manual/online-store) enabled.  Inveterate does not work with POS-Only Shopify Accounts.
{% endhint %}

{% hint style="info" %}
Only one email address can be associated with a customer account in Inveterate. You can change the email address that is associated with a customer account by [editing the customer profile](https://help.shopify.com/en/manual/customers/manage-customers#edit-profile) in Shopify.
{% endhint %}

#### Shopify Customer Accounts

Shopify has two customer account experiences - Classic and New.  Although the view in your dashboard may look different from the screenshot below,  both account experiences will work with Inveterate. Take a look at the screenshot below, this is how you find if you have a Legacy or New Shopify account.

* If you **do** see the menu below it means you have a **New Shopify Account.**  Instructions are directly below.
* If you **do not** see the menu below it means you have a **Legacy Shopify Account**.  Instructions are at the bottom of this page.

![Shopify Login Experience Menu](/files/TnL4A0Ci0ugyokdBjcpo)

### New Shopify Accounts

#### Check your customer account preferences in Shopify <a href="#set-your-customer-account-preferences" id="set-your-customer-account-preferences"></a>

1. From your Shopify admin, go to **Settings** > [**Checkout**](https://www.shopify.com/admin/settings/checkout).
2. In the **Customer Account Settings** section, make sure that the Show Login Link box is checked.  If it is already selected, you can leave the settings as-is.

![Customer Account Settings](/files/qkGutnvhHSdUuLpkM178)

{% hint style="warning" %}
If you do not see the Login Experience menu shown above, it means your Shopify store is still using the legacy setup.  Keep scrolling below the video for the Legacy Shopify Account instructions.
{% endhint %}

#### Download the PDF below for step-by-step instruction

{% file src="/files/EjwbAQSkeR305FbpVH2r" %}

{% embed url="<https://youtu.be/vfkuh3MU4Ek>" %}

### Legacy Shopify Accounts

#### Follow The Steps Below To Turn On Customer Accounts

1. Navigate to Settings>Checkout and find the Customer Accounts box.
2. Make sure accounts are set to either Optional or Required.  Inveterate will not work if you don't use customer accounts.

![](/files/UmaIEHvhxIwkIYY4CgOY)


# Add Membership Link Snippet to Customer Account Template

You must paste a snippet into your theme code so your members can reach the member portal

{% hint style="warning" %}
If you have upgraded your Shopify store to Extensibility, then you will not be able to follow these instructions since you are unable to edit the checkout code.

In this scenario, you can add a link in your navigation that leads customers to the .com/community/membership page where they can either sign up for your program or log into their existing account
{% endhint %}

The membership link snippet must be installed so your customers have a way to click to their membership landing page

Add the following snippet to the *templates/customers/account.liquid* file found in your theme code:

{% hint style="info" %}
We recommend adding the snippet near the logout link, but it will be different with every theme.
{% endhint %}

```html
<a class="inveterate-manage-membership" data-inveterate-manage-membership href="/community/membership?customerId={{ customer.id }}">
 Manage Membership
</a>
```

## Where to Add the Snippet

Select the theme and click `Actions -> Edit code` to open the Shopify code editor. Find the file *templates/customers/account.liquid*

1. Navigate to the Themes menu
2. Select the theme you want to edit and click `Actions -> Edit code` to open the Shopify code editor
3. Find the file *templates/customers/account.liquid*
4. Search for *account\_logout\_url* and paste the snippet above or below.
5. Click Save

{% hint style="info" %}
For the best user experience, we recommend adding the snippet **above the logout link**, then adding either spacing (there are several ways to accomplish spacing but one way would be a self-closing `<div/>` in between with horizontal margin), or a line-break `<br>` to separate them by line. You can see this example in lines 20-33 below, and then below that how it looks on the frontend.
{% endhint %}

<figure><img src="/files/EWZc7h5ORO0NxUxcTCf5" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/2TXp6227cXhJ91xrtNbZ" alt=""><figcaption></figcaption></figure>

#### Download the PDF below for step-by-step instructions

{% file src="/files/aDK6iZ3fm9TbcUwPBCHT" %}

{% embed url="<https://youtu.be/YmJ_oa2bdpg>" %}

## How to Add the Snippet When Your Theme is Using JSON Templates

1. ### Open the theme code editor

   <figure><img src="/files/tWqMZH1kip4UeEOm0p40" alt=""><figcaption></figcaption></figure>
2. ### Open the templates/customers/account.json file to find what liquid files are used on the account page

   <figure><img src="/files/ImHZnpafM2QgZK7uZNjp" alt=""><figcaption></figcaption></figure>

   Take note of the `type` value for any sections listed here, which is "main-account" in this case. This corresponds to the liquid file or files that make up the customer account page. So, in this case, we are looking for a single liquid file: `sections/main-account.liquid`
3. ### Add the Inveterate snippet to the sections/\<your-theme-section-name>.liquid file

   <figure><img src="/files/KNFADjRfnLcubcqrn7JJ" alt=""><figcaption></figcaption></figure>

   And be sure to click the save button before you exit.


# Add Membership Verbiage & CTA to your Thank You page

Shopify includes a default content block on the "Thank You" page, anytime someone purchases a subscription product - like your membership - with verbiage & a button with a CTA that links to the Customer Account login to view & manage their subscriptions.

The text, including the CTA button, is fully editable. You can tailor the wording to focus on membership only *(if you don’t offer other subscriptions)*, or on both Membership & Subscriptions *(if you offer both)*. The instructions below explain how to do this, with screenshots of the editing process and final result:

1. **Log into your Shopify Admin**\
   Go to the Shopify login page and enter your login credentials.
2. **Navigate to Online Store > Themes**\
   In the left sidebar, click on Online Store to expand the theme options.
3. **Click on the "..." Next to Your Active Theme**\
   On the Themes page, find your active theme, then click the ellipsis ("...") next to it.
4. **Select "Edit Default Theme Content" from the Dropdown**\
   From the dropdown menu, select "Edit Default Theme Content" to go directly to the content editor.
5. **Select 'Checkout & System'**\
   In the editor, look for and click on "Checkout & System" in the top level options to access the checkout-related settings. This is where the Order Status/Thank You page content lives.
6. **Search for "Subscription" in the Search Bar**\
   Use the filter/search bar at the top of the editor to search for the term "Subscription" to find relevant content.
7. **Use Command+F to Find Content** \
   On your keyboard, press Command+F (Mac) or Ctrl+F (Windows) to open the Find bar in your web browser. Type in *"Checkout thank you and subscriptions management"* to quickly locate that specific content. You should now see this, which is the default content/verbiage:&#x20;

<figure><img src="/files/vX5pheu2uHvkLwjEYEl8" alt=""><figcaption><p>Default verbiage</p></figcaption></figure>

8. **Customize Default Content**\
   Customize the default content to be either specific to Membership *(if the membership is the only subscription you sell)* or to reflect Membership & subscriptions *(if you sell both)*. An example of these changes can be found below, your custom verbiage can vary to ensure it matches your brand voice:

<figure><img src="/files/Yhv1PoKivksGNco4KW6G" alt=""><figcaption><p>Updated membership-specific verbiage</p></figcaption></figure>

9. **Save Your Changes** \
   Don’t forget to click Save in the top right corner to apply your edits.
10. **Place a Test Order for a Subscription Product/Membership** \
    Place a test order for a membership product to view your changes on the Order Status/Thank You page and ensure everything looks as expected. Based on the edits in the example above, it should appear something like this:

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcKzhHG-jxBG_b--oK_xJLHEYXZfnGEt3bJjgBjgT6JeNvd1m8BxBbstvX7Nyim3hXqImIDlayYCYmPepzWmS_duSIBq8Ck8d1AlUYWwFuXpiYvqmInuI1ZEvNLWQDJy41zVVEG?key=Utqzmql3LQ9151YTC-l06P0V" alt=""><figcaption><p>Updated 'Thank You' page with membership specific verbiage and CTA</p></figcaption></figure>

<br>


# Program Setup

**This part of the guide will walk you through setting up and customizing your membership program in the Inveterate platform.**

{% content-ref url="/pages/gULyuUAW1ZSH0ltVXm5W" %}
[Tier Setup](/help-center/guides/program-setup/tier-setup)
{% endcontent-ref %}

{% content-ref url="/pages/fxHIDdaUK3fKRsMU8AHF" %}
[Editing Tiers](/help-center/guides/program-setup/tier-setup/editing-tiers)
{% endcontent-ref %}

{% content-ref url="/pages/1fWBnrsRea8mvOBI4yQa" %}
[Benefits](/help-center/guides/program-setup/benefits)
{% endcontent-ref %}

{% content-ref url="/pages/pU6BM7W67hliSlNdCwbK" %}
[Landing Page](/help-center/guides/program-setup/landing-page)
{% endcontent-ref %}

{% content-ref url="/pages/gp8YZNhmhYp29UwYIDGC" %}
[Messaging](/help-center/guides/program-setup/messaging)
{% endcontent-ref %}


# Tier Setup

Inveterate allows you to create multiple tiers for your membership program, giving you the ability to give each tier it’s own individual benefits, as well as it’s own price. We recommend creating 2-3 tiers for a successful program.

{% hint style="warning" %}
We highly recommend that you check out [Membership 101](/help-center/strategy-and-best-practices/memberships-101) before creating your Membership Product.
{% endhint %}

### About Tier Types

There are various ways you can choose to bill your members for access to your membership program, these types are:

**Paid - Recurring:** This creates a tier with a recurring billing frequency that your members will need to continue paying in order to stay in the membership program.

**Paid - One Time:** This creates a tier that only requires a one-time purchase to join. These are considered "Lifetime Memberships". Your customer will only pay the fee once.

**Free:** This creates a tier that is free for your members to join. They will not be billed to join the program. Please contact your CSM or reach out via our live chat to ask about your program's eligibility to unlock a free tier.

### Tier Features

Tier features allow you to customize your program past simply setting buy-in prices for memberships.

**Spend Based Tiers:** Spend based tiers allow you to create spend thresholds where users can earn their way into higher tiers based on how much they purchased from your shop. [Learn more here](/help-center/advanced-guides/spend-based-tiers).

**Free Trials:** Inveterate enables you to create a free trial for any paid tiers. [Learn more here](/help-center/guides/program-setup/tier-setup/free-trials-for-paid-tiers).

**To create your first tier:**

1. Click on ‘Membership Program’ in the left hand navigation
2. Edit the details for your membership program
3. Click on ‘Add Tier’
4. Enter the tier name, this is what your members will see
5. Upload a tier image (PNG 1000x1000 preferred), your members will see this in their cart
6. Select whether this should be a free tier or a paid tier. If you don’t have the option to create a free tier, reach out to our sales team to have this option enabled for you.
7. If you select a paid tier, decide whether you want this to be recurring or one time payment.&#x20;
8. If you select a paid tier, decide whether you want to add a free trial. [Click here for more info about free trials.](/help-center/guides/program-setup/tier-setup/free-trials-for-paid-tiers)
9. Select the price for the tier
10. Select the billing frequency for the tier, if you chose a recurring payment. If you choose a time based frequency, the member will be charged on the same date every month. You are also able to select a specific date of the month where all of your members will be rebilled - [click here to learn more about the Universal Rebill Date](/help-center/guides/program-setup/tier-setup/universal-rebill-date).
11. Select whether members can earn their way into this tier via Spend Based Tiers. [Click here to learn more](/help-center/advanced-guides/spend-based-tiers).
12. Click ‘Save Changes’

Your first tier is now created. Next we’ll configure the tier’s benefits.

**To configure tier benefits:**

1. In the Membership Program menu, click on the tier you want to configure
2. Click on the “Benefits” button at the top of the menu
3. Here you will configure the benefits for this specific tier. Click [here to view the help doc](/help-center/guides/program-setup/benefits) explaining how each benefit works.

**Activate your tiers:**

Once you have configured the benefits for all of your tiers, you are ready to activate them and launch your program. To activate your tier, navigate to the Membership Program page and click on the three dots next to the tier name and click ‘Activate’. Your program will not appear on your landing page until it is activated.

**Adding more tiers:**

To add new tiers to your program, click on the "Add Tier" button at the top of the Membership Program page. All new tiers are inactive once created, you will need to activate them before customers can sign up.&#x20;

#### Download the PDF below for step-by-step instructions

{% file src="/files/BTxyrkEsTKEOIFSjXME5" %}

{% embed url="<https://youtu.be/Ia5DWYXT9zQ>" %}


# Editing Tiers

You are able to adjust the benefits and price of each tier while they are active, and deactivate tiers while keeping customer memberships active.

From the Membership Program tab, click on the tier you want to edit, and you will see the Tier Overview page. From this page you have the following options:

**View In Shopify Admin**

This link will open the membership product product for this tier in your Shopify admin.&#x20;

{% hint style="danger" %}
We do not recommend making any changes from the Shopify Admin (particularly with respect to **product tags, pricing variants, ability to buy with/without a selling plan**). All edits should be done in the Inveterate dashboard's tier settings. Any necessary changes to the membership product will be made automatically by Inveterate.
{% endhint %}

**Edit Tier**

This link will allow you to edit the public details of your tier that your customers read. On this page you will be able to edit

* Tier name
* Tier description (members do not see this description, this is internal only)
* Tier price
* Tier billing frequency

**Deactivate Tier**

This button will deactivate the tier, but keep all of the members active. When you deactivate a tier, it will be removed from your Landing Page and hidden from your shop. Customers will no longer be able to sign up for a deactivated tier, but all existing members will remain active and retain access to their credits and benefits until they cancel their membership.

<div data-full-width="true"><figure><img src="/files/yLZRUbLVcOeRYPbWvZfd" alt=""><figcaption></figcaption></figure></div>

**Editing Benefits**

At the top of the Tier Overview page, you will see the link to edit this tier’s benefits. You are able to edit, enable and disable benefits freely while the tier is active.

<div data-full-width="true"><figure><img src="/files/jMahFkUJPBDbpTeOchG7" alt=""><figcaption></figcaption></figure></div>


# Deleting Tiers

**You are able to delete or deactivate tiers depending on whether or not you have current active members.**

If you have active members in any given tier, you will not be able to delete it. If you have active members then you can deactivate a tier. When you deactivate a tier, all the members within that tier will remain active according to their current billing rules. No new members will be able to join a deactivated tier, but the current members are able to swap to different tiers and log into their accounts as usual.

If you do not have any active members within a paid tier, you will be able to delete the tier.


# Hidden Tiers

Hidden Tiers allow you to create membership tiers that are not displayed on the default Inveterate membership landing page. They are commonly used for invite-only offers, special customer segments, or internal programs where access should be controlled.

This article explains what Hidden Tiers are typically used for, how to configure them, and important behavior to be aware of before using them.

***

### What are Hidden Tiers used for?

Hidden Tiers are most commonly used in the following scenarios:

* Invite-only or VIP memberships
* Influencer or ambassador programs
* Legacy pricing for existing members
* Wholesale or B2B memberships
* Customer service or recovery offers
* Internal testing or migration tiers

Hidden Tiers function the same as standard tiers once a customer joins—they follow the same billing logic and member experience. The key difference is **how customers access them**.

{% hint style="warning" %}
**Important:**\
If you plan to use a Hidden Tier as a *paid* membership, you will need to build and host your own landing page for that tier.
{% endhint %}

***

### How Hidden Tiers work

When a tier is hidden:

* It is removed from the default Inveterate membership landing page
* It is not visible as an upgrade or downgrade option in the member portal
* Customers can only join the tier through a custom page you provide

Once a customer joins a Hidden Tier, their experience is the same as a customer on a standard (non-hidden) tier, with the exception of upgrade and downgrade visibility (covered below).

***

### How to create and hide a tier

Hidden Tiers are created the same way as any other tier.

**Step 1: Create and configure the tier**

1. Create the tier as you normally would
2. Configure pricing, benefits, and all other tier settings

**Step 2: Hide the tier from the landing page**

1. In your Inveterate dashboard, go to **Landing Page → Pricing**
2. Select the tier you want to hide
3. Toggle off **Display on landing page**

<figure><img src="/files/I1p6e36cR4azR0hQEtFc" alt=""><figcaption></figcaption></figure>

Once this toggle is disabled, the tier will no longer appear on the default Inveterate membership landing page.

***

### Selling a Hidden Tier

After hiding a tier, customers will not be able to discover or join it on their own. To offer the tier, you must provide a custom landing page.

#### Custom landing page requirement

To sell a Hidden Tier, you will need to:

* Create a custom landing page (Shopify page, custom storefront, or developer-built page)
* Share this page directly with the customers you want to offer the tier to

{% hint style="danger" %}

#### Add to Cart button setup

Your custom page must include an **Add to Cart button** configured specifically for the Hidden Tier’s selling plan.

For implementation details, follow the Add to Cart documentation linked below:\
[#add-to-cart-button-setup](#add-to-cart-button-setup "mention")
{% endhint %}

***

### Member experience on Hidden Tiers

Once a customer joins a Hidden Tier, their experience is nearly identical to a member on a standard tier.

**What members see**

* Hidden Tier members receive the same benefits, billing, and access as defined by the tier
* Hidden Tiers do not appear as options in the member portal

**Upgrades and downgrades**

* Hidden Tier members can upgrade or downgrade into *non-hidden* tiers from the customer portal
* Non-hidden tier members cannot upgrade or downgrade into a Hidden Tier
* Hidden Tiers are not shown as upgrade or downgrade options to other members

This ensures Hidden Tiers remain invite-only and are not discoverable by existing members.

#### Cancellations

* Hidden Tier members can cancel their membership normally from their customer portal


# Free Trials For Paid Tiers

**Inveterate gives you the option to configure a free trial for any paid tiers you create.**

A free trial is a great way to let your customers experience a membership without needing to pay for it. When setting up a paid tier, you can choose how long the free trial will last for.

**About the customer experience**

* If a free trial is enabled for any given tier, customers will be able to see the length of the trial from the membership landing page
* When a customer clicks 'start your trial', Inveterate will add the membership product to their cart, and the member will still need to proceed through checkout
* At the time of signing up for a free trial, the customer will need to enter their credit card information so that Inveterate can assign a selling plan to the customer, and so that they can be billed seamlessly once the trial ends. The customer will be billed $0.00
* When a customer signs up for a free trial, they will receive an email explaining the details of the free trial
* The customer will receive another email once the free trial ends and their credit card is billed
* Benefits during a free trial work the same as they do during a paid membership

<figure><img src="/files/k4l9jIZkIU3DAopDjoim" alt=""><figcaption></figcaption></figure>

### **Free Trials And Credit Benefits**

Sign Up Credits

* Sign up credits are deposited to the member and can be used as soon as they start their free trial, unless you choose to delay credit delivery until the free trial ends.
* For example, if you have a 3 day trial and you want members to receive their signup credits on day 4 after they become a paid member, you would adjust the benefit setting to delay by 4 days.

<figure><img src="/files/QU2eBvQ9IeLuwRnGECaw" alt=""><figcaption></figcaption></figure>

Credits For Orders

* Credits earned by the Credits For Orders benefit will be deposited to the member  and can be used during their trial period

Referral Credits

* Referral credits earned during the free trial will be deposited to the member and can be used during their trial period


# Paid Trials for Paid Tiers

### Overview

Inveterate now supports **Paid Trials** for paid membership tiers. This feature allows merchants to charge customers a trial amount upfront before transitioning them to regular recurring pricing after the trial period ends.

### What is a Paid Trial?

A paid trial enables you to:

* Charge a **reduced trial price** during an initial trial period
* Automatically transition customers to **regular recurring pricing** after the trial ends
* Maintain all existing trial functionality while collecting payment upfront

#### Paid Trial vs. Free Trial

| Feature              | Free Trial                         | Paid Trial                                        |
| -------------------- | ---------------------------------- | ------------------------------------------------- |
| **Trial Price**      | $0                                 | Any amount > $0 (must be less than regular price) |
| **Customer Payment** | No charge during trial             | Charged trial amount immediately                  |
| **Transition**       | Moves to regular price after trial | Moves to regular price after trial                |
| **Trial Duration**   | Configurable (days)                | Configurable (days)                               |

***

### Setting Up a Paid Trial

#### Prerequisites

* You must have a **Paid Recurring Tier** created
* Your tier must have a **trial period** configured (in days)

#### Configuration Steps

1. **Navigate to Program Setup**
   * Go to **Membership Program** to view your membership tiers&#x20;
     * If working on an already created tier select the **three dots** next to the tier you want to edit
2. **Create or Edit a Paid Tier**
   * When creating a new tier or editing an existing one, locate  **"Add introductory period"**

<figure><img src="/files/XHQlRA5S2LvazvYSVHF2" alt="" width="375"><figcaption></figcaption></figure>

1. **Configure Trial Settings**
   * **Trial Period**: Enter the number of days for the trial (e.g., 14, 30, 60)
   * **Trial Price**: Enter the trial amount in your store's currency
     * Select 'Free' for a **free trial**
     * Set to any amount greater than `$0.00` for a **paid trial**
     * The trial price should be less than your regular tier price
2. **Save Your Changes**
   * Click **Save** **changes** to apply your settings

<figure><img src="/files/dtfMyuQrXOAO8wBg8Kqz" alt=""><figcaption></figcaption></figure>

***

#### Example Configuration

**VIP Membership with Paid Trial:**

* **Tier Name**: VIP Membership
* **Regular Price**: $29.99/month
* **Trial Period**: 14 days
* **Trial Price**: $4.99

In this example:

* Customer pays **$4.99 immediately** upon signup
* After **14 days**, they're automatically charged **$29.99/month** (recurring)

***


# Payment Retry Settings

By default, without customization to these settings, Inveterate will attempt to re-bill a customer's payment method for 3 consecutive days *(the first scheduled attempt, and two retries)* if there is a failed payment for any reason *(ex: Insufficient funds, Card expired, etc).* On the third billing attempt, if that payment fails, the customer's membership will be cancelled due to payment failure.&#x20;

<figure><img src="/files/8oQ0ij1gkAQALCmLrLlk" alt=""><figcaption><p>Default settings, which will retry 2 additional times in 2 consecutive after the initial failed billing attempt.</p></figcaption></figure>

Inveterate allows you to customize these default payment retry settings - at the membership tier level - to meet your specific business & customer needs. You are able to set the number of retries, as well the frequency at which the billing attempts are set to occur.

{% hint style="danger" %}
If you are currently using our integration with [**Churn Buster**](https://churnbuster.io/), you should not make changes to the default settings in Inveterate, as the integration is reliant on them.&#x20;
{% endhint %}

{% hint style="info" %}
A longer retry window with more attempts can assist in reducing passive churn due to payment failure, giving your members more time to change their payment method on file, or alleviate any issues that are causing a payment to fail *(ex. insufficient funds).*
{% endhint %}

### Example Retry Schedule Scenarios:

{% hint style="warning" %}
For monthly membership programs, your retry schedule **should not extend past 30 days**, as this extends into the next billing period.&#x20;
{% endhint %}

#### Quick Retries:

Retry 4 times within 5 days of the first failed payment.

<figure><img src="/files/ezbXRGWmQnVzABZnXr0J" alt=""><figcaption></figcaption></figure>

#### Gradual Increase:

Retry 4 times within 11 days of the first failed payment.

<figure><img src="/files/3vaIYfQCWq1RPfhjMjPi" alt=""><figcaption></figcaption></figure>

#### Even Spacing:

Retry 5 times within 15 days of the first failed payment.

<figure><img src="/files/HtZfvrqvuxeymviPPDn7" alt=""><figcaption></figcaption></figure>

#### Conservative Pattern:

Retry 4 times within 17 days of the first failed payment.

<figure><img src="/files/oVI24gSk8BOVPa6K9DOj" alt=""><figcaption></figcaption></figure>

#### Aggressive Early:

Retry 6 times within 20 days of the first failed payment.

<figure><img src="/files/FRiuzXM5FqknVOXmPguq" alt=""><figcaption></figcaption></figure>

#### Business Week:

Retry 4 times within 28 days of the first failed payment.

<figure><img src="/files/ODccloGj2QBp8oqhyAVV" alt=""><figcaption></figcaption></figure>

#### Extended Recovery:

Retry 7 times within 28 days of the first failed payment.

<figure><img src="/files/E71dsC1yWnyBJfzST79h" alt=""><figcaption></figcaption></figure>


# Universal Rebill Date

**The Universal Rebill Date feature allows you to bill all of your members on the same date of each month.**

When editing or creating a new tier, you will see the option to "bill on every specific day of the month" where you can select any date from the 1st-28th where all of your members will be billed, regardless of when they signed up for your program.

<figure><img src="/files/IR8Yvl9Rl6lUUDGMWKP0" alt=""><figcaption></figcaption></figure>

When selecting a specific rebill date, it's important to know how this affects the member experience. The chart below outlines how a universal rebill date will affect different members based on when they signed up for your program.

{% hint style="warning" %}
If you already have an active billing frequency and want to change to a universal rebill date, we highly recommend reaching out to our customer success team to implement a proper strategy to prevent any friction with your existing members.
{% endhint %}

<figure><img src="/files/I4CoURQUL7EhS9untLW9" alt=""><figcaption></figcaption></figure>

**Customer A**

* Signed up for the program on 5/19 with a monthly frequency
* Was rebilled on 6/19 according to the monthly frequency
* On 6/21 the merchant changed from a monthly frequency to a universal rebill date of the 23rd
* Since this member paid for their June rebill before a universal rebill date was selected, their next rebill will be 7/23

**Customer B**

* Signed up for the program on 6/20 with a monthly frequency
* On 6/21 the merchant changed from a monthly frequency to a universal rebill date of the 23rd
* Since this member signed up under a monthly frequency in June just before the a universal rebill date was selected, their next rebill will be 7/23

**Customer C**

* Signed up on 6/22 for a program with a universal rebill date of every 23rd
* Even though they signed up just the day before on 6/22, they will be rebilled again the next day on the 6/23 since they signed up for a program with a configured universal rebill date
* This customer would then be rebilled again on 7/23

**Customer D**

* Signed up for the program on 4/23 with a monthly frequency
* On 6/21 the merchant changed from a monthly frequency to a universal rebill date of the 23rd
* Since the member was already enrolled onto a monthly program - since they signed up on the 23rd - this member would be unaffected and continue to be rebilled every 23rd


# Benefits

{% hint style="info" %}
To view and edit the benefits of your membership program, select **Membership Program** from the list of options on the left-hand side of the dashboard **>** select the membership program **>** choose the **Benefits** tab
{% endhint %}

**Benefits in Inveterate are the different incentives that you can provide to customers who sign up for your membership program.**&#x20;

These benefits include everything for store credits, special savings and exclusive access to products. If you are creating multiple tiers for your membership program you are able to create a different set of benefits for each tier.

**Benefits are organized into four categories:**

* **Credit Based Benefits** give members points/credits for actions such as signing up for the membership program
* **Savings Based Benefits** give members special discounts or free shipping automatically at checkout
* **Access Based Benefits** give members exclusive or early access to products and collections
* **Gift Based Benefits** give new members a free gift when they sign up for your program

{% hint style="info" %}
Marketing Tip: We recommend turning on as many benefits that make sense for your brand as possible.  This gives your membership program a larger perceived value, which can help boost your conversion rate and lower churn.
{% endhint %}

{% hint style="warning" %}
The Member Only Pricing benefit can only be used by Shopify Plus merchants.  Be sure to check your Shopify account status before configuring.
{% endhint %}

{% content-ref url="/pages/noHQHpvIgFW8YqsWWg8K" %}
[Credit Based Benefits](/help-center/guides/program-setup/benefits/credit-based-benefits)
{% endcontent-ref %}

{% content-ref url="/pages/El8hCHpkdiVwrQJMMQcm" %}
[Savings Based Benefits](/help-center/guides/program-setup/benefits/savings-based-benefits)
{% endcontent-ref %}

{% content-ref url="/pages/Fox0S0Y32bd0YX7X6EVo" %}
[Access Based Benefits](/help-center/guides/program-setup/benefits/access-based-benefits)
{% endcontent-ref %}

{% content-ref url="/pages/nQHeVROCz3pay0fdxbFh" %}
[Gift Based Benefits](/help-center/guides/program-setup/benefits/gift-based-benefits)
{% endcontent-ref %}


# Credit Based Benefits

**Credit based benefits give members "points" (or credits) for taking specific actions such as signing up for your membership program or referring a friend to your store.**

{% hint style="info" %}
Credits are generated as Shopify order discount codes so they follow Shopify's discount combination rules. The full Shopify documentation is [available here](https://help.shopify.com/en/manual/discounts/combining-discounts).
{% endhint %}

**Purchases With Credits**

Members are able to use their credits on either (A) only one time products or (B) one time products and their upcoming Inveterate membership rebills. By default, the option to allow members to apply credits to upcoming rebills is turned off when Inveterate is installed. To enable this feature, navigate to the settings page and toggle on the "Allow credits on membership contracts" option.

<figure><img src="/files/RLirlu8vl8G5rZRnYhHB" alt=""><figcaption></figcaption></figure>

**Member Credit Redemption (All Stores)**

When your members receive credits, they are are able to redeem them from their Member Portal. In this flow, a member will redeem the amount of credits they want to use, copy the code, and then paste it as a discount code during the checkout flow. If you have enabled the option to allow members to use credits for rebills, they will have the option to choose how many credits are applied within the popup.

<figure><img src="/files/hezgAObVFc3S2b7vekQG" alt=""><figcaption></figcaption></figure>

Members are able to redeem credits for both upcoming rebills and single product purchases at the same time.&#x20;

* If the member redeems credits towards a rebill, the credit amount will instantly be removed from their balance and automatically applied towards their upcoming membership fee - the member will be able to change this amount before rebill if they wish.
* If the member redeems credits towards a one time purchase, the credit amount will instantly be removed from their balance and they will be able to apply it towards a future purchase. The member can change the amount before using the code if they wish.

<figure><img src="/files/6NSicFhjD9voVwN9dDN7" alt=""><figcaption></figcaption></figure>

{% hint style="info" icon="lightbulb-on" %}
Pro Tip: Give your members multiple ways to earn credits.  This will boost your website engagement and member AOV.
{% endhint %}

{% content-ref url="/pages/N8wyDzJPAYez3SHPsz84" %}
[Credit Expiration](/help-center/guides/program-setup/benefits/credit-based-benefits/credit-expiration)
{% endcontent-ref %}

{% content-ref url="/pages/Gt8AdFtCyDzoU1UP1b0D" %}
[Enabling Credit Based Benefits](/help-center/guides/program-setup/benefits/credit-based-benefits/enabling-credit-based-benefits)
{% endcontent-ref %}

{% content-ref url="/pages/yiFW6M7EF9KpbLvfB3gF" %}
[Recurring Store Credits](/help-center/guides/program-setup/benefits/credit-based-benefits/recurring-store-credits)
{% endcontent-ref %}

{% content-ref url="/pages/H8F3Q4NejqEqUlksR0Q2" %}
[Anniversary Credits](/help-center/guides/program-setup/benefits/credit-based-benefits/anniversary-credits)
{% endcontent-ref %}

{% content-ref url="/pages/qwz3SVxjK46Vx7PdV9oz" %}
[Store Credits For Purchase Referral](/help-center/guides/program-setup/benefits/credit-based-benefits/store-credits-for-purchase-referral)
{% endcontent-ref %}

{% content-ref url="/pages/UAHCWMGVGnsZzjfxB1Sf" %}
[Sign Up Store Credits](/help-center/guides/program-setup/benefits/credit-based-benefits/sign-up-store-credits)
{% endcontent-ref %}


# Credit Checkout Extension

For Shopify Plus stores only

If your store is on Shopify Plus, you also have access to the Credit Redemption Checkout Extension. This allows members to redeem and apply their credits directly within the checkout flow, without needing to visit the Member Portal.

{% hint style="info" %}
Your Inveterate account must be set up to use Discount Codes as credits and not Gift Cards as credits. If you are not sure or would like to switch to Discount Codes, feel free to contact us.
{% endhint %}

<figure><img src="/files/bHYDz1B23qDMYivxYmFV" alt=""><figcaption></figcaption></figure>

### **How to enable the Credit Checkout Extension**

1. Click on "Settings" in your Shopify admin
2. Click "Checkout"
3. Find your live checkout and click "Customize"
4. Select the Inveterate Credit Redemption Checkout Extension to enable it
5. Click "Save"

{% embed url="<https://youtu.be/wRXedWTQtB4?si=w5aENETlK-v9tl_D>" %}


# Credit Expiration

You have the option of setting an expiration date for any credits received by members.

By default, credits are set to never expire. When creating a new tier, you will see a **Store Credit Expiration** section where you can specify how long credits for that tier should remain active before expiring.

#### Tier-specific expirations

You can set different expiration periods for each membership tier.&#x20;

For example:

* Bronze Tier credits may expire after 80 days
* Diamond Tier credits may expire after 365 days

This gives you flexibility to offer more value to higher-tier members.

You can set unique credit expiration periods for each membership tier by going to **Membership Program > click the three dots next to the tier you want to edit > Edit Tier > Store Credit Expiration**.

#### Important notes

* Any changes to credit expiration only apply to **future credits** earned. They do not retroactively affect credits already received by members.
* Credits expire at the same time of day they were originally issued.
  * Example: If a member earns credits at 1:00 PM on Monday with a 7-day expiration, the credits will expire at 1:00 PM the following Monday.

<figure><img src="/files/JcnNXYhWbjyucNx1y5Bo" alt=""><figcaption></figcaption></figure>


# Enabling Credit Based Benefits

Inveterate credits work by leveraging Shopify discount codes.

Every time a member redeems credits through their dashboard, Inveterate will create a one-time use coupon code for the dollar value of those credits in Shopify. These codes can only be used by the redeeming member.

Users are able to redeem additional credits on top of any that have already been redeemed. In this scenario, Inveterate will delete the existing code, and create a new one for the new balance.

{% hint style="warning" %}
This toggle enables credits for your members.  It must be enabled for your customers to collect and redeem credits.
{% endhint %}

Navigate to Settings > Benefits in Inveterate to find the 'Enable Credits' toggle

<div data-full-width="true"><figure><img src="/files/rMqksFviIGbxAqV8Ufxn" alt=""><figcaption></figcaption></figure></div>


# Recurring Store Credits

**Recurring Store Credits is a benefit that gives your members a monetary credit to use in your shop on an automatic timed basis.**&#x20;

For example, you may choose to give your members a $5 credit every month for the duration of their membership.  This keeps your customers coming back to make purchases so they don't feel like they're 'leaving money on the table'.

You are also able to configure Recurring Store Credits to be given to all your members on the same day every month. For example, you could give Recurring Credits to all members on the 15th of each month.

{% hint style="info" %}
Pro Tip: Give your customers a small, monthly recurring credit as an incentive to get them to browse new products or collections.
{% endhint %}

{% hint style="warning" %}
**Timing of frequency based credits is based on "number of days", not by month.**

When you set up the Recurring Credits benefit, you will see frequency options such as 30 days, 60 days, etc. This credit timer will not take into account if a month has 31 days.

For example: if you set a 30 day frequency to begin on July 1, your member will receive credits on July 1 and July 31st, since there are 30 days between.&#x20;
{% endhint %}

{% hint style="warning" %}
**Timing of date-specific credits can only be set from days 1 - 28**

When you select to use a specific date to drop credits into member accounts you can select up until day 28 of each month, you are not able to select days 29-31 due to differences in months.
{% endhint %}

{% hint style="danger" %}
**We highly recommend you reach out to our customer success team before changing from frequency based credits to specific-date credits to ensure your strategy is implemented properly.**&#x20;
{% endhint %}

**To set up recurring store credits:**

1. Click on the Benefits tab in Inveterate, and then click on Recurring Store Credits.
2. Enter the name of the benefit - this is what the customer will see.
3. Enter the description of the benefit.  This is where you describe how often they get a credit, and for how much.
4. Upload the icon that you want to use.  See below for a template you can use.
5. Configure the credit amount - this is the amount your members receive according to your frequency settings.
6. Adjust the frequency or select a credit date - this is how often your members receive a credit.
7. Save the benefit settings.
8. Enable the benefit.

{% file src="/files/fODavZ1ZUIHTbwtcOXPe" %}
Store Credits Benefit Icon Template
{% endfile %}

#### Download the PDF below for step-by-step instructions

{% file src="/files/cGlJpERIhidUtDw3AO9P" %}

{% embed url="<https://youtu.be/dqoN_mDM83Y>" %}

&#x20;


# Credits For Orders

The Credits For Orders benefit is used to give your members 'cash back' on qualifying purchases.

Inveterate gives merchants the ability to give cash back to members with every purchase. Merchants have the ability to set the guidelines for cash back directly within the platform.

{% hint style="warning" %}
Make sure you review the Configuration Overview carefully before enabling this benefit, members will be able to redeem credits as soon as they are received.
{% endhint %}

{% hint style="info" %}
Once this benefit is enabled, credits earned based on the rules set should reflect in customer accounts almost immediately.&#x20;

If you see a discrepancy, please **make sure to check the rules set within Shopify** for the product/ collections selected in this benefit.
{% endhint %}

{% hint style="info" %}
If a customer purchases other products in the same order as when they purchase the membership, they will receive credits for those products. For example, if a customer purchases a pair of shoes alongside the membership, they will receive credits for the shoes in this first order.
{% endhint %}

### **Configuration Overview**

**X% Back on purchases**

* This benefit configuration gives your members a percent of their total purchase back in credits. For example, earn 5% back on all orders.
  * Minimum Purchase Amount: This is the minimum cart total value that a member must purchase in order to receive credits
  * Reward Value %: This is the % of the cart total that a member will receive in credits for each purchase
  * Maximum Rewards Value: This is the maximum amount of credits that a member can receive per order.  This is only per-order, not lifetime orders

**Spend $Y earn $X**

* This benefit configuration gives your members a set dollar amount of credits back for every qualifying purchase. For example, earn $5 for every $100 spent.
  * Minimum Purchase Amount: This is the minimum cart total value that a member must purchase in order to receive credits
  * Reward Value: This is the dollar amount of credits that the member will receive
  * Maximum Rewards Value: This is the maximum amount of credits that a member can receive per order.  This is only per-order, not lifetime orders

**Earn $X on every order**

* This benefit configuration gives your members a flat dollar amount for every qualifying purchase. For example, earn $1 on all orders over $10
  * Minimum Purchase Amount: This is the minimum cart total value that a member must purchase in order to receive credits
  * Reward Value: This is the dollar amount of credits that the member will receive

### **Targeting Products For Credits**

When configuring your credits, you are able to target all products, or specific products.

* All Products will give the cash back amount on every product in your catalog
* Specific Products will let you select individual products that will give cash back
* Specific Collections will let you select products by selecting collections

<figure><img src="/files/T1IaatwHdRu0kgTNbc1J" alt=""><figcaption></figcaption></figure>

### Delaying Credit Delivery

This feature allows you to set a delay before credits are delivered to a member's account after a qualifying purchase. This can help prevent issues like immediate credit redemption on refunded or canceled orders and gives you more control over the timing of credit issuance.

**How it works:**\
In the configuration settings for Credits for Orders, you’ll see a field labeled **“Delay Credit Delivery”**. Here, you can enter the number of days to wait before credits are issued to the member.

* **0 days**: Credits will be delivered immediately after the qualifying order is placed.
* **Any other value**: Credits will be delayed and delivered to the member’s account after the set number of days.

Use this feature if you want to introduce a buffer between when the order is placed and when credits are applied, such as to account for returns or cancellations.

<div data-full-width="true"><figure><img src="/files/wCc2DJvHFaes0NReiMVj" alt=""><figcaption></figcaption></figure></div>

### **To set up recurring store credits:**

1. Click on the Benefits tab in Inveterate, and then click on Credits For Orders.
2. Enter the name of the benefit - this is what the customer will see.
3. Enter the description of the benefit.  This is where you describe how often they get a credit, and for how much.
4. Upload the icon that you want to use, or use the icon provided.
5. Select the configuration type - this is where you select the method in whic credits will be calculated for customer orders.
6. Configure the credit amount - this is the amount your members receive according to your settings.
7. Select whether credits will be given for all products, or select specific products from the menu.
8. Save the benefit settings.
9. Enable the benefit.

**Download the PDF below for step-by-step instructions:**

{% file src="/files/WQSzpfOi40HdywyEnuGI" %}

{% embed url="<https://youtu.be/CmG4s2mkW38>" %}


# Anniversary Credits

**Anniversary Credits is a benefit that gives your members a monetary credit once a year, on the anniversary of their membership.**

{% hint style="info" %}
Pro Tip: Adding this benefit to your membership program increases it's perceived value to your members and can help reduce churn - everyone loves a freebie!
{% endhint %}

**To set up anniversary credits:**

1. Click on the Benefits tab in Inveterate, and then click on Anniversary Credits.
2. Enter the name of the benefit - this is what the customer will see.
3. Enter the description of the benefit.  This is where you describe why the member is receiving an anniversary credit and how it works.
4. Upload the icon that you want to use.  See below for a template you can use.
5. Configure the credit amount - this is the amount your members receive each year.
6. Save the benefit settings.
7. Enable the benefit.

{% file src="/files/NRKFTkuFw66hyDwNKzYL" %}
Anniversary Credits Benefit Icon Template
{% endfile %}

#### Download the PDF below for step-by-step instructions

{% file src="/files/VhoCu3J2ejmOBuGXp7Tz" %}

{% embed url="<https://youtu.be/8UyU-6ufZ7s>" %}


# Store Credits For Purchase Referral

**Store Credits For Purchase Referral is a benefit that gives your members a credit every time they refer a new customer to your store. Referred customers receive a discount on their first qualifying order, whether that is a one-time product purchase or the membership purchase itself.**

{% hint style="info" %}
Members can only receive credits one time for each new customer they refer to your store. They will not receive credits if they send the link to an existing customer.
{% endhint %}

{% hint style="info" %}
Referred customers will have their discounts applied to cart automatically after clicking the member's referral link, they will not have to take any additional action.
{% endhint %}

{% hint style="warning" %}
Currently this benefit does not work if a customer uses an Express Checkout (Buy Now) button and skips through the cart directly to checkout page. Our team is working on a patch to resolve this.
{% endhint %}

**To set up store credits for purchase referral:**

1. Navigate to the tier you want to activate this benefit on.
2. Select the "Store Credits For Purchase Referral" benefit.
3. Enter the name of the benefit - this is what the customer will see.
4. Enter the description of the benefit.  This is where you describe the referral program to your members.
5. Upload the icon that you want to use.  See below for a template you can use.
6. Configure the referred customer discount settings - this is the discount that the referred customer will receive on their first order.
7. Configure the credit amount - this is the amount your members receive each time they refer a new customer to your store.
8. Save the benefit settings.
9. Enable the benefit.

{% hint style="warning" %}
Troubleshooting Tip: Please ensure that Inveterate is [enabled within your current theme](https://help.inveterate.com/help-center/guides/getting-started/enable-inveterate-on-your-store) if you are experiencing an issue with this benefit
{% endhint %}

{% file src="/files/MKuGkzU1CX4DUdgmyH4i" %}
Referral Credits Benefit Icon Template
{% endfile %}

#### Download the PDF below for step-by-step instructions

{% file src="/files/3zzvbgD4lL3TiMJ8EgKf" %}


# Enabling Referral Discount Validation Extension

The Referral Discount Validation extension helps prevent customers from applying their own referral discount at checkout. This ensures referral discounts are only used as intended and helps protect the integrity of your referral program.

***

## Enable the Extension in Shopify

#### Step 1: Open the Checkout and Accounts Editor

In your Shopify admin, navigate to the **Checkout and accounts editor**.

You can find Shopify’s guide for accessing apps in the checkout editor here:\
<https://help.shopify.com/en/manual/checkout-settings/customize-checkout-configurations/checkout-editor#access-apps>

#### Step 2: Open the Apps Sidebar

Once you are in the checkout editor, open the **Apps** sidebar.

<img src="/files/jc645FQmV67DZYNlXy7W" alt="" height="458" width="186">

#### Step 3: Add Referral Discount Validation

Find and add **Referral Discount Validation** to Checkout.

<img src="/files/6luzyQgyegTW8TGQAAwx" alt="" height="301" width="561">

#### Step 4: Allow the App to Block Checkout

After adding the extension, make sure **Allow app to block checkout** is enabled.

This setting is required. If it is disabled, checkout will not be blocked when a customer attempts to apply their own referral discount.

<img src="/files/LranyQwCxFNqhQMkeBts" alt="" height="339" width="439">

#### Step 5: Save Your Changes

Click **Save** to apply the extension to your checkout.

***

### Headless Storefronts

If you are using a headless storefront, you will also need to call Inveterate’s IP capture public API endpoint whenever the referral link is displayed.

This ensures the customer’s IP address is properly stored in Inveterate’s database and can be used for referral validation.

Internal API documentation:\
<https://docs.google.com/document/d/1CpnQ0_HnqyOsU0ymwgKd2Njz3SZI3QY6SMY74OEUc34/edit?tab=t.0>

***

### Important Notes

* The extension must be added to checkout for referral validation to work.
* **Allow app to block checkout** must be enabled.
* For headless storefronts, the IP capture API call is required when displaying referral links.
* If this extension is not enabled, customers may be able to apply referral discounts in unintended ways.


# Add Referral Benefit Terms of Service to Your Store

Example of referral benefit terms that you can add to your store

### Introduction

The implementation of a comprehensive Referral Program represents a critical component of customer acquisition and retention strategy. A well-defined program leverages the existing customer base to drive incremental business growth while reinforcing loyalty through structured incentives.

This document provides an example Referral Program Terms of Service framework designed to provide compliance, mitigate fraud risk, and establish clear rules regarding eligibility, participation, and reward fulfillment. It is intended for use as an example template for enterprise deployment or disclosure purposes.

### Referral Program Terms of Service

#### 1. Acceptance of Terms

Participation in the Company’s Referral Program (the “Program”) constitutes acceptance of these Terms of Service (“Terms”) and the Company’s Privacy Policy. Participants who do not agree to these Terms or the Privacy Policy are prohibited from engaging in the Program.

***

#### 2. Eligibility

Participation is limited to individuals who are at least 18 years of age and who maintain an active customer account with the Company. Participation is void where prohibited by applicable law, regulation, or internal compliance policy.

***

#### 3. Program Overview

Upon enrollment, each participant (“Advocate”) will receive a unique referral link or code (“Referral Code”). The Program functions as follows:

1. Advocate Enrollment: The participant registers for the Program and obtains a Referral Code.<br>
2. Referral Distribution: The Advocate may share the Referral Code through email, social media, or direct messaging channels.<br>
3. Referral Claim: A referred customer (“Friend”) uses the Referral Code to claim a promotional discount, establishing a pending referral record.<br>
4. Qualifying Transaction: When the Friend completes a qualifying purchase and the order is fulfilled, the referral is recorded as completed.<br>
5. Reward Issuance: Following fulfillment, the Advocate receives the applicable reward, as defined in the Program documentation.

***

#### 4. Prohibited Conduct

Self-referrals and the creation of multiple accounts for the purpose of obtaining rewards are strictly prohibited. Any attempt to manipulate referral outcomes, circumvent eligibility requirements, or engage in fraudulent activity will result in immediate disqualification and potential account termination.

***

#### 5. Program Limitations

* Only one referral per household is permitted.<br>
* Rewards apply exclusively to first-time customers; referrals involving existing customers are ineligible.<br>
* Rewards are issued only after the referred order is verified as fulfilled.<br>
* Public dissemination of referral links on coupon or deal-aggregation platforms is expressly prohibited.<br>
* The Company reserves the right to limit or revoke participation privileges at its discretion.

***

#### 6. Fraud Prevention and Security Controls

To preserve the integrity of the Program, the Company implements multilayered verification and monitoring protocols, including but not limited to:

* IP Address Monitoring: Detection of multiple referrals originating from identical or proximate IP addresses.<br>
* Email Validation: Automated screening for duplicate, disposable, or otherwise invalid email addresses.<br>
* Account Verification: Confirmation that referred customers represent legitimate, first-time purchasers.<br>
* Automated Blocking Systems: Identification and suppression of referral activity exhibiting abnormal or fraudulent patterns.<br>

The Company may supplement these measures with additional internal or third-party fraud prevention tools as deemed necessary.

***

#### 7. Disqualification Criteria

The Company reserves sole discretion to disqualify participants or invalidate referrals under the following circumstances:

* Referrals involving materially similar or duplicate email addresses.<br>
* Multiple submissions originating from the same IP address or household.<br>
* Referrals by or to existing customers.<br>
* Attempts to exploit or circumvent referral mechanisms.<br>
* Engagement in conduct deemed deceptive, abusive, or inconsistent with the intent of the Program.<br>

Disqualified participants may be barred from all current and future Company promotional programs.

***

#### 8. Referral Status Classifications

Each referral will be assigned a status for tracking and compliance purposes:

* Unclaimed: Referral Code generated but not yet redeemed.<br>
* Pending: Referral claimed but no qualifying transaction completed.<br>
* Completed: Qualifying purchase fulfilled and eligible for reward issuance.<br>
* Blocked: Referral invalidated due to security or policy violations.<br>
* Ineligible: Referral fails to satisfy minimum criteria or purchase thresholds.

***

#### 9. Customization and Integration

The Program may be configured to align with corporate branding and operational requirements, including:

* Branded user interfaces, color schemes, and messaging.<br>
* Integration with email and digital marketing systems for controlled referral distribution.<br>
* Embedded Terms of Service linkage across referral-related pages and communications.<br>
* Configurable marketing consent options for both Advocates and Friends in compliance with data-protection laws.

***

#### 10. Program Modifications

The Company retains full authority to modify, suspend, or terminate the Program at any time, for any reason, with or without notice. Updates to these Terms will be communicated through the Company’s official channels or reflected in the most current published version of this document.

***

#### 11. Reward Fulfillment and Processing

Reward fulfillment is subject to verification and adherence to the following conditions:

* Processing Timeline: Rewards are issued only after the referred purchase has been fulfilled and verified as non-returnable.<br>
* Verification Period: Certain rewards may require an additional validation window to confirm purchase legitimacy and prevent chargebacks.<br>
* Reward Format: Rewards may be issued as discount codes, store credits, or other forms as specified in the Program.<br>
* Delivery Mechanism: Rewards will be distributed via participant dashboards, email, or other approved delivery methods.

***

#### 12. Limitation of Liability

The Company is not liable for inaccurate participant information, technical malfunctions, or system errors that may impact referral tracking or reward issuance. Participation in the Program is undertaken at the participant’s own risk.

***

#### 13. Governing Law

These Terms shall be governed by and construed in accordance with the laws of the jurisdiction in which the Company is organized, without regard to conflict-of-law principles.

***

#### 14. Contact Information

Questions or concerns regarding the Program or these Terms should be directed to the Company’s designated support or compliance contact as identified on its website.

***

#### 15. Program Participation Acknowledgment

By participating in the Program, participants acknowledge that they have read, understood, and agreed to these Terms, including all policies related to fraud prevention, disqualification, and reward processing.

The Company reserves the right to amend these Terms to reflect new operational features, regulatory requirements, or security protocols. Continued participation after such amendments constitutes acceptance of the updated Terms.

***

{% hint style="warning" %}
Important Notice:

The following Terms of Service are provided solely as an illustrative example for informational and implementation purposes. This example does not constitute legal advice and should not be relied upon as such. Each merchant is solely responsible for reviewing, modifying, and adopting these terms in consultation with their own legal counsel to ensure compliance with applicable laws and regulations.

Inveterate, Inc. assumes no responsibility or liability for any merchant’s use, modification, or interpretation of this document or its contents.

<br>
{% endhint %}


# Sign Up Store Credits

**Sign Up Store Credits is a benefit that gives your members a monetary credit as a bonus for signing up for your membership program.**

{% hint style="info" %}
Pro Tip: This credit is given to your member immediately upon signing up for your program.  Giving your members a sign up bonus will add to your program's perceived value.
{% endhint %}

{% hint style="info" %}
Marketing Tip: Take the time to explain to them that their savings will quickly outweigh their initial membership cost.  This will help increase membership sign ups.
{% endhint %}

**To set up sign up store credits:**

1. Click on the Benefits tab in Inveterate, and then click on Sign Up Store Credits.
2. Enter the name of the benefit - this is what the customer will see.
3. Enter the description of the benefit.  This is where you describe the sign up bonus to your customers.
4. Upload the icon that you want to use.  See below for a template you can use.
5. Configure the credit amount - this is the amount your members receive as soon as they sign up for the program.
6. Configure the credit delay if you wish to add one - this will delay how long it takes for your member to receive their credits after they sign up for your membership.
7. Save the benefit settings.
8. Enable the benefit.

{% file src="/files/yldFxzbqnJoziIsk7J0s" %}
Sign Up Store Credit Benefit Icon Template
{% endfile %}

#### Download the PDF below for step-by-step instructions

{% file src="/files/Md0TVbH8tNIVsS2gfmlK" %}

{% embed url="<https://youtu.be/4D8EHuYNNEs>" %}


# Birthday Credits

**Birthday Credits are a benefit that lets you reward your members with a monetary credit on their birthday — a simple way to surprise and delight your customers.**

**How to Set Up Birthday Credits**

1. Go to the **Benefits** tab in your Inveterate admin.
2. Click on **Birthday Credits**.
3. Enter the **name** of the benefit (this is what the member will see).
4. Add a **description** explaining how the benefit works and why the member is receiving it.
5. Upload an **icon** for the benefit (optional).
6. Set the **credit amount** your members will receive.
7. Click **Save** and **enable** the benefit.

{% hint style="info" %}
In the **Settings** section of your Inveterate admin, you can choose whether Birthday Credits can be **combined with other credits**. Be sure to review and adjust this based on how you’d like the benefit to function.
{% endhint %}

{% hint style="warning" %}
**Note:** For this benefit to appear in the member's portal, make sure Birthday Credits are also **enabled in the Benefits section on your Landing Page**. Without this, members won’t see the prompt to enter their birthday.
{% endhint %}

#### What members see

Once enabled, the next time a member logs in to your store and visits their **Rewards Page**, they'll see the **Birthday Credits** section. It will display the following message:

> *"Don't miss out on your birthday treat! Drop your birth date and we'll send you a little something to celebrate."*

<figure><img src="/files/Xm1yfoFpD4ldRJ2PkT4z" alt=""><figcaption></figcaption></figure>

Next to this message is a **Set birthday** button. When clicked, the member will be able to select their birthday from dropdown fields.

<figure><img src="/files/dK2WFaLsdVpZCVWtuyok" alt=""><figcaption></figcaption></figure>

After submitting their birthday, they’ll be eligible to receive credits on their special day, no further action needed!

#### Manually adding a member's birthday through the Inveterate Admin

Within the Inveterate admin portal - at the individual member level - you are able to manually the birthdate of a member. This can be done by clicking the pencil icon next to the "Birthdate" field in their profile as seen below:

<figure><img src="/files/j06gyepGtUrMFBh888eA" alt=""><figcaption></figcaption></figure>

#### Download the PDF below for step-by-step instructions

{% file src="/files/7EJreOQLkMYIquSO2erC" %}


# Lookback Credits

Lookback Credits is a feature that allows you to reward customers for purchases made before they became members. This helps drive conversions by showing non-members the value they missed and offering a limited-time opportunity to earn credits retroactively.

### How It Works

#### Customer Experience

* A non-member places an order
* They receive an email showing how many credits they would have earned as a member
* The email explains they can still receive those credits if they join within a set timeframe
* If they join within that window, credits are automatically awarded
* Credits are applied for qualifying orders placed before enrollment

#### Example

A customer places a $200 order while not enrolled. Your program offers 10% cashback. They receive an email letting them know they could have earned $20 in credits. If they sign up within 7 days, they receive those $20 in credits after joining.

***

### Configuration

To enable Lookback Credits, navigate to **Membership Program → Select membership tier → Benefits → Credits for Orders benefit**&#x20;

#### Enable Lookback Credits

Turn this setting on to activate the feature.

<figure><img src="/files/YxWl3Zvvl686mNUjoN2b" alt=""><figcaption></figcaption></figure>

#### Days to Look Back

Set how many days prior to enrollment to consider for eligible orders.

Example: If set to 7 days, customers will receive credits for orders placed up to 7 days before they join.

#### Max Orders

Set the maximum number of orders eligible for credit.

* Orders are processed from most recent to oldest
* Only the most recent orders up to this limit will be included

Example: If set to 1, only the most recent order will qualify.

<figure><img src="/files/lia8eIIa8Rj5aXlpUrjX" alt=""><figcaption></figcaption></figure>

#### Multi-Tier Programs

If you have multiple tiers with different cashback rates, you can select which tier is used for credit calculations and customer messaging.

***

### Customer Notifications

#### Native Email

Inveterate automatically sends an email after a qualifying order is placed. This email includes:

* The credits the customer would have earned
* The number of days they have to join
* A link to your membership page
* A summary of the offer

{% hint style="info" %}
Note: The credit amount is based on the order subtotal and may differ from the total paid.
{% endhint %}

#### Klaviyo Integration

If you are using Klaviyo, you can send custom emails using available properties, including:

* Credit amount the customer would have earned

For additional properties, a full list can be found here:\
[Klaviyo Member Notification Metrics and Their Template Variables](/help-center/advanced-guides/replace-inveterate-emails-in-klaviyo/klaviyo-member-notification-metrics-and-their-template-variables)<br>

***

### Credit Award Logic

#### When Credits Are Awarded

Credits are awarded when the customer enrolls in a membership with Lookback Credits enabled.

#### How Credits Are Calculated

1. Orders within the lookback window are identified
2. Orders are selected from most recent to oldest
3. Credits are calculated per order based on your cashback rate
4. Each order generates its own credit entry

Customers will see separate entries in their credit ledger for each qualifying order.

#### Eligible Orders

Only orders placed before the membership purchase are included. Orders placed at the same time as enrollment follow your standard Credits for Orders settings.

{% hint style="warning" %}

### Important Considerations

#### Lookback Window Timing

The lookback window is based on the time of enrollment, not when the email is sent.

Example:

* A customer receives a 7-day offer
* They wait 5 days to join
* Only orders within 2 days before enrollment will qualify
  {% endhint %}

***

### FAQ

**What happens if a customer has multiple orders?**\
They receive credits for eligible orders up to your Max Orders setting.

**Can customers game the system?**\
No. The lookback window is calculated from enrollment, not from the email.

**Does this work with free trials?**\
Yes. Credits are awarded upon enrollment, including during free trials.

**How do multi-tier programs work?**\
You can choose which tier’s benefit is used for calculations and messaging.

**Are membership purchases included?**\
No. Only orders placed before enrollment are considered.


# Credits for Reviews

Reward members with store credits when they submit product reviews. This benefit integrates with third-party review platforms to automatically award credits when members leave reviews, encouraging engagement and generating valuable social proof for your products.

{% hint style="warning" %}
Credits for Reviews is currently available only for merchants using [Okendo](https://okendo.io/) as their reviews provider. Support for additional review platforms may be added in the future.
{% endhint %}

### Requirements

To use Credits for Reviews, you need:

* An active membership program with at least one tier
* A supported third-party review platform installed on your Shopify store
* The review platform integration connected in your Inveterate dashboard

#### Supported Review Platforms

Currently, Credits for Reviews works with:

* **Okendo** (requires Okendo Advanced plan for API access)

Additional platforms may be supported in the future.

***

### Setting Up Credits for Reviews

#### Step 1: Connect Your Review Platform

Before you can enable Credits for Reviews, you must first connect your review platform.

1. Navigate to **Integrations** in your Inveterate dashboard
2. Locate your review platform (e.g., **Okendo**) in the integrations list
3. Click **Connect** and follow the prompts to authorize the integration
   1. More info on Okendo integration here: <https://help.inveterate.com/help-center/guides/integrations/okendo>
4. Enter any required credentials (API key, subscriber ID, etc.)
5. Click **Save**&#x20;

Once your review platform is successfully connected, you can proceed to configure the benefit.

#### Step 2: Enable Credits for Reviews

1. Navigate to **Membership Program > select tier > Benefits**
2. Locate **Credits for Reviews** in the available benefits list
3. Click on **Credits for Reviews** to open the configuration panel

#### Step 3: Configure Your Settings

**Review Platform**

Select your connected review platform from the dropdown menu. If you haven't connected a platform yet, you'll see a warning:

> ⚠️ **Connect a review platform**\
> Select and connect a third-party reviews platform before you can enable this benefit.\
> [Open Integrations →](https://27897da49f023e0-preview.sandpack-static-server.codesandbox.io/#)

**Action:** Click "Open Integrations" to connect your review platform first.

**Member Credit Amount**

Set the amount of store credit members will earn for each review.

**Field:** Amount in your store's currency (e.g., USD)

**Example:** Entering `5 USD` means members receive $5 in store credit per review.

**Max Reviews Per Customer (Optional)**

Limit how many times a single customer can earn review credits.

**Toggle:** ☑️ Max reviews per customer

When enabled, enter the maximum number of reviews eligible for credits.

**Example:** Setting this to `1` means each customer can only earn credits for their first review. Setting it to `5` allows up to 5 credited reviews per customer.

**When to use this:**

* **Prevent abuse:** Limit excessive review submissions
* **First review focus:** Set to `1` to reward only first-time reviewers
* **Budget control:** Cap credit expenditure per customer

**When to leave unchecked:**

* You want unlimited review incentives
* You sell many different products and want feedback on each
* You have high purchase frequency and value ongoing reviews

**Combine with Other Discounts**

Control how review credits interact with other discount types at checkout.

**Note:** You can combine credit benefits with other discounts in your settings.&#x20;

Found by navigating from your Inveterate dashboard to **Settings** > **Benefits**

This setting determines whether members can use their review credits alongside other promotional discounts (percentage off, BOGO, etc.) at checkout.

***

#### Download the PDF below for step-by-step instructions

{% file src="/files/t4nCQDNhiHKG9vMvsnGz" %}

{% embed url="<https://youtu.be/GD5sWrXWb_Y>" %}


# Savings Based Benefits

**Savings based benefits give members special discounts and access to special pricing on your store.**

{% hint style="info" %}
Pro Tip: Offering even as low as 5% off all orders for the length of the membership can help increase your program's conversion rate and your member AOV.
{% endhint %}

Follow the steps below to configure individual benefits.

{% content-ref url="/pages/XmAx8ZMYPLi0qxkm2NAs" %}
[Free Shipping](/help-center/guides/program-setup/benefits/savings-based-benefits/free-shipping)
{% endcontent-ref %}

{% content-ref url="/pages/kh9fE6u0CBk7KILaHrsr" %}
[Member Only Discounts](/help-center/guides/program-setup/benefits/savings-based-benefits/member-only-discounts)
{% endcontent-ref %}

{% content-ref url="/pages/vU6gJ0KjeYJ9x88IawfE" %}
[Sign Up Discounts](/help-center/guides/program-setup/benefits/savings-based-benefits/sign-up-discounts)
{% endcontent-ref %}

{% content-ref url="/pages/gqAGrFUU71AgeKl0iEPC" %}
[Member Only Pricing](/help-center/guides/program-setup/benefits/savings-based-benefits/member-only-pricing)
{% endcontent-ref %}


# Free Shipping

**The Free Shipping benefit gives all members Free Shipping on all orders for the length of their membership.**

{% hint style="info" %}
Marketing Tip: Free Shipping is a great evergreen benefit for your members.  Take the time to explain to them that their savings will quickly outweigh their initial membership cost.
{% endhint %}

{% hint style="info" %}
Pro Tip: Set requirements for a minimum purchase amount or quantity of items and promote this to your customers to raise your AOV.
{% endhint %}

{% hint style="info" %}
Pro Tip: This benefit can be configured to allow free shipping on orders that meet specific thresholds such as cart value - or for specific shipping methods such as offering free standard shipping, while still offering a paid option for expedited shipping.
{% endhint %}

{% hint style="warning" %}
When using Functions you will not be able to apply Free Shipping to the order where the member also purchases the membership, it will only apply to subsequent orders after the customer has purchased the membership.

If you wish to give Free Shipping in the same order as the membership, you will need to use Scripts and customize the script accordingly.
{% endhint %}

{% hint style="warning" %}
The script version of the Free Shipping benefit will only function on Shopify Plus stores that have upgraded to checkout extensibility. More information about this is [available from Shopify](https://www.shopify.com/plus/upgrading-to-checkout-extensibility).
{% endhint %}

**To set up free shipping:**

1. Click on the Benefits tab in Inveterate, and then click on Free Shipping.
2. Enter the name of the benefit - this is what the customer will see.
3. Enter the description of the benefit.  This is where you describe how the free shipping benefit will work to your members.
4. Upload the icon that you want to use.  See below for a template you can use.
5. Configure the minimum requirements to get Free Shipping.  You can set whether customers need to purchase a certain number of items, or set a minimum purchase amount.
6. Exclude Specific Shipping Rates if you exclude certain shipping rates from free shipping.  You can use this to have customers get free ground shipping, but still have the option to pay for expedited shipping.
7. Select the countries the Free Shipping benefit will apply to.
8. Select whether free shipping will be applied using Functions, a coupon code or through a script. *Note: Only Shopify Plus merchants are able to use scripts.  Non-Plus merchants need to use Functions or coupon codes.*
9. Enter the free shipping code (if you are not using a script or Functions).
10. Save the benefit settings.
11. If you use a Script, copy the script and paste it as a new script in the Shopify Scripts app.  Select "Blank Template" from the script templates option when setting up. Click "Save + Publish" in the Shopify Scripts app.
12. Enable the benefit.

{% hint style="info" %}
Pro Tip: Coupon codes created in Inveterate are synced back to Shopify for easy management.  See more in [Member Only Discounts](/help-center/guides/program-setup/benefits/savings-based-benefits/member-only-discounts)
{% endhint %}

{% file src="/files/WSrJoQA3SeSLsnFQ3hW8" %}
Free Shipping Benefit Icon Template
{% endfile %}

#### Download the PDF below for step-by-step instructions

{% file src="/files/0whfK1vQhxE6WLfGaYJP" %}

{% embed url="<https://youtu.be/UUiFke1mtDc>" %}


# Member Only Discounts

**Member Only Discounts are configured through the Inveterate dashboard and are only available to be used by your members.**

{% hint style="info" %}
Pro Tip: Coupons can be set as evergreen, one-time use, or with an expiration date.
{% endhint %}

{% hint style="info" %}
Pro Tip: You can have multiple discounts running at the same time - you leverage this feature to run various member-only promotions in your email marketing or SMS platform.
{% endhint %}

**To set up member only discounts:**

1. Click on the Benefits tab in Inveterate, and then click on Member Only Discounts.
2. Enter the name of the benefit - this is what the customer will see.
3. Enter the description of the benefit.  This is where you describe the members only discount to your customers.
4. Upload the icon that you want to use.  See below for a template you can use.
5. Save the benefit settings before you move onto configuring coupon codes
6. Configure the coupon code - this will be the code that members enter in checkout for a discount.
7. Configure the discount type - this can be a percentage, fixed amount or free shipping.
8. Configure which products or collections this coupon code will apply to, or if it will apply site-wide.  Be sure to convey any coupon restrictions to your members.
9. Set any minimum requirements for using the coupon code - minimum monetary amount or minimum quantity of products.
10. Select whether this coupon code will be one-time use per member, or evergreen for the length of their membership.
11. Configure any promotional dates if needed.
12. Save the benefit settings.
13. Enable the benefit.

{% hint style="warning" %}
Discount codes should be edited directly within the Inveterate dashboard. [Click here for the help doc.](/help-center/discount-information/editing-discount-codes)
{% endhint %}

{% file src="/files/rcF39uELMFzjSG4aWZhC" %}
Member Only Discounts Benefit Icon Template
{% endfile %}

#### Download the PDF below for step-by-step instructions

{% file src="/files/Z6eTsJfes183qstMX0aF" %}

{% embed url="<https://youtu.be/nIipG4Kc8Ps>" %}


# Sign Up Discounts

**Sign up discounts can be used to give your members a larger, one-time discount as a way to welcome them to your program.**

{% hint style="info" %}
Pro Tip: Welcome Discounts can be configured as "one time" or evergreen discounts depending on your membership strategy.
{% endhint %}

{% hint style="info" %}
Pro Tip: Sign Up Discounts should be used alongside Member Only Discounts to provide additional value to your members.
{% endhint %}

**To set up Sign Up Discounts:**

1. Click on the Benefits tab in Inveterate, and then click on Sign Up Discounts.
2. Enter the name of the benefit - this is what the customer will see.
3. Enter the description of the benefit.  This is where you describe the members only discount to your customers.
4. Upload the icon that you want to use, or use the one we provide. &#x20;
5. Set the discount type for your Sign Up Discounts. This can be set as a percentage off, or a fixed dollar amount.
6. Select which products this discount will apply to. You can select between all products, a specific collection, or manually select individual products.
7. Select the minimum requirements to use this discount. You have the option to use no requirements, a minimum dollar amount, or a minimum quantity of products.
8. Set the usage limits. This is where you decide if members can use this code one time or multiple times.
9. Set the expiration for the discount. You can leave this box unchecked so the code does not expire, or you can set it to expire after a set number of days.
10. Click "Save Changes" to save your configuration.
11. Click "Enable" to turn the benefit on.

**Download the PDF below for step-by-step instructions:**

{% file src="/files/FkgPyz3Up5DYIAFWnDSa" %}

{% embed url="<https://youtu.be/nyqVhu7WAuM>" %}


# Member Only Pricing

**Member Only Pricing is a benefit you can use to give your members special discounted pricing on specific products or collections.**

{% hint style="warning" %}
Member Only Pricing can be set up using either Shopify Functions or a Shopify Script. We recommend using the Shopify Functions, since Scripts will be deprecated in 2026.
{% endhint %}

#### To set up Member Only Pricing:

1. How you will set this benefit up depends on a few factors.&#x20;
   * **Recommended:** continue to step 2 to continue with instructions using Shopify Functions.
   * If you are already on Shopify Plus, you might already have the Shopify Script Editor app installed on your store. Though we recommend using Shopify Functions for this benefit, [click here](/help-center/advanced-guides/shopify-scripts/member-only-pricing) for installation using Scripts.&#x20;
2. Click on the Benefits tab in Inveterate, and then click on Member Only Pricing.
3. Enter the name of the benefit - this is what the customer will see.
4. Enter the description of the benefit.  This is where you describe the special pricing available to your members.
5. Upload the icon that you want to use.  See below for a template you can use.
6. Configure the discount amount - this discount percentage will be automatically applied when members purchase the products of your choice
7. Select the collection that member only pricing will be applied to.  Only products in this collection will be discounted.
8. Select whether you want to set up the benefit as a Function or Script. If you select Function, nothing further is required.
9. If you use a Script, copy the script and paste it as a new script in the Shopify Scripts app.  Select "Blank Template" from the script templates option when setting up. Click "Save + Publish" in the Shopify Scripts app.
10. Select whether Member Only Pricing will combine with other discounts in your store.
11. If using the Functions version of the benefit, configure the "Applies before checkout" setting to your needs - enabling this feature will give the customer Member Only Pricing on the first order that they place, when the membership product is in-cart. If left disabled, they will receive Member Only Pricing on all subsequent orders after the initial membership purchase.&#x20;
12. Save the benefit settings in Inveterate.
13. Enable the benefit in Inveterate.

{% hint style="info" %}
[Click here](/help-center/advanced-guides/shopify-scripts/member-only-pricing) for the advanced Shopify Script documentation for more info on how to customize front end messaging.
{% endhint %}

{% file src="/files/PXDwwOxbdDJXExG6s1CE" %}
Member Only Pricing Benefit Icon Template
{% endfile %}

#### Download the PDF below for step-by-step instructions

{% file src="/files/IWZ9l5pnZDv3B8UVl6oS" %}


# Access Based Benefits

**Access Based Benefits allow you to give your members early or exclusive access to specific Shopify collections.**

Accels based benefits can have different configurations across your tiers. For example, you can give access to a specific collection to your Gold tier, but not your Silver and Bronze tiers. Inveterate handles the tier-specific logic, so you only have to configure each benefit for each specific tier once.

{% hint style="info" %}
Marketing Tip: Access Based benefits provide a sense of exclusivity to your members - make them feel special with advanced or exclusive access to new product drops or limited releases.
{% endhint %}

{% content-ref url="/pages/pFMf1l1qSOiqImzcPXwb" %}
[Early Access](/help-center/guides/program-setup/benefits/access-based-benefits/early-access)
{% endcontent-ref %}

{% content-ref url="/pages/gVnRluHoMZFdDlAby4jJ" %}
[Exclusive Access](/help-center/guides/program-setup/benefits/access-based-benefits/exclusive-access)
{% endcontent-ref %}


# Early Access

**Early Access is a benefit that allows you to give your members a chance to browse and purchase specific collections before your non-member customers.**

{% hint style="info" %}
Pro Tip: You can customize this workflow directly within the app embeds feature found in the **Theme Editor in Shopify.** You can choose whether you'd like to redirect non-members directly to your **Sign Up Landing Page**, or display a popup promoting your membership first.
{% endhint %}

{% hint style="warning" %}
If your theme utilizes a *quick buy* feature, it will require custom code to prevent customers from purchasing protected products.[ See here ](https://help.inveterate.com/dev/reference/storefront/properties)for more information about code available to help you accomplish this.
{% endhint %}

{% hint style="warning" %}
Make sure you set up the Early Access collection in Shopify before you begin these steps in Inveterate. All changes to the collection must be made in Shopify.
{% endhint %}

**To set up early access:**

1. Click on the Benefits tab in Inveterate, and then click on Early Access.
2. Enter the name of the benefit - this is what the customer will see.
3. Enter the description of the benefit.  This is where you describe how the early access benefit will work to your members.
4. Upload the icon that you want to use.  See below for a template you can use.
5. Save the benefit info before moving on to creating a campaign.
6. Enter a title for your early access campaign.&#x20;
7. Select the collection that this early access campaign will apply to.
8. Set the start and end dates for the early access campaign.
9. Save the benefit settings.
10. Enable the benefit.

{% hint style="info" %}
Your campaigns are all controlled within Inveterate.  Click into your saved campaigns and you will be able to adjust them all individually.
{% endhint %}

{% hint style="info" %}
Campaigns will appear as each Expired, Scheduled or Active in the benefit menu.
{% endhint %}

![](/files/2wY0PjL8SvvDREPQHiv2)

{% file src="/files/xguTlIn1T0jkHNyP6LpY" %}
Early Access Benefit Icon Template
{% endfile %}

#### Download the PDF below for step-by-step instructions

{% file src="/files/jo3PgVArkAjDzVbpmWfW" %}

{% embed url="<https://youtu.be/yDF1fCm9iK0>" %}


# Exclusive Access

**Exclusive Access is a benefit that allows you to give your members a product collection that is only available to them and not to the general public.** &#x20;

{% hint style="warning" %}
You can only have one Exclusive Access collection active at a time.
{% endhint %}

{% hint style="warning" %}
If your theme utilizes a *quick buy* feature, it will require custom code to prevent customers from purchasing protected products.[ See here ](https://help.inveterate.com/dev/reference/storefront/properties)for more information about code available to help you accomplish this.
{% endhint %}

{% hint style="warning" %}
Make sure you set up the Exclusive Access collection in Shopify before you begin these steps in Inveterate.  All changes to the collection must be made in Shopify.
{% endhint %}

**To set up exclusive access:**

1. Click on the Benefits tab in Inveterate, and then click on Exclusive Access.
2. Enter the name of the benefit - this is what the customer will see.
3. Enter the description of the benefit.  This is where you describe how the exclusive access benefit will work to your members.
4. Upload the icon that you want to use.  See below for a template you can use.
5. Save the benefit info before moving on to creating a campaign.
6. Enter a title for your early access campaign.&#x20;
7. Select the collection that this exclusive access campaign will apply to.
8. Save the benefit settings.
9. Enable the benefit.

{% hint style="info" %}
You can change the Exclusive Access collection at any time by adjusting it in Shopify.  Any changes you make in Shopify are synced to your membership program in Inveterate.
{% endhint %}

{% file src="/files/O4ognBC9MOX6nQgsnBjz" %}
Exclusive Access Benefit Icon Template
{% endfile %}

#### Download the PDF below for step-by-step instructions

{% file src="/files/MByBoZcZVi3bcAqlrgHP" %}

{% embed url="<https://youtu.be/yFVPAl5iDVs>" %}


# Gift Based Benefits

**Gift Based Benefits allow you to give your members a free product as a gift when signing up for your membership.**

{% hint style="info" %}
Marketing Tip: Offering a a free gift with sign up can help boost program conversion rate and is also a great way to get some of your lesser-known or newer products into hands of members.
{% endhint %}


# Free Gift At Signup

Free Gift At Sign Up is a benefit that allows you to select one product from your catalog that your members will receive for free when they sign up for your program.

This benefit will automatically add whichever product you choose to the user's cart alongside the membership product, and will make the price of this product $0. If your gift product has variant options, the customer will have a chance to make their selection once the gift has been added to cart.

{% hint style="warning" %}
Free Gift At Sign Up can be set up using either Shopfy Functions or a Shopify Script. We recommend using the Shopify Functions, since Scripts will be deprecated soon.
{% endhint %}

{% hint style="warning" %}
Inveterate does not change the shipping settings in Shopify for this benefit. You will need to review and adjust your shipping settings if you want to charge shipping for the free gift, ship the free gift for free, etc.  Your Shopify shipping profile will control this.
{% endhint %}

**To set up Free Gift At Signup:**

1. Click on the Benefits tab in Inveterate, and then click on Free Gift With Signup.
2. Enter the name of the benefit - this is what the customer will see.
3. Upload the icon that you want to use.  See below for a template you can use.
4. Enter the description of the benefit.  This is where you describe how the Free Gift benefit will work to your members.
5. Select the product that you will give for free with signup from the menu.
6. Select whether you want to set up the benefit as a Function or Script. If you select Function, nothing further is required.
7. If you use a Script, copy the script and paste it as a new script in the Shopify Scripts app.  Select "Blank Template" from the script templates option when setting up. Click "Save + Publish" in the Shopify Scripts app.
8. Copy the script generated by Inveterate.
9. Navigate to your Shopify store and open the Script Editor app.
10. Make a line item new script from a blank template.
11. Paste the Inveterate script, making sure to delete any code that was generated by Shopify when you created the new script.
12. Save and publish the script in Shopify. *The script will not be active until you enable the benefit from Inveterate.*
13. Navigate back to the Free Gift With Signup benefit page in Inveterate.
14. Select whether you want to allow the Free Gift benefit to combine with other discounts in your shop.
15. Save the benefit settings.
16. Enable the benefit.

**To test the script in your store**

After you have saved and enabled the benefit - navigate to your website's memberhsip page and add the membership to cart. You will see the product also added to cart with the price updated to $0.00.

{% hint style="warning" %}
The Free Signup Gift works by default when members join through the **"Join" button** on the `/community/membership` page. This ensures the correct product is pulled from your Inveterate settings.

If you're customizing this flow, make sure your theme code references the correct gift product. Custom setups may require support from your theme developer.
{% endhint %}

**Gift Products with Variants**

Gift products with variants are now fully suppored by Inveterate. When you offer a gift with variant options such as size and color, the member will see a popup when they add the membership product to cart. Within this popup they will be able to select their variant options.

Inveterate supports gifts with multiple variants.

<figure><img src="/files/HMBQ1Q7gLv3G0Gg6QMcl" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Free Gift at Signup benefit is confirmed to work with [Shopify Bundles](https://apps.shopify.com/shopify-bundles?st_source=autocomplete)!&#x20;
{% endhint %}

####

#### Download the PDF below for step-by-step instructions

{% file src="/files/pJH9dpiDIw9aG44pFBmx" %}


# Landing Page

With our easy to use, out-of-the-box landing page generator, you can create a compelling landing page that fits your brand's aesthetic, and has all of the selling points for your membership program.

The landing page is one of the most important pieces of your membership program.  It is where prospects read all about your benefits and the value they will get, and where they add the membership product to cart and move to checkout.

We recommend reviewing the landing pages of some of our favorite membership programs before you build your own:

**Glamnetic:** [**https://glamnetic.com/community/membership**](https://glamnetic.com/community/membership)

**Sunday Swagger:** [**https://sundayswagger.com/community/membership**](https://sundayswagger.com/community/membership)

{% content-ref url="/pages/LGsya4sMFoh3e4SGlZxL" %}
[About The Landing Page](/help-center/guides/program-setup/landing-page/about-the-landing-page)
{% endcontent-ref %}

{% content-ref url="/pages/pDJw8u8SvulJZL7GlThl" %}
[Configuring the Landing Page](/help-center/guides/program-setup/landing-page/configuring-the-landing-page)
{% endcontent-ref %}

{% content-ref url="/pages/Mx2dajSxYkF3Wr31jf2G" %}
[Adding the Landing Page to Your Store](/help-center/guides/program-setup/landing-page/adding-the-landing-page-to-your-store)
{% endcontent-ref %}


# Landing Page Options

Set up your Inveterate membership landing page. Choose the ready-to-use template or build a custom page with our APIs for full flexibility.

**Overview**\
When you install Inveterate, you’ll have two options for your membership landing page:

1. **Out-of-the-box landing page** – quick to set up, no coding required, but limited customization.
2. **Custom landing page** – highly flexible, but requires development work and use of Inveterate APIs.

***

### Option 1: Out-of-the-Box Landing Page

* **Ready to go** immediately after setup.
* Includes the default membership signup and information layout.
* **Best for merchants** who want speed and simplicity.
* **Limitations:**
  * Limited design customization.
  * Layout and elements are standardized.

&#x20;See setup steps for the out-of-the-box landing page:

{% content-ref url="/pages/pDJw8u8SvulJZL7GlThl" %}
[Configuring the Landing Page](/help-center/guides/program-setup/landing-page/configuring-the-landing-page)
{% endcontent-ref %}

***

### Option 2: Custom Landing Page

* **Full control over design and layout.**
* Ideal for merchants who want the landing page to match their brand perfectly.
* Requires adding your own code and integrating with Inveterate’s APIs.

#### What you’ll need to implement:

* **Add to Cart button** for membership purchase.
* **Membership display logic** to show benefits, tiers, or pricing.
* **API calls** to ensure proper checkout flow and membership enrollment.

#### Developer Requirements

* Familiarity with Shopify Liquid, theme customization, and JavaScript.
* Ability to work with REST or GraphQL APIs.

See implementation guide for custom landing pages:

<https://help.inveterate.com/dev/stack-reference-docs/storefront/customizations/add-to-cart-button>

***

✅ With these two options, you can choose between speed and simplicity or full control and flexibility for your membership landing page.


# About The Landing Page

#### **The Landing Page is composed of 5 different modules.  Each of these must be configured before you can publish your landing page.**

{% hint style="info" %}
This section will review the different parts of the landing page.  The [next section](/help-center/guides/program-setup/landing-page/configuring-the-landing-page) will teach you how to configure each module for your membership program.
{% endhint %}

1. The **Hero** introduces your prospects to your membership
2. The **Testimonial** is an area for you to showcase a recent customer review
3. The **Benefits** section is where all of the information you have configured for [your benefits](/help-center/guides/program-setup/benefits) will be displayed
4. The **CTA** section is where your customers will click to sign up for your membership program
5. The **FAQ** is where you curate a set of questions and answers about your membership program

**Each Landing Page module has two tabs, Content and Design**

The content tab controls all of the copy within each module.  Make sure to edit this according to your brand and membership program policies.

![Landing Page Content Tab](/files/2UXWoLTG6UdcAmLYsqZ8)

The design tab controls the color options for each module.  Make sure to edit these according to your brand colors.

![](/files/MQ8Lmy6e1n5qV9GFKYde)

{% hint style="info" %}
Pro Tip: The landing page design is dynamic between desktop and mobile devices
{% endhint %}

You do not have to upload separate content for each display, Inveterate handles this for you in the background.  You can click on the display toggle shown below to see both desktop and mobile previews.

![Preview Style Selector](/files/QlhuZC3XGS1LNBVwD8FC)


# Configuring the Landing Page

**Each of the following Landing Page modules needs to be set up before your membership program can be published.  Follow this guide to set up your content and design.**

{% hint style="info" %}
**Pro Tip:** Use this [contrast checker tool](https://coolors.co/contrast-checker/112a46-acc8e5) to make sure your text color is readable against your background color
{% endhint %}

{% content-ref url="/pages/f4tmXPHXR754oInjdrYV" %}
[Hero](/help-center/guides/program-setup/landing-page/configuring-the-landing-page/hero)
{% endcontent-ref %}

{% content-ref url="/pages/5JsmEsJBQ7g8tj2qRunH" %}
[Testimonial](/help-center/guides/program-setup/landing-page/configuring-the-landing-page/testimonial)
{% endcontent-ref %}

{% content-ref url="/pages/LO3c0MECVMFm9W2xLITz" %}
[Benefits](/help-center/guides/program-setup/landing-page/configuring-the-landing-page/benefits)
{% endcontent-ref %}

{% content-ref url="/pages/XNyaFVNgCvFYi5F1jYys" %}
[CTA](/help-center/guides/program-setup/landing-page/configuring-the-landing-page/cta)
{% endcontent-ref %}

{% content-ref url="/pages/tFvF675Y94z7otgG1EGP" %}
[FAQ](/help-center/guides/program-setup/landing-page/configuring-the-landing-page/faq)
{% endcontent-ref %}


# Hero

**Content**&#x20;

1. Enter the title for your program, this should be a unique and branded membership name
2. Enter the subtitle.  This is body copy that gives your customers an overview of what they can expect from signing up for your membership program.
3. Enter the sign up CTA.  This is the copy that will appear inside of the CTA button that users click to sign up for your membership program.

**Design**

1. Select a background color for the hero module.  This color will appear behind all of your text.
2. Select your text color.  Make sure this color is legible against your background color.
3. Select your Primary Button background color.  This is the color of your CTA button.
4. Select your Primary Button text color.  This is the color of the text inside your CTA button.
5. Select your Secondary Button background color.  This is the color of the Login link.

#### Download the PDF below for step-by-step instructions

{% file src="/files/A4O31uGtkKQvNcMs8jCv" %}


# Testimonial

**Content**&#x20;

1. Enter the content for the testimonial.  This should be the review that your customer has given you.
2. Enter the review author name.&#x20;

**Design**

1. Select a background color for the testimonial module.  This color will appear behind all of your text.
2. Select your text color.  Make sure this color is legible against your background color.

#### Download the PDF below for step-by-step instructions

{% file src="/files/o7XSjkxzTN2IJAgFFNTq" %}


# Benefits

**Content**&#x20;

You are able to edit the title for the benefits module.  The title should be an overview of what benefits are included with a membership.

Below the title you will see a list of membership benefits, organized by each individual tier.  Ones you have configured and enabled will be visible on your landing page.

You can click into each benefit in this menu to edit the title, description and icon.

On the landing page, users will be able to click on the title of each tier and see each one's specific benefits.

**Design**

1. Select a background color for the benefits module.  This color will appear behind all of your icons and text.
2. Select your text color.  Make sure this color is legible against your background color.

#### Download the PDF below for step-by-step instructions

{% file src="/files/soUKZAQqS9S1XhUaBvxJ" %}

{% embed url="<https://youtu.be/zbo8ws_0VzM>" %}


# CTA

**Content**&#x20;

1. Enter the title for the CTA module.  The title should welcome customers to join the membership using branded messaging.
2. Enter the subtitle.  This body copy should reinforce that customers receive the benefits listed below when they sign up for the membership.
3. Click on the title of the tier you want to edit and enter bullet points that outline the top benefits of your membership program.  These are callouts that show on each tier's CTA card, so they should showcase your top incentives.
4. Enter the CTA copy.  This is the text that appears on the CTA button.

**Design**

The Design module is split up between your Primary CTA card and the rest of your CTA cards, giving you the option of styling the primary card separately from the rest. To set your primary card, click this button in the Content tab.

In the design tab you are able to set custom colors for the Primary and Secondary cards.

<div data-full-width="true"><figure><img src="/files/dfxtKY3LpqsVMtWld2FS" alt=""><figcaption></figcaption></figure></div>

#### Download the PDF below for step-by-step instructions

{% file src="/files/qM5XAhl2nf29KnfG85Sy" %}

{% embed url="<https://youtu.be/4NFhUniYhkA>" %}


# FAQ

**Content**&#x20;

1. Enter the title for the FAQ module.
2. Enter the subtitle for the FAQ module.&#x20;
3. Enter all of the FAQs that you want to appear in this module.  Inside of each content drawer you will see fields for each Question and Answer.  You can add more questions with the button at the bottom

**Design**

1. Select a background color for the FAQ module.  This color will appear behind all of your text.
2. Select your text color.  Make sure this color is legible against your background color.
3. Select your border color.  This is the color of the separators between each FAQ question.

#### Download the PDF below for step-by-step instructions

{% file src="/files/hCVRhDTW8Wxamyc423sn" %}

{% embed url="<https://youtu.be/UtIhAsrdNM8>" %}


# Adding the Landing Page to Your Store

**The most effective way to display your landing page is to create a link directly in your main navigation.**

1. Navigate you your Shopify admin
2. Click "Navigation" under the "Online Store" menu
3. Select the navigation menu where you want to add your membership URL
4. Add the URL "/community/membership" and give the nav point a name
5. Save and publish the navigation changes - this will publish the landing page to your storefront

{% hint style="warning" %}
Make sure you have fully configured your benefits and finished building your landing page before you add it to your navigation.  Customers will be able to go to your page as soon as you link it.
{% endhint %}

{% hint style="info" %}
Pro Tip: You can link to your membership page from any where on your storefront, from emails, SMS and more.
{% endhint %}

#### Download the PDF below for step-by-step instructions

{% file src="/files/E7Zbo0I6td961eHhWuv7" %}

{% embed url="<https://youtu.be/2Y9UKi6ap_k>" %}


# Landing Page Versioning

### About Versioning

Landing page versioning allows you to create multiple versions of your landing page and publish the one you select. This allows you to make and save landing page adjustments to be launched at a future date, or allow you roll back to previously saved versions.

{% hint style="danger" %}
Landing page versions are never autosaved, they must be manually saved in order to be able to roll back to previous versions.
{% endhint %}

### How To Create Landing Page Versions

1. In the landing page editor, use the "More Actions" dropdown to select "Duplicate"&#x20;

   <figure><img src="/files/LPQPKwL2ypZby96DSVGY" alt=""><figcaption></figcaption></figure>
2. Give your duplicate a name
3. Make changes to your new duplicate and click "Save" to save your changes as a new version
4. After clicking "Save" you will see all of your saved versions in the dropdown. Select the one you'd like from the menu and click "Set As Default" to publish it to your store&#x20;

   <figure><img src="/files/kwgjudHMhAQ9pQ3Lh7zA" alt=""><figcaption></figcaption></figure>

### FAQs

Q: Do landing page versions autosave?

A: No, they must be saved manually in order to be saved as different versions

***

Q: Can I schedule a landing page to be published in advance?

A: No, landing page versions must be published manually

***

Q: Can I edit the older versions I have saved?

A: Yes, all save versions can be edited, saved and published as needed

***

Q: What is the 'default' landing page?

A: The 'default' landing page is the one that is currently live on your store

***

Q: Is there a limit to how many versions I can have saved?

A: You can save up to 5 versions. After 5, you'll need to delete older versions in order to save new ones.


# Adding Custom CSS Styling

The landing page generated by Inveterate is not a Shopify page, therefore you're unable to modify the code directly. But since it still loads on the front-end within your theme you're able to add code to a shared layout file that will affect the page.

To add custom CSS to the landing page:

1. Create a new file in the snippets/ folder. This file can be named whatever you'd like, we recommend using `inveterate-styles.liquid`
2. In the file you created, add an HTML `<style>` tag
3. Wrap the style tag in `{% if request.path == '/community/membership' %}`  - this prevents the styles from leaking out to other pages
4. Render the snippet in layout/theme.liquid anywhere within the `<head>` HTML element: `{% render 'inveterate-styles' %}`
5. Then back in the snippet file you should be able to write any custom CSS for the landing page

**A better view of steps 2 & 3 inside of `inveterate-styles.liquid` :**

```
{% if request.path == '/community/membership' %}
  <style>
    // Add custom CSS here
  </style>
{% endif %}
```


# Messaging

**Inveterate sends messages to your members that are triggered by events such as signing up for your membership, receiving credits, or or successful referral notifications.**

You can customize your messages by adding your company logo and by adjusting the recommended copy loaded in by Inveterate.&#x20;

### **Different Types Of Messages:**

**Account**

Welcome is sent to a member as soon as they sign up for a membership.  This welcomes them to the program.

Rebill Notice is sent to customers when they are due to renew their subscription.&#x20;

* If the billing frequency is annually, the email notification is to be sent 15 days before their renewal.
* If the billing frequency is not annually, the email notification is to be sent 3 days before their renewal.

**Credits**

Credits Earned is sent to a member whenever they earn credits according to your program rules.

Credits Redeemed is sent to a member whenever they redeem their credits on your store.

Anniversary Credits is sent to a member when they earn anniversary credits according to your program rules.

**Referrals**

Referral Completed is sent to a member when they successfully complete a referral to your program.

**At Risk**

Credit Reminder is sent to a member once they reach the 'at risk threshold' you set in your [messaging settings](/help-center/guides/program-setup/messaging/messaging-settings).  This reminds them that they have not redeemed any credits in your store for a certain number of days.  For example - if you set a 90 day at risk threshold, the member will receive an email after 90 days of not redeeming any credits.

**The sections below will teach you how to set up the content for each message and how to update global email styling.**

{% content-ref url="/pages/TvdQJnlXnaZrYpnDLymc" %}
[Content](/help-center/guides/program-setup/messaging/content)
{% endcontent-ref %}

{% content-ref url="/pages/gp8YZNhmhYp29UwYIDGC" %}
[Messaging](/help-center/guides/program-setup/messaging)
{% endcontent-ref %}


# Content

**The content menu allows you to customize your messaging copy and enable the different messages that will be sent to your members.**

{% hint style="warning" %}
At this time you can only edit the email subject lines.  Our product roadmap includes an update where you can also edit body copy - stay tuned!
{% endhint %}

#### The following variables are available for use within your copy

> {merchant\_name}: This is the **brand name** that you set within the [Inveterate settings menu](https://dashboard.inveterate.com/settings)
>
> {program\_name}: This is the **name of the Membership Product** that you set within the [membership product menu in Inveterate](https://dashboard.inveterate.com/membership-product)
>
> {first\_name}: This is the first name of the member which is collected automatically during signup

To set up your program messaging:

1. Navigate to the Messaging Content tab in your inveterate dashboard.
2. Select the message that you want to edit/enable.
3. Edit the subject line if you wish.  We have pre-loaded copy that you can use out of the box.
4. Save changes if you made any.
5. Send a test email to review in your inbox.
6. Press "Enable" to turn the message on.

{% hint style="info" %}
All messages are turned off by default.  You must enable each one that you want sent to your members.
{% endhint %}

#### Download the PDF below for step-by-step instructions

{% file src="/files/pQPWnurOKaWZV8T8iP00" %}

{% embed url="<https://youtu.be/B9_NEvcTehU>" %}


# Messaging Settings

**The settings menu allows you to customize the different global aspects of your messages.**

1. Upload your logo.  Inveterate will display this image on top of all outgoing messages.  For best results, upload a PNG image with a transparent background.
2. Set the at-risk trigger threshold.  This is the number of days it has been since the member has used any of their credits.  The "At Risk Trigger Reminder" message is sent at this time.
3. Set the button text color.  This is the color of the text inside the CTA button shown in your messages.
4. Set the button background color.  This is the color of the CTA button shown in your messages.

#### Download the PDF below for step-by-step instructions

{% file src="/files/JRI0pLzDSrRTBHsib1P5" %}

{% embed url="<https://youtu.be/Oih9UgENoUw>" %}


# Members

**Members make all the magic happen! This guide will walk you through the ins and outs of how to manage your members and review your member data.**

The Members guide is split into two parts:

**Manage Members** will teach you how to keep your members and data organized, how to export data, make segments, etc.

**Member Profile** will run you through the individual member profile page and teach you how to adjust their credits, personal info, respond to data removal requests etc.

{% content-ref url="/pages/uFGVZm12Bi94LVjgU0u9" %}
[Manage Members](/help-center/guides/members/manage-members)
{% endcontent-ref %}

{% content-ref url="/pages/JNpQaL0i7OxkZ53v0Rf2" %}
[Member Profile](/help-center/guides/members/member-profile)
{% endcontent-ref %}


# Member Portal

The member portal is where your members see information about their membership, redeem credits, and view available coupon codes.

{% hint style="info" %}
The out-of-box native membership landing page lives at **https\://{yourShopifyUrl}/community/membership.** When your member logs in, their customer portal lives at this same UR&#x4C;**.** If you're using a custom landing page and need to hide this URL from SEO results, you can find instructions on how to do so [here](https://help.shopify.com/en/manual/promoting-marketing/seo/hide-a-page-from-search-engines).
{% endhint %}

**The member portal is the home base for all members in your program. Any action they need to take relative to their membership is done from this page.**

<div data-full-width="true"><figure><img src="/files/LwlZSqpwn80lXJNMPrsF" alt=""><figcaption></figcaption></figure></div>

{% hint style="info" %}
The member portal is broken up into various sections. Each section is dynamically turned on or off, depending on which benefits you have enabled. For example, the Referral Link module will only appear if you have enabled it from the Benefits menu.
{% endhint %}

### **Member Portal Section Overview**

**Tier Upgrage/Downgrade Menu**

Your members have the ability to upgrade and downgrade between the different tiers you create for your program. In the member portal, there is a "Change Plan" button that brings them to the Upgrade/Downgrade page.

Billing behavior differs based on whether your members are upgrading/downgrading to paid or free tiers

* When a member upgrades to a paid tier, the new membership begins immediately
* When a member downgrades to a paid tier, the new membership begins instantly
* When a member downgrades to a free tier, the new membership will take place based on the cancellation poilcy you configure within your settings

<div data-full-width="true"><figure><img src="/files/bcivxabHx23WogLz5thH" alt=""><figcaption></figcaption></figure></div>

#### **Credit Redemption Module**

<figure><img src="/files/qpZNkiudsmt014UK6oGg" alt=""><figcaption></figcaption></figure>

The credit redemption module is where members redeem credits to use on orders in your store. When a member redeems credits, the code is automatically generated within the member portal, so your members never have to leave your site while shopping.

{% hint style="info" %}
If your store is on Shopify Plus, then your members can also redeem credits from within the checkout flow.  [Click here for more info](/help-center/guides/program-setup/benefits/credit-based-benefits/credit-checkout-extension#how-to-enable-the-credit-checkout-extension).
{% endhint %}

#### **Referral Credits Module**

<figure><img src="/files/LK7BU9uloAuKDYH9P62O" alt=""><figcaption></figcaption></figure>

The referral credits module is where members copy their referral link to send to their friends, and also see a record of any completed referrals they may have completed. Members are able to copy the code to send directly via email, SMS, etc., or they can automatically share it with their friends via email and Twitter from the dashboard.

#### Credit Details Table

<figure><img src="/files/v4lmSYPB8kAi6Lmf33E2" alt=""><figcaption></figcaption></figure>

The credit details module is where members can view a record of any credit-based transactions that have occurred throughout the life of their membership. In this section, members can see details about credits they have earned, redeemed, and credits that have expired.

#### Membership Discounts Table

<figure><img src="/files/HsObrEHpUmMZiTHb67Pt" alt=""><figcaption></figcaption></figure>

The membership discount table is where members are able to see the details of every discount that is available to them. From this table they are able to see the code, a description of the code's value/applicable uses, the expiration date, and then a link to automatically apply the discount to their order. When a user clicks on the "Apply to order" link, the code will automatically be applied to their order when they enter the checkout flow.


# Manage Members

**Managing your members is an essential part of running a successful membership program.**

Throughout the course of your program you will run into situations where you need to edit a member profile, delete a member's personal data, or even apply extra credits to their account.  All of these actions can be done from the Members page in Inveterate.

The guides below will run you through the key steps in making sure your program is a success.

{% content-ref url="/pages/Wjj5q5xSHo4sBnQdaN4R" %}
[Members Page](/help-center/guides/members/manage-members/members-page)
{% endcontent-ref %}

{% content-ref url="/pages/fNYNeZZiJW7hkThQIKCC" %}
[Creating Segments](/help-center/guides/members/manage-members/creating-segments)
{% endcontent-ref %}

{% content-ref url="/pages/7JJWVsLbJfweVluXA5DU" %}
[Exporting Member List](/help-center/guides/members/manage-members/exporting-member-list)
{% endcontent-ref %}


# Canceling Members

**Cancel Members From The Inveterate Member Page**

As a merchant you are able to cancel active members from within the dashboard by clicking on the "Cancel" button located at the top right of each member page.

<figure><img src="/files/4suIHwLAZPt9BayTiy6g" alt=""><figcaption></figcaption></figure>

Clicking the "Cancel" button will show you a popup where you will decide if the member will retain access to their benefits until the end of their current billing period, or if they will be instantly cancelled and lose all access to their benefits.

<figure><img src="/files/YEiipIeV2yJeWsjE37kX" alt=""><figcaption></figcaption></figure>

If a member is cancelled immediately, they will show as fully cancelled within the dashboard. If the member is retaining benefit access through the current billing period, then they will show as "pending cancellation".

<figure><img src="/files/XKpeIfLgDSA9puLF88D4" alt=""><figcaption></figcaption></figure>

After cancelling a member, you now also have the ability to reactivate them from the dashboard. This will bring the member back to the exact same state they were in before they were cancelled.


# Tier Upgrades and Downgrades

**Tier Upgrage/Downgrade Menu**

Your members have the ability to upgrade and downgrade between the different tiers you create for your program. In the member portal, there is a "Change Plan" button that brings them to the Upgrade/Downgrade page.

Billing behavior differs based on whether your members are upgrading/downgrading to paid or free tiers

* When a member upgrades to a paid tier, the new membership begins immediately
* When a member downgrades to a paid tier, the new membership begins instantly
* When a member downgrades to a free tier, the new membership will take place based on the cancellation poilcy you configure within your settings

{% hint style="info" %}
You are currently not able to manually upgrade or downgrade members through the member portal. You should instruct your members to upgrade or downgrade their membership through the member portal.
{% endhint %}

<div data-full-width="true"><figure><img src="/files/bcivxabHx23WogLz5thH" alt=""><figcaption></figcaption></figure></div>


# Members Page

On the [members page](https://dashboard.inveterate.com/customers), you'll find a sortable table of members displaying baseline metrics to help you categorize members according to your current goals.   From this page you can review member data, find a specific member to edit their profile, or even export member data for reporting.&#x20;

**The Basics:**

* Sort your member data by using the drop down, or by clicking any of the available column headers.
* Click on a member's name to access their [member profile](/help-center/guides/members/member-profile)
* If you're looking for more granular member segments, use the "Filter by" dropdown and select the metric you're looking for. Saving that segment will add a [Shopify Customer Tag](/help-center/tag-information/customer-tags) to those members. You can then use those Shopify Customer Tags across any apps in your tech stack that allow you to leverage Shopify Tags.
* [Export your member data](/help-center/guides/members/manage-members/exporting-member-list) using the "Export" button. The export button will download a .csv of all your members so you can use that data to build different cohorts, or upload that data to other apps.

![](/files/lrLdC4KBi3DCdUayif9P)


# Creating Segments

Use the filtering tool to create member segments.

Creating segments is a great way of organizing your members and making sure you're taking extra special care of your VIPs.  You can filter by all of the member data available to you and create custom segments to save within Inveterate, [export](/help-center/guides/members/manage-members/exporting-member-list) for reporting or sync with other platforms.

If you're looking for more granular member segments, use the "Filter by" dropdown and select the metric you're looking for. Saving that segment will add a [Shopify Customer Tag](/help-center/tag-information/customer-tags) to those members. You can then use those Shopify Customer Tags across any apps in your tech stack that allow you to leverage Shopify Tags.

{% hint style="info" %}
Creating a member segment will assign a tag in Shopify to all members who qualify for that segment. That tag will allow for advanced personalization within Shopify, and any apps that use Shopify tags for audience purposes. These tags are dynamic.
{% endhint %}

**To create a member segment:**

1. On your members page, go to the **Filter by** drop down, and choose the metric category you want to sort your members by, and select the appropriate variables.
2. If you want to select additional metrics, the **Filter by** drop down menu will appear to the left. This allows you to stack variables. Your members page will automatically filter out members that do not satisfy the current rules.
3. Once you've added all of the variables for this member segment, click **Save segment** and name the segment.&#x20;
4. The segment will now appear on your left hand navigation as a sub item under **Members**.&#x20;
5. You can choose this segment in Performance to see segment specific analytics.
6. You can delete a segment by going to the three dots next to the segment name found next to the Segment name.&#x20;

**Download the PDF below for step-by-step instructions**

{% file src="/files/oaYRSdhb3IhGIFKp15TX" %}

{% embed url="<https://youtu.be/fMzVLT5AfCo>" %}


# Exporting Member List

{% hint style="info" %}
Pro Tip: You filter and export your member data as a CSV for reporting, or [upload it to Facebook to create a Custom Audience](https://www.facebook.com/business/help/606443329504150?id=2469097953376494)
{% endhint %}

Exporting your list data is easy with Inveterate.  Data is exported in CSV format with all member data that you see in the dashboard.

1. Navigate to the Members tab in Inveterate
2. Select the segment you want to export (or select All Members)
3. Click Export in the top right corner

**Download the PDF below for step-by-step instructions**

{% file src="/files/vWl3iLiTetzAGGlmIhiu" %}

{% embed url="<https://youtu.be/C9ARejp8Wpw>" %}


# Member Profile

The Member Profile is where you control settings and credits for each individual member who has signed up for your program.  This will include both active and inactive (expired) members.

Almost all questions or inquiries from your members about their account can be managed through their profile.

Follow the guides below to learn how to manage your individual members

{% content-ref url="/pages/PT5UJf7wGDOUgjgFeg5O" %}
[Fundamentals](/help-center/guides/members/member-profile/fundamentals)
{% endcontent-ref %}

{% content-ref url="/pages/NpUQF2Sge9vO2ibrAPwR" %}
[Adjusting Credits](/help-center/guides/members/member-profile/adjusting-credits)
{% endcontent-ref %}

{% content-ref url="/pages/nTH49V6Y72u4dVagCZuk" %}
[Anonymize Members](/help-center/guides/members/member-profile/anonymize-members)
{% endcontent-ref %}

{% content-ref url="/pages/UIxqRdJNu4bQh1WqR1O4" %}
[Change Membership Renewal Date](/help-center/guides/members/member-profile/change-membership-renewal-date)
{% endcontent-ref %}

{% content-ref url="/pages/vYJQZqYFH1mE1urCIIXA" %}
[Adjust Member Tier](/help-center/guides/members/member-profile/adjust-member-tier)
{% endcontent-ref %}


# Fundamentals

**The Member Profile page is organized into various sections, each of which controls a separate aspect of their membership.**

### **Member Overview**

The Member Overview section gives you a high level view of each member's data history.

![](/files/QK85hX3vTW10ytsM58Lk)

* Average order value (AOV) tracks the average dollar amount spent each time this member places an order.
* Revenue is the total amount spent by a member since they joined the program.
* Membership Length is calculated by counting the number of days since a member joined the program.
* Total Credits Earned shows how many credits a member has earned since becoming a member of the program
* Last Purchase Date show the last time that a member purchased a product from your store.
* Subscription Renewal displays the next time the membership product will charge a member for being part of the program.

### **Activity**

The Activity section takes the data from the Member Overview section and breaks it down into individual transactions for you to review.

![](/files/orhaCcOJIxten9EDunKX)

* Credits Earned shows every time the member has earned credits, and which action they took to earn them.
* Credits Redeemed shows every time the member has spent their credits on your shop.
* Purchase History shows all of the orders the customer has made in your shop, whether they used credits or not.  You can click the Order ID to view the order in Shopify.
* Referrals shows how many other members have been referred to your program by this member.

### Credits

The Credits section allows you adjust the number of credits available to the member

![](/files/Gz1OPZJ7GPRdROKeVtjE)

### Profile

The Profile section allows you to view and edit the member's personal information

![](/files/ojKl7fT1my5n8Yd6ZqMq)

### Referral Information

The Referral Information section shows an overview of the member's referral history

![](/files/frdSUFSBovh4mwiOrhj7)

* Confirmed Referrals is the number of referred members this person has brought to your program.
* Referral Credits is the total number of referral credits this member has earned.
* Referred By will show the name of the other member (if any) who originally referred this member to your program.

### Notes

The notes section allows you add a text note to the member's profile.

![](/files/pdA9NQHgvM9STspO1Hnj)


# Adjusting Credits

**There may be times when you want to adjust the number of credits available to a specific member.**

#### To adjust credits for an individual member:

1. Find the member who's credits you want to adjust and navigate to their member profile.
2. Click the 'adjust credits' button on the top right.
3. To **Add** Credits: Enter the amount of credits you want to add to the existing number of credits.
4. To **Remove** Credits: Type an "-" and then enter the amount of credits you want to remove to the existing number of credits. (Eg. "-20" removes $20 worth of credits)
5. Click 'update'.

**Download the PDF below for step-by-step instructions**

{% file src="/files/an4pLHqw7gZdxBfhQH9q" %}

{% embed url="<https://youtu.be/jrAwyOVwcbc>" %}


# Anonymize Members

**Anonymizing members deletes all of that member's identifying information from Inveterate, but retains their purchase data to keep reporting intact.**

{% hint style="warning" %}
You must [cancel a membership](broken://pages/FxRR0QH5CIAKY2gHsy9p) before you can anonymize them.  You cannot anonymize an active member.
{% endhint %}

{% hint style="info" %}
Pro Tip: If you receive a Personal Data Deletion Request from a customer, all you need to do is Anonymize them in Inveterate.  This will fulfill their request instantly.
{% endhint %}

#### To anonymize a member:

1. Find the member who you want to anonymize.
2. Click the 'Anonymize' button on the top right.
3. Click 'Anonymize' in the new pop-up to confirm that you want to anonymize this member's subscription.

**Download the PDF below for step-by-step instructions**

{% file src="/files/LfH21AMTZDE9HKkQdMnl" %}

{% embed url="<https://youtu.be/Z4huU_Q2I1o>" %}


# Change Membership Renewal Date

**This guide explains how to change the renewal date for an active membership in Inveterate. You may want to do this if a customer requests to delay their next billing date, move the billing date up, aligning a member's renewals with a specific promotion, etc.**&#x20;

## Steps to change the Renewal Date

1. Log into your Inveterate Dashboard
2. Navigate to the "Members" tab in the left-hand menu
3. Search for the customer whose membership you want to update
4. Click into their member profile
5. Click "Adjust billing"
6. Use the calendar in the popup to enter in the new billing date
7. Option: You can also change the billing amount the member will pay in this same popup
8. Click "Adjust" to save the changes

<figure><img src="/files/DO2lQ5ccQ3Vy2iB6ubgs" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
This change will update the customer’s next billing date but will not affect any previous charges or membership history.
{% endhint %}

**Download the PDF below for step-by-step instructions**

{% file src="/files/4qBhF5Wy6U3rec9SLkQ1" %}


# Adjust Member Tier

The **Adjust Member Tier** action lets you manually move a member between tiers directly from their **Member Profile** in Inveterate. This is especially helpful now that Shopify no longer requires a payment method to create subscription contracts, which means merchants can remove previous limitations when moving a member from a free tier to a paid tier.

### Why this is useful

Merchants commonly use **Adjust Member Tier** to:

* **Correct tier assignment quickly** (for example, if a member was placed in the wrong tier or a support exception is needed).
* **Move members between free and paid tiers** without needing the customer to re-enroll (helpful for VIP upgrades, promos, and customer support situations).

***

### How to adjust a member’s tier

1. In your Inveterate dashboard, click **Members**.&#x20;
2. Select the member you want to update.&#x20;
3. In the member profile, click **Adjust tier**.&#x20;
4. Click the **Tier** dropdown and select the tier you want to move the member to.&#x20;
5. (Optional) Update the member’s **billing date**, or leave it as-is.&#x20;
6. Click **Adjust** to save your changes.&#x20;

#### What happens next

After saving, the member will receive an email notifying them that their tier has changed.<br>

**Download the PDF below for step-by-step instructions**

{% file src="/files/YjyS6MuJp4RDtASHS8ig" %}


# Shopify Account Pages

Shopify's new account pages allow you to add membership info to your account pages, along with adding updates membership info pages to your navigation.

### About Standalone Account Pages

Inveterate generate three dedicated membership pages that can be added to your account navigation.

#### Rewards

The rewards page shows members any information related to their benefits, including

* Spend progress towards next tier
* Available benefits
* Benefits that could be gained if member upgrades to next tier
* Credit ledger
* Membership purchase history

<figure><img src="/files/4vHQAOjlsJAnqAXw8Qby" alt=""><figcaption></figcaption></figure>

**Credits**

The credits page shows members their credit history

<figure><img src="/files/C62RBRSLBYVXavEBJYNH" alt=""><figcaption></figcaption></figure>

**Membership History**

The membership history page shows members all information related to their history as a member

<figure><img src="/files/xU1bSJgRdPYBriPnyIKq" alt=""><figcaption></figcaption></figure>

### About The Account Page App Blocks

Inveterate has three app blocks that can be added to different account pages to give their members more on their membership status as they engage with your store.

**Profile Page**

Inveterate will add a block that shows member their current tier, along with information on higher tiers and options to upgrade their membership.

<figure><img src="/files/pGsiJg0hp53GlE7vNyd3" alt=""><figcaption></figcaption></figure>

**Thank You Page**

Inveterate will add a block with a referral link that members can use to refer friends after they make a purchase.

<figure><img src="/files/ZzuZb3qq1Ul3JxQYV06s" alt=""><figcaption></figcaption></figure>

**Order Status**

Inveterate will add a block that shows the member's spending progress towards earning into the next tier, if Spend Based tiers is enabled.

<figure><img src="/files/6AIq88aLUJoLqzvbztkh" alt=""><figcaption></figcaption></figure>

### How To Configure Account Pages And Blocks

{% hint style="info" %}
If your shop still uses legacy accounts, you will need to upgrade to the new version of Shopify accounts.
{% endhint %}

**Upgrade To New Shopify Accounts**

1. Click Settings
2. Click Customer Accounts
3. Select the new customer account options and click save

<figure><img src="/files/22diWWxOKzF3BCVNLi1Z" alt=""><figcaption></figcaption></figure>

**Enable Inveterate Account Pages and App Blocks**

1. Click Settings
2. Click Checkout
3. Click Customize next to your current checkout experience
4. Navigate to the Apps menu
5. Click the + sign next to each Inveterate app block or page to add it to your site

<figure><img src="/files/wVZHWXc3rB9Qpr2fUwEl" alt=""><figcaption></figcaption></figure>

**Add The Inveterate App Blocks To Profile, Thank You and Order Status Pages**

1. From within the same checkout settings menu, navigate to the Profile page
2. Select "Sections"
3. Select the Inveterate app block and drag it into the Profile page&#x20;
4. Navigate from "Profile" to "Order Status"
5. Select "Sections"
6. Select the Inveterate app block and drag it into the Order Status page
7. Navigate from "Order Status" to "Checkout"
8. Select the inveterate app block and drag it into the Checkout page

**Add navigation links for Inveterate Account Pages**

1. Navigate to the Navigation Menu settings page
2. Select the navigation menu you wish to add the new account pages to
3. Click "Add Menu Item"
4. Select "Apps" from the menu
5. Select the Inveterate account page you wish to add to your navigation
6. Give the new nav point a name

**Click below to download a PDF with step by step instructions**

{% file src="/files/IYn2ZJaetODhBDcLrCkY" %}


# Performance

We've curated a growing list of performance metrics to help you better understand your members, membership program performance, and to help better inform on your future marketing decision!

The Performance dashboard was designed to help you get a better understanding of your members and your membership program performance by giving you customizable bird's eye view of [all important metrics](/help-center/guides/performance/performance-metrics-overview).

These metrics are all exportable so you can take your data, and analyze it however you like!

{% content-ref url="/pages/BmJfREcJIMM4iPNln3Od" %}
[Performance Metrics Overview](/help-center/guides/performance/performance-metrics-overview)
{% endcontent-ref %}

{% content-ref url="/pages/ibsU1oLuCetoxisN5QVe" %}
[Broken mention](broken://pages/ibsU1oLuCetoxisN5QVe)
{% endcontent-ref %}

{% content-ref url="/pages/bQFnTrlQw0gHTzhYbbur" %}
[Broken mention](broken://pages/bQFnTrlQw0gHTzhYbbur)
{% endcontent-ref %}

{% content-ref url="/pages/RK04ZZf7sHJgx6LnUxHN" %}
[Exporting Metrics](/help-center/guides/performance/exporting-metrics)
{% endcontent-ref %}


# Performance Metrics Overview

The Performance tab provides you with a high level view of main KPIs related to your membership program.

**Performance Metrics are organized into two sections, Memberships and Other.**

Use the guide below to get a firm understanding of all the metrics available to you within the Inveterate Performance dashboard.

### Membership

<table><thead><tr><th width="220.45035461983753">METRIC NAME</th><th width="489.70741078147904">METRIC DESCRIPTION</th></tr></thead><tbody><tr><td>Sign Ups</td><td>The total number of customers that ever signed up for membership, including those who have cancelled.</td></tr><tr><td>Active Members</td><td>The total number of customers with an active membership.</td></tr><tr><td>Cancelled Members</td><td>The total number of memberships that have been cancelled.</td></tr><tr><td>Pending Cancellation</td><td>The total number of members whose status is "pending cancellation."</td></tr><tr><td>Average Membership Length</td><td>The average length of time that members have been active.</td></tr><tr><td>Primary Cancellation Source</td><td>Were most of the cancellations initiated by the customer or by an admin of your store?</td></tr><tr><td>Primary Cancellation Source %</td><td>The percentage of cancellations initiated by the most frequent source.</td></tr></tbody></table>

### Customers

<table><thead><tr><th width="215.71963154864713">METRIC NAME</th><th width="594.4285714285713">METRIC DESCRIPTION</th><th data-hidden></th></tr></thead><tbody><tr><td>Total Credits Earned</td><td>The total amount of credits ever earned by all members, including credits that have already been spent.</td><td></td></tr><tr><td>Outstanding Credits</td><td>The total amount of unspent credits amongst all members.</td><td></td></tr></tbody></table>

<figure><img src="/files/mRjBuPWk2dmj6J02cuQX" alt=""><figcaption></figcaption></figure>


# Exporting Metrics

**You can export your performance data to a CSV to incorporate into your organization's reporting flow.**

Exporting your metrics is a great way to get a detailed daily view of your program's performance.  This granular program overview allows you to enter the data into your favorite reporting platform so you can track success as you continue to grow.

{% hint style="info" %}
[Click Here](/help-center/guides/performance/performance-metrics-overview) to for an overview of all performance metrics to help you decide what you need to export.
{% endhint %}

**To export your metrics:**

1. Navigate to the Performance tab in Inveterate.
2. Click the Export button.


# Settings

**Inveterate settings are split into two sections, your personal profile settings and your company account settings.**

**Profile Settings** is where you set your personal user information, such as your username and password.

**Password Reset** will show you how to reset your password within the Profile Settings menu.

**Account Settings** is where you set your business-level information, such as your company logo and brand name.

Follow the steps below to learn how to configure both sections correctly.

{% content-ref url="/pages/iu8FXyR5nLpKxF5FYO1l" %}
[Profile Settings](/help-center/guides/settings/profile-settings)
{% endcontent-ref %}

{% content-ref url="/pages/w0DiAlT8raexhUyw4cFd" %}
[Password Reset](/help-center/guides/settings/password-reset)
{% endcontent-ref %}

{% content-ref url="/pages/82y1DbIf9vSCc09JSwZw" %}
[Account Settings](/help-center/guides/settings/account-settings)
{% endcontent-ref %}


# Users & Access

Information for managing user accounts.

You can access the team management page by clicking Settings in the bottom left navigation and then clicking Team in the subnav on that page.

On the team management page you have the ability to do the following, depending on your permission level:

* View all current users and active invitations
* Send invitations to new users
* Remove invitations that have not been accepted
* Remove users
* Upgrade member level users to admin level

## Users/Invites Table

The primary focus on the team management page is the users and invitations table. This will display all users with owner, admin or member level permissions first. Invitations will display below active users. Users and invitations table has the following columns:

* Icon (or purple circle if user has not set a user image)
* Name (will not display for invitations)
* Email
* Permission level (will show Pending for invitations)
* Actions list (can be viewed by clicking the 3 dots)

If you need to narrow down the list to someone with a specific name or email, you can start typing it into the search bar and the list will filter down if your search text matches either the name or email address.

## Permission Levels

There are 3 different user permission levels:

* Owner: Owner level permissions have full read and write access. Owners are created when Inveterate is initially installed and the account link is automatically sent out. Once Inveterate has been installed, no new owner level accounts can be created from within the platform.
* Admin: Admin level permissions have the same access as owner level permissions with the exception that they cannot modify owner user information (ex. admins cannot remove owners access). Admins are added by upgrading a member level user to admin. Admins cannot be downgraded back to member level.
* Member: Member level permissions is the baseline permission set. When a new user is invited to access your Inveterate dashboard and they accept, they are added to your dashboard as a member level user. Members have limited permission sets. At current, the only things members cannot do are in relation to inviting, removing and changing other users. If you want someone to have the ability to modify users, you will need to upgrade them to admin.

## Inviting New Users

{% hint style="success" %}
Must have owner or admin level permissions to perform this action.
{% endhint %}

Users with permission level above member will see an "Add a member" button next to the search bar. Clicking this button will open a modal allowing you to invite multiple people at one time by submitting a comma separated list of email addresses.

Feel free to add spaces before and after commas. This will not have any affect on the submitted email addresses.

Once submitted, emails will be sent to all of the email addresses in the list and all of the invitations will populate in your users and invitations table. Clicking the button in the email will direct a user to our create account page with the email field pre-populated and read only. Once account is created the invitation will be removed and the user will now display with member permission level in the users and invitations table.

{% hint style="danger" %}
If any of the email addresses are invalid, already attached to a user or already attached to an invitation, no email will be sent and they will not be added to your users and invitations table. We do not display an error in any of these cases.
{% endhint %}

## Removing an Invitation

{% hint style="success" %}
Must have owner or admin level permissions to perform this action.
{% endhint %}

Before someone accepts an invitation and becomes a user, their invitation can be removed by clicking the action dropdown on an invitation and selecting "Cancel invite". This will immediately invalidate and remove the invitation.

## Removing a User

{% hint style="success" %}
Must have owner or admin level permissions to perform this action.
{% endhint %}

Users can be removed by clicking the action dropdown on the user and selecting "Remove user".

{% hint style="info" %}
Note: Admins cannot remove owners. Only owners can remove other owners.
{% endhint %}

## Upgrading Member to Admin

{% hint style="success" %}
Must have owner or admin level permission to perform this action.
{% endhint %}

Member level users can be upgraded to admin level by clicking the action dropdown on the user and selecting "Make admin".

## User Activity Log

At the top of the team page you will see 2 tabs. Overview and All Activity. Overview is the default page for managing your users. By clicking the All Activity tab, you will be presented with a history of user based actions your team team members have taken. These actions are as follows:

* `created account`- When a user accepts an invitation to your organization
* `invite removed`- When an invitation was removed before it was accepted
* `invited`- When a user is invited to your organization by email
* `logged in`- When a user logs into your organization
* `deleted`- When a user is removed from your organization
* `made admin`- When a user is upgraded to admin level permissions
* `owner created`- When a user creates an account from the invite automatically sent during app install

Table columns are as follows:

* Activity - The action that was taken (see list above for all available activities)
* Member - The user email of the user the action was performed on
* Performed by - The user who performed an action on another user
* Date - The date and time in your local timezone that the action was performed

For "created account", "logged in" and "owner created" activities the "Performed by" field will be empty since another user did not perform this action on them. They performed the action themselves.

{% hint style="danger" %}
No events before January 21, 2025 will be displayed.
{% endhint %}

## Common Questions

**Can owner and admin level users be downgraded to a lower permission level?**\
No, owner and admin level permission accounts cannot be downgraded. You will need to remove the user entirely and then re-invite them in which case once they accept and sign back up they will be member level.

**Why do I have so many users with owner level permissions?**\
The team management feature was released on December 16, 2024. The majority of users that existed before then have owner level permissions. If you want to trim down on the amount of users with owner level permissions, you will need to remove the users and then re-invite them by email. Once they accept and sign back up they will be member level and if you'd like to upgrade them to admin you can do it at that time.

**Why can't I change my own permissions or remove myself as a user?**\
We do not allow users to modify their own user status. If you would like to be upgraded to an admin or removed entirely, you will need to request that another admin or owner remove you.

**Is there a way for me to add more user permission levels?**\
No. At current the only supported permission levels are owner, admin and member.

**Is it possible to fine tune what areas of the dashboard members and admins have access to?**\
No. At this time this is something that is decided and implemented by our team at a platform level. We do not add special use case limitations at the brand level. If you feel that a certain features and/or actions should be limited to owners and/or admins, please reach out to our support team who will submit a feature request to our product team on your behalf.

**What features across the platform have read/write limitations based on user permission level?**\
At present, the only feature affected by user permission level is team management.


# Profile Settings

**The Profile page is where you configure all of your personal user settings for Inveterate.**

The Profile page is split into two tabs, **Profile** and **Password**.  The Profile page is used to enter your personal information, and you can use the Password page to reset your password if needed.

{% hint style="info" %}
[Click Here](/help-center/guides/settings/password-reset) for instructions on how to change your password
{% endhint %}

**To update your Profile settings:**

1. Click on your user name at the bottom of the left side menu
2. Upload a user profile picture (optional)
3. Enter your full name
4. Click "Update"

{% hint style="warning" %}
At this time you cannot change your account email address.
{% endhint %}

**Download the PDF below for step-by-step instructions**

{% file src="/files/j3dJTatKKbzj8TTyaD6d" %}

{% embed url="<https://youtu.be/dFjIeMZV8t4>" %}


# Password Reset

**There are times when you will need to reset your Inveterate account password.  This can easily be done from the Profile Settings page.**

**To change your password:**

* Click on your user name at the bottom of the left side menu
* Click on the "Password" tab at the top of the Profile menu
* Enter your current password
* Enter your new password
* Click "Update"

**Download the PDF below for step-by-step instructions**

{% file src="/files/FJM07uLwUAIws39cY1YX" %}

{% embed url="<https://youtu.be/kHNWQdXxHRY>" %}


# Account Settings

**The Account Settings page is where you enter your company and brand information.**

There are two tabs, General and Snippets.

![](/files/zlnDlW9udhkjlYesUD9L)

The **General** tab is where you fill out your company profile.  The Store URL and Currency are mapped to your Shopify account, so these cannot be changed.

{% hint style="info" %}
For detailed instructions on how to set up your company profile, [click here](/help-center/guides/getting-started/set-up-company-profile).
{% endhint %}

We have linked a Photoshop template below that you can use to create your logo file.

{% file src="/files/tuKQtt9yy0xAIMx1qUCc" %}

The **Snippets** tab is where you will find all of the pieces of code you need to paste into your theme in order for Inveterate to work properly.  Click below for instructions on how to install each snippet.

{% content-ref url="/pages/uW9e1alXYU50qpcIOvfF" %}
[Enable Inveterate On Your Store](/help-center/guides/getting-started/enable-inveterate-on-your-store)
{% endcontent-ref %}

{% content-ref url="/pages/YjYBUbypZMVuh8Sr7e8q" %}
[Broken mention](broken://pages/YjYBUbypZMVuh8Sr7e8q)
{% endcontent-ref %}

{% content-ref url="/pages/9govTa263mtFON8iAWE1" %}
[Add Membership Link Snippet to Customer Account Template](/help-center/guides/getting-started/add-membership-link-snippet-to-customer-account-template)
{% endcontent-ref %}


# Bulk Actions

Bulk Actions allow you to perform administrative actions across multiple members at once. These tools are designed for advanced use cases and program maintenance.

<figure><img src="/files/zqPthjh5Uo8ch1AX8L03" alt=""><figcaption></figcaption></figure>


# Bulk Customer Deletion

Bulk Actions let you perform program-wide administrative actions in a single workflow. This article covers how to use Bulk Customer Deletion to permanently remove members from your program.

{% hint style="danger" %}

### Before you begin

#### This action permanently deletes member data

Bulk Customer Deletion **fully deletes the member’s data from Inveterate**. After deletion, it is as if the customer was never a member in the first place. This cannot be undone.

Use this only when you are certain you need to permanently remove a member’s membership record (for example, data cleanup requests or internal testing accounts).
{% endhint %}

#### CSV requirements

To delete members in bulk, you must upload a CSV that includes a header named:

* `customerId`

(You’ll see this requirement called out directly in the upload modal.)&#x20;

***

### How to perform a Bulk Customer Deletion

1. **Navigate to your Inveterate dashboard**.&#x20;
2. Go to **Settings**.&#x20;
3. Select **Bulk Actions**.&#x20;
4. Click **Actions** (top-right).&#x20;
5. Choose **Customer deletion**.&#x20;
6. Upload your CSV file containing the members you want to delete.&#x20;
7. (Optional) Add an internal note to accompany the deletion request.&#x20;
8. Click **Submit** to start the deletion process.

***

### What to expect after submitting

* Inveterate will begin deleting members included in the uploaded CSV. PerformBulkCustomerDeletion-4e6…
* Deleted members’ records are fully removed from Inveterate.

***

### Best practices

* **Double-check your CSV** before submitting (especially the `customerId` column).
* **Start with a small test CSV** (1–2 customers) to confirm you’re deleting the intended records.
* Use the **optional note** to document why the deletion was performed for future internal reference.

#### Download the PDF below for step-by-step instructions:

{% file src="/files/6tuGNGv7B9Ak0qgCU9ki" %}


# Bulk Add Customers to Tier

Bulk Actions allows you to add multiple customers to a tier at once by uploading a CSV file. This is useful when you need to migrate existing customers to a new tier, upgrade a group of customers, or manually enroll customers in bulk.

### Overview

The Bulk Add Customers to Tier feature enables you to:

* Assign multiple customers to a specific tier simultaneously
* Migrate customers from one tier to another in bulk
* Enroll existing customers into a tier without individual processing

{% hint style="warning" %}

#### Important Note

* This action only changes the customer's tier assignment
* It does not create new members - customers must already exist in your Inveterate member database
* Billing and subscription contracts are not automatically updated
  {% endhint %}

### How to Add Customers to a Tier in Bulk

#### Step 1: Prepare Your CSV File

Create a CSV file with the following required columns:

* **email** - The customer's email address (must match existing member records)

**Example CSV Format:**

email\
<customer1@example.com>\
<customer2@example.com>\
<customer3@example.com>\
**Important Guidelines:**

* The first row must be the header row with "email"
* Each subsequent row should contain one customer email
* Email addresses must match existing Inveterate member records
* Customers who don't exist in your member database will be skipped

#### Step 2: Access Bulk Actions

1. Log in to your Inveterate merchant dashboard
2. Navigate to **Settings** in the left sidebar
3. Click on **Bulk Actions**

<figure><img src="/files/473qguuDOP9FbJvnQ0hI" alt=""><figcaption></figcaption></figure>

#### Step 3: Select Action Type

1. In the "Action Type" dropdown, select **Add customers to tier**
2. The interface will display options specific to this action

#### Step 4: Select Target Tier

1. In the "Select Tier" dropdown, choose the tier you want to assign customers to
2. This can be any active tier in your program (Paid, Free, or Spend-Based)

#### Step 5: Upload Your CSV File

1. Click **Choose File** or drag and drop your CSV file into the upload area
2. Ensure your file follows the format specified in Step 1
3. Click **Submit** to start the bulk action

<figure><img src="/files/x4acQh1yxPPfOJ4W3ZKb" alt=""><figcaption></figcaption></figure>

#### Step 6: Monitor Progress

* The system will process your CSV file and begin adding customers to the selected tier
* You can view the progress and status of your bulk action in the Bulk Actions list
* Once complete, you'll see a status update indicating how many customers were successfully updated

### Use Cases

#### Tier Migration

Moving existing customers from a legacy tier to a new tier structure.

**Example:** You're redesigning your tier structure and want to move all "Silver" tier members to your new "Premium" tier.

#### Manual Enrollment

Adding customers to a tier when they weren't automatically enrolled through normal purchase flows.

**Example:** You've partnered with another brand and want to give their customer list VIP status in your program.

#### Tier Upgrade

Promoting a specific group of customers to a higher tier.

**Example:** Rewarding your top 100 customers by moving them from your "Gold" tier to "Platinum" tier.

### What This Action Does

✅ **Does:**

* Changes the customer's active tier assignment
* Updates tier status in your member database
* Makes customers eligible for benefits of the new tier

❌ **Does Not:**

* Create new member records (customers must already exist)
* Update or create Shopify subscription contracts
* Process billing or charges
* Apply retroactive benefits
* Send notification emails (configured separately in your tier settings)

### Important Considerations

#### Existing Members Only

This bulk action only works for customers who are already in your Inveterate member database. If you need to import new members, use the member import feature instead or contact support for assistance.

#### Subscription Contracts

If you're moving customers between paid tiers, this action does not automatically update their Shopify subscription contracts. Their subscription will remain at the previous tier's price until the next billing cycle or manual update.

#### Benefits Application

Customers will become eligible for benefits of the new tier immediately after the bulk action completes. However:

* One-time benefits (like signup credits) will not be re-applied
* Recurring benefits (like monthly credits) will apply at the next scheduled time
* Active discounts from the previous tier may still be valid

### Troubleshooting

#### Customers Not Updated

**Issue:** Some customers weren't added to the tier after upload.

**Possible Causes:**

* Email addresses don't match existing member records
* CSV file formatting is incorrect
* Customers are in a cancelled or inactive status

**Solution:**

* Double-check email addresses against your member list
* Export your current member list to verify exact email formatting
* Ensure CSV follows the required format
* Contact support if you need help identifying why specific customers failed

#### CSV File Rejected

**Issue:** The system rejects your CSV file during upload.

**Possible Causes:**

* Missing or incorrect header row
* File is not in CSV format
* File contains special characters or encoding issues

**Solution:**

* Verify the first row contains "email" as the header
* Save your file as CSV format (not Excel or other formats)
* Remove any special characters and ensure UTF-8 encoding

### Best Practices

1. **Test First:** Start with a small test file (5-10 customers) before running large bulk operations
2. **Backup Data:** Export your current member list before performing bulk tier changes
3. **Verify Emails:** Cross-reference your CSV emails with your member export to ensure accuracy
4. **Document Changes:** Keep a record of which customers were moved and when
5. **Communicate:** If changing tiers affects benefits or pricing, notify affected customers in advance


# Integrations

Inveterate has integrations with various 3rd party platforms.  The guides below will run you though how to install and use each integration.&#x20;

[Tapcart](/help-center/guides/integrations/tapcart)

[Aftersell](/help-center/guides/integrations/aftersell)

[Gorgias](/help-center/guides/integrations/gorgias)

[Postscript](/help-center/guides/integrations/postscript)

[Klaviyo](/help-center/guides/integrations/klaviyo)

[Rebuy](/help-center/guides/integrations/rebuy)

[Attentive](/help-center/guides/integrations/attentive)

\ <br>


# Shopify POS

**Our integration with the Shopify POS app allows you to extend your member experience to your in store customers.**

With the Shopify POS integration your members can now redeem any of their membership benefits or cash back credits when making a purchase with you in-store.

**Credit Based Benefits**

* Members receive cash back on all in store purchases
* Credits can be redeemed towards in store purchases

**Discount Based Benefits**

* Any discount based benefits, such as Member Only Discounts and Sign Up Discounts are available via the POS app

**Savings Based Benefits**

* All function based member savings, such as Member Only Pricing, will apply automatically in-cart via the POS app

**Free Tier Sign Ups**

* The POS integration gives you the ability to add in-person nonmember customers to a free tier at the time of their purchase

{% hint style="danger" %}
**Due to limitations with Shopify subscription contracts we are unable to add new members onto paid tiers via POS - new members can only be added to free tiers.**
{% endhint %}

### **How To Enable The Shopify POS Integration**

In order to use the POS integration you will need to enable the individual tiles within the POS settings menu.

1. Navigate to Point Of Sale > Settings > POS Apps
2. Click on each individual Inveterate tile and enable it

<figure><img src="/files/IokCKXyOS23uR3Dby0YY" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/fvRXmh9e3L68hQjbQVsw" alt=""><figcaption></figcaption></figure>

### **How To Add A New Member To A Free Tier**

* Tap the Customers icon
* Tap "Add New Customer"
* Add the new customer to the current POS cart
* Tap the "Add To Free Tier" tile on the POS home screen
* The member has now been added to your free tier

{% hint style="warning" %}
After adding a new member to a free tier you will need to refresh the POS app in order for them to use any of their sign up benefits, such as Sign Up Discounts or Sign Up Credits. These sign up benefits will not be visible until after the app is refreshed.
{% endhint %}

{% embed url="<https://www.youtube.com/shorts/lrv6AX4oZDk>" %}

### How To Give Existing Members Their Benefits Via POS

{% hint style="warning" %}
A member's customer profile must be added to the POS cart first in order for their available benefits to appear.&#x20;

If the order is placed as a guest and then assigned to the member post purchase, then the member will not receive any cash back or be able to use their benefits.
{% endhint %}

**How To Redeem Member Credits**

1. Make sure the member has been added to the POS cart
2. Tap on the Redeem Credits tile
3. Enter the amount of credits that the member wants to redeem

<figure><img src="/files/s42SqktVclsES3f18zOy" alt=""><figcaption></figcaption></figure>

**How To Apply Member Only Discount Codes**

1. Make sure the member has been added to the POS cart
2. Tap on the Member Discounts tile
3. Tap on the discount codes you want to apply. Any coupon combination logic from Shopify will be mirrored in POS.

<figure><img src="/files/8xBhwfNEtMnqwz5XtmTa" alt=""><figcaption></figcaption></figure>

**How To Apply Member Only Pricing**

* The Member Only Pricing benefit works via Shopify Functions. Functions are triggered automatically in POS, so no action is needed to apply Member Only Pricing. When you view the cart, you will see this benefit applied before checkout.
* In the screenshot below, this member is receiving Member Only Pricing, is claiming a Member Only Discount, and is redeeming cash back credits all within the same purchase. The member will also earn cash back on this order, the same as if the order was placed online.

<figure><img src="/files/ETFvOdyiFX6S88P30Znz" alt=""><figcaption></figcaption></figure>


# Tapcart

**The Inveterate <> Tapcart integration allows you to add your Inveterate membership program into your Tapcart app.**

{% hint style="danger" %}
The Inveterate <> Tapcart integration requires the use of Shopify Multipass. Multipass is only available for Shopify Plus merchants.
{% endhint %}

1. In Shopify, click Sales Channels and select Tapcart
2. Click on the Integrations tab in Tapcart
3. Find and open Shopify Multipass
4. Connect the Shopify Multipass integration
5. Click on the App Studio tab in Tapcart
6. Click on Custom Screens
7. Click on Add Web Bridge SDK and follow instructions to enable
8. Click on Build A Web Based Screen in Tapcart
9. Enter a title for your memberhsip page
10. Make sure that the toggle to require users to be logged in to view the custom page is enabled
11. Paste in the URL for your membership program page
12. Click Save and Update

{% hint style="warning" %}
Landing Page Redirect: The custom screen you just created will display a landing page if the logged-in user is not an Inveterate member. This page will feature an "Add to Cart" button for the Inveterate subscription product.

If you allow users to buy an Inveterate membership through your landing page custom screen, you'll need to adjust the "Add to Cart" functionality. This ensures that when viewed within the Tapcart app, the item is added to the Tapcart cart, not the website cart. You'll need a developer's help to modify the theme code to do this. [Follow this guide to create a condition on the "Add to Cart" button.](https://docs.tapcart.com/docs/getting-started-sdk#adding-conditional-behaviorhttps://docs.tapcart.com/docs/getting-started-sdk#adding-conditional-behavior)
{% endhint %}

{% hint style="success" %}
You have just finished creating your custom screen. The next step is to add it to your Tapcart navigation.
{% endhint %}

1. Click the App Studio tab in Tapcart and open the Navigation menu
2. Click Add New Navigation
3. Select the navigation icon you wish to use
4. Link the new navigation point to the custom screen you created

{% hint style="success" %}
The integration is now complete and your Membership Program landing page has been added to your Tapcart navigation.
{% endhint %}

**Download the PDF below for step by step instructions:**

{% file src="/files/4JGRiUKBKrLbi8j5dVF5" %}


# Aftersell

**Our integration with Aftersell allows you to create a post purchase upsell funnel that functions properly with the membership product.**&#x20;

For example, after a member purchases a pair of shoes, you can upsell the membership to them after they check out.

After a customer places an order, they will see this screen after checkout where they can purchase the membership.

<figure><img src="/files/98UVS7LT4Xk33SWygBau" alt=""><figcaption></figcaption></figure>

After a customer places the order from the membership via upsell, the membership will be added to the original order.

<figure><img src="/files/ZIoy2Bz1JH8C25P4ZfYy" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
All applicable credits are given to members when they sign up for a membership via post purchase upsell. For example, if you have Credits For Orders and Sign Up Credits enabled, the new member will receive credits for the product they purchased alongside the upsell, as well as the Sign Up Credits.
{% endhint %}

{% hint style="warning" %}
The *Free Gift at Signup* benefit does **not** automatically trigger when a customer purchases a membership via Aftersell.\
However, a workaround can be achieved by creating a [**Shopify Flow**](https://help.inveterate.com/help-center/advanced-guides/shopify-flow) that detects when a membership product is purchased through the **Aftersell** sales channel and then triggers an action, such as adding an order note or notifying your fulfillment team, to manually include the gift item.
{% endhint %}

**To set up the Aftersell integration:**

1. Download Aftersell from the Shopify app store
2. Create a new funnel
3. Select the targeting rules you want to use for the upsell
4. Create your upsell offer, selecting your membership product
5. Save and enable the funnel in Aftersell

**Download the PDF below for step-by-step instructions**

{% file src="/files/NkJtdPSlX40XBIH8YsMR" %}


# Gorgias

**Inveterate's Gorgias integration can be used to add Inveterate data about each of your members into their customer profile in Gorgias.**

This integration will sync all data available within Inveterate to the appropriate user profile within Gorgias. &#x20;

{% hint style="info" %}
You should ensure that your Gorgias account is fully set up before connecting the Inveterate integration
{% endhint %}

**Gorgias Properties**

`Inveterate: Subscription Status` defines whether the member is active or cancelled

`Inveterate: Store Credits` is the total number of credits that the member has available to redeem

`Inveterate: Referrals` is the number of successful purchase referrals generated by the member

`Inveterate: Date Joined` is the date that the member joined the membership program

`Inveterate: Tier Name` is the name of the tier that the member is currently enrolled into

**To set up the Gorgias integration:**

1. Click on Integrations in the Inveterate side nav
2. Click "Connect" next to Gorgias
3. Click the toggle for "Add Inveterate data to Gorgias profile when user signs up"
4. Enter your Gorgias subdomain and click "connect"
5. Continue through the rest of the authorization steps within the setup screens
6. Once complete, the integration has been set up succesfully&#x20;

**Download the PDF below for step-by-step instructions**

{% file src="/files/VNnGNEQlrRgd8aimIFDO" %}


# Postscript

**Inveterate's Postscript integration can be used to add Inveterate data about each of your members into their Subscriber data in Postscript.**

This integration will sync all data available within Inveterate to the appropriate user profile within Postscript.  You can use this data in Postscript to create custom segments and message your members separately from your nonmembers.

{% hint style="info" %}
Before you set up this Integration, make sure that your Postscript account has been fully set up and enabled. &#x20;
{% endhint %}

**Postscript Properties**

`Credits` is the total number of credits that the member has available to redeem

`DateJoined` is the date that the member joined the membership program

`Referrals` is the number of successful purchase referrals generated by the member

`MembershipStatus` defines whether the member is an active or cancelled member

`TierName` is the name of the tier that the member is currently enrolled into

**To set up the Postscript integration:**

1. Click on Integrations in the Inveterate side nav
2. Click "Connect" next to Postscript
3. Click the toggle for "Add Inveterate data to Postscript profile when user signs up"
4. Select your Postscript account through the pop up window
5. Click "Get my credentials" within the pop up to navigate to the API key page in Postscript
6. Click "Create One Now" to create a new API key for Inveterate
7. Click the "Show" button to make your new private key visible
8. Copy the private key, and paste it into the authentication pop up
9. Finish authenticating your Postscript account
10. Click the next "Automatically update Postscript profiles with member data changes" toggle
11. Select the same Postscript account and confirm the authentication one more time

**Download the PDF below for step-by-step instructions**

{% file src="/files/myhMO25lcdpwEZi2ABM3" %}

{% embed url="<https://youtu.be/z1ApUUXdWzA>" %}


# Klaviyo

Our Klaviyo integration sends membership data and events over to Klaviyo, allowing you to create membership segments, trigger loyalty flows, and use membership data in emails to your customers.

### Connect Inveterate to Klaviyo

1. In your Inveterate dashboard, click on "Integrations" in the left sidebar to navigate to [Integrations page](https://dashboard.inveterate.com/integrations?selected=Klaviyo).
2. Click on "Klaviyo" in the integrations list to pull up it's detail panel.
3. Click "Connect", then follow the instructions to authorize Inveterate to integrate with your Klaviyo account.&#x20;
4. You will be redirected to Klaviyo, where you should select the account you want integrated. After approving permissions, you will be redirected back to the Inveterate dashboard's integrations page - Klaviyo should now show as "Connected."
5. Finally, after Klaviyo is showing as "Connected" in your Inveterate dashboard, make sure to toggle on any features you want to use.&#x20;

{% embed url="<https://youtu.be/OwoAFXO928g>" %}

### Feature - Use membership data to segment customers in Klaviyo

#### 1. In Inveterate, enable the "Custom properties" Klaviyo feature

* In your Inveterate dashboard, navigate to [your Klaviyo integration](https://dashboard.inveterate.com/integrations?selected=Klaviyo).
* Under "Features," make sure "Custom properties" is toggled on.&#x20;
* When you enable "Custom properties", you will be asked if you want to sync all your customers - do this to sync all your existing members' data to Klaviyo. This sync process will run in the background and can take over an hour for very large stores.
* Now, in Klaviyo, you will now start seeing new membership properties like `Inveterate: Subscription Status` next to any customers that are or have ever been members of your Inveterate program. [Here is our complete list](/help-center/advanced-guides/replace-inveterate-emails-in-klaviyo/klaviyo-member-notification-metrics-and-their-template-variables#membership-custom-properties) of all the membership properties available.<br>

#### 2. In Klaviyo, create a "Current members" segment based on custom properties&#x20;

* In your Klaviyo account, create a segment with the following properties:\
  Properties about someone > `Inveterate: Subscription Status` > includes any of > `ACTIVE` and `PENDING_CANCELLATION`

<div align="left"><figure><img src="/files/9oMiOnMwNqhyDZVjBsAc" alt=""><figcaption></figcaption></figure></div>

{% hint style="warning" %}
Note: **Inveterate does not add or maintain any tags on profiles in your Klaviyo account**. Always segment  members based on the Inveterate custom properties listed [here](/help-center/advanced-guides/replace-inveterate-emails-in-klaviyo/klaviyo-member-notification-metrics-and-their-template-variables#membership-custom-properties).
{% endhint %}

### Feature - Trigger email flows based on membership events

#### 1. In Inveterate, enable the "Custom events" Klaviyo feature.&#x20;

* In your Inveterate dashboard, navigate to [your Klaviyo integration](https://dashboard.inveterate.com/integrations?selected=Klaviyo).
* Under "Features," make sure "Custom events" is toggled on.&#x20;
* Now, in Klaviyo, you will now start seeing new membership Metrics like `Inveterate: Welcome`. [Here is our complete list](/help-center/advanced-guides/replace-inveterate-emails-in-klaviyo/klaviyo-member-notification-metrics-and-their-template-variables#membership-custom-properties) of all the membership events available.<br>

#### 2. Send a test event from Inveterate to Klaviyo

* In your Inveterate dashboard, navigate to the [messaging page](https://dashboard.inveterate.com/messaging).
* Send a "Welcome" test email to an email address you want to test the flow against in Klaviyo
* The `Inveterate: Welcome`  metric will now show up in your Klaviyo account under the profile matching that email address, and it will be available as a flow trigger as well.

#### 3. In Klaviyo, set up an email  flow using an Inveterate metric as a trigger

* In your Klaviyo account, [create a new flow](https://www.klaviyo.com/flows/create) with a name like "Welcome new member".
* Select trigger > Your metrics > API > `Inveterate: Welcome`
* Use Inveterate event data and profile custom properties in your email template - consult [our docs](/help-center/advanced-guides/replace-inveterate-emails-in-klaviyo/klaviyo-member-notification-metrics-and-their-template-variables) for examples


# Rebuy

Inveterate's Smart Cart App in Rebuy is an easy way to upsell your program in-cart without any additional code or configuration steps.

{% hint style="danger" %}
Do not modify the configuration of membership tier products directly from the Shopify dashboard, particularly with respect to **product tags, pricing variants, and the ability to purchase them without a selling plan**. Always use the Inveterate dashboard to make changes to those settings.
{% endhint %}

{% hint style="warning" %}
Do not pick a spend-based tier product to be advertised on the Rebuy widget.
{% endhint %}

**Choose which tier product will be displayed**

1. Navigate to the theme customization screen in your Shopify store
2. On the left sidebar, select the App Embeds view
3. Expand Inveterate's app embed settings
4. Pick the desired product
5. Click "Save" to the top right of the screen

{% hint style="info" %}
If the tier chosen to be displayed on the Rebuy upsell widget has a free trial available, the free trial will be advertised. Otherwise, it will advertise the billing period of the selected tier.
{% endhint %}

**Enable The Smart Cart App**

1. Open the "Rebuy Personalization Engine" app in your Shopify store
2. Open the Smart Cart menu
3. Open the Smart Cart where you want to enable Inveterate, or create a new one
4. Find the Inveterate app and click the toggle to enable it
5. Use the dropdown to select the in-cart position of the upsell module
6. Click "Save"

{% hint style="success" %}
The Inveterate Smart Cart app is now enabled. Next we'll preview it in our store.
{% endhint %}

**Preview The Smart Cart App**

1. Navigate to the Smart Card you just edited, and click "Preview"
2. Open the cart
3. You will now see the Inveterate upsell in the location you configured

{% hint style="info" %}
You can place the widget in 3 areas within the cart.&#x20;

* Above Subtotal will place it above the cart subtotal
* Below Subtotal will place it under the subtotal, but above the Checkout button
* Below Checkout will place it below the Checkout button
  {% endhint %}

**Above Subtotal**

<figure><img src="/files/ffIDVq1ZQYG7s3MTRCzg" alt=""><figcaption></figcaption></figure>

**Below Subtotal**

<figure><img src="/files/6CLEx0gY3KJdD7T45E8F" alt=""><figcaption></figcaption></figure>

**Below Checkout**

<figure><img src="/files/mLAceULa79Ypxbej6iaM" alt=""><figcaption></figcaption></figure>

**Download the PDF below for step-by-step instructions**

{% file src="/files/uZRZpZceBf3Ykry5QKLQ" %}

**Watch a step-by-step video**

{% embed url="<https://youtu.be/o3ytkdH6rYM>" %}


# Attentive

**Inveterate's Attentive integration consists of two main features:**

1. Automatically syncs important membership data from Inveterate (like membership status, current credits balance) to the corresponding Subscriber profiles in Attentive, using the [Custom Attributes](https://docs.attentive.com/openapi/reference/tag/Custom-Attributes/) API. Among other things, this allows merchants to segment their subscribers based on membership data.
2. Forwards membership notification events from our system (like "Welcome", "Credits Awarded", "Rebill Notice") to Attentive as [Custom Events](https://docs.attentive.com/openapi/reference/tag/Custom-Events/). This allows merchants to build and trigger email & SMS Journeys in Attentive based on membership events from Inveterate.

Our Attentive Integration documentation consists of three sections:

1. [Integration Setup Guide](/help-center/guides/integrations/attentive/how-to-enable-integration)
2. [Segmenting Customers by Inveterate's Membership Custom Properties in Attentive](/help-center/guides/integrations/attentive/segmenting-customers-by-inveterates-membership-custom-attributes-in-attentive)
3. [Setting up Journeys in Attentive with Inveterate's Custom Events](/help-center/guides/integrations/attentive/how-to-create-journeys-in-attentive-with-inveterates-custom-events)
4. [Attentive Custom Events List](/help-center/guides/integrations/attentive/attentive-custom-events-list)


# How to Enable Integration

1. On your Inveterate merchant dashboard's "Integrations" page, click the "Connect" button within the Attentive block.<br>

   <figure><img src="/files/vDzi66lDwLdr2LmfgCcD" alt=""><figcaption></figcaption></figure>
2. Clicking "Connect" will open a modal with an "Install" link. Click the link.<br>

   <figure><img src="/files/kftPqDS9WmzLBDu4vlqf" alt=""><figcaption></figcaption></figure>
3. Clicking the "Install" link will redirect you to Attentive's website, where you will need to click the "Authorize" button to grant Inveterate permissions to use Attentive's APIs to sync membership data and events.

   <figure><img src="/files/55IU5SAiZoSwNGHv0wFG" alt=""><figcaption></figcaption></figure>
4. After clicking "Authorize", you will be redirected back to a loading page on the merchant-dashboard while we finish getting permissions for Inveterate to access your Attentive account. If it is successful, you will see this screen:

   <figure><img src="/files/6nJYMyx0TargBNNn29pG" alt=""><figcaption></figcaption></figure>
5. After the app is authorized, you will need to enable the two checkboxes shown in the screenshot below. Simply navigate back to the "Integrations" menu, click on "Attentive" and you will see them available. Member data will not start to sync until this final step is complete.

<figure><img src="/files/COOOB6vXwcFEGof9UNFS" alt=""><figcaption></figcaption></figure>

At this point, Inveterate will begin sending the membership properties for all your customers that have been or currently are members from our system to Attentive. For large stores, this could take up to a day. When all the data has been synced, an email will be sent to your support addressed specified in your Inveterate merchant dashboard.

For more information on the membership data we send over, and how to create Attentive Journey's from the Custom Evens we send over, consult the following guides:

* Segmenting members by Inveterate's Custom Attributes in Attentive
* Creating Journeys from Inveterate's Custom Events in Attentive


# Segmenting Customers by Inveterate's Membership Custom Attributes in Attentive

Once your integration is enabled, Inveterate automatically syncs important membership data (like membership status, current credits balance) to the corresponding Subscriber profiles in Attentive, using the [Custom Attributes](https://docs.attentive.com/openapi/reference/tag/Custom-Attributes/) API. Among other things, this allows merchants to segment their subscribers based on membership data.

### Custom Attributes List

| Name                            | Description                                                                                                                                                                                        | Examples                                            | Template Syntax                                            |
| ------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- | ---------------------------------------------------------- |
| Inveterate: Credits             | Number of credits available                                                                                                                                                                        | `24.99`, `25`, `1.4`,  `0`                          | `{{subscriber.custom['Inveterate: Credits']}}`             |
| Inveterate: Credits F           | Credits value formatted for use in texts and email                                                                                                                                                 | `$24.99`, `$25`, `$1.40` `$0`                       | `{{subscriber.custom['Inveterate: Credits F']}}`           |
| Inveterate: Date Joined         | Date customer joined membership program.                                                                                                                                                           | `"March 14, 2023"`                                  | `{{subscriber.custom['Inveterate: Date Joined']}}`         |
| Inveterate: Referrals Count     | Number of times customer has been credited for [program referral](https://help.inveterate.com/help-center/guides/program-setup/benefits/credit-based-benefits/store-credits-for-purchase-referral) | `2`                                                 | `{{subscriber.custom['Inveterate: Referrals Count']}}`     |
| Inveterate: Subscription Status | Status of membership                                                                                                                                                                               | `"active"`, `"cancelled"`, `"pending cancellation"` | `{{subscriber.custom['Inveterate: Subscription Status']}}` |
| Inveterate: Tier Name           | Tier name                                                                                                                                                                                          | `"Gold"`, `"Acme Plus"`                             | `{{subscriber.custom['Inveterate: Tier Name']}}`           |

### Segmenting Attentive Subscribers by their Membership Data <a href="#segmenting-attentive-subscribers-by-their-membership-data" id="segmenting-attentive-subscribers-by-their-membership-data"></a>

You can create "Dynamic segments" of customers based on the Custom Attributes Inveterate sends over.

<figure><img src="/files/bb7Sda9vmaCWrQkKd1tB" alt=""><figcaption></figcaption></figure>

Here are some examples:

<figure><img src="/files/gxn2xKYg8980HLO4m4MQ" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
When creating segments that use a text based value, such as "Subscription Status = ACTIVE", or "Tier Name = Paid Tier 1", you need to copy and paste the values exactly as they appear within the Attentive subscriber detail page. For example, "Subscription Status = ACTIVE" needs to be in all caps just like on the subscriber detail page, if you format the value as "Active" or "active" the segment will **not** populate. See the screenshot below for an example.
{% endhint %}

<figure><img src="/files/rvoEoYIIBgp33ZDGmpT6" alt=""><figcaption></figcaption></figure>

Be aware that because Attentive doesn't offer formatting options for template variables, most of the time, you'll want to use the *Custom Event* properties instead of a subscriber's *Custom Attributes* in your Journey templates.


# How to Create Journeys in Attentive with Inveterate's Custom Events

Once your integration is enabled, Inveterate will forward important membership-related events to Attentive using their [Custom Events](https://docs.attentive.com/openapi/reference/tag/Custom-Events/) API. You can find a complete list of the events we send over and their details, along with email and SMS template examples on [this page](/help-center/guides/integrations/attentive/attentive-custom-events-list).

## Step 1. Send a test event

Before you can create a Journey based on a Custom Event, you need an example of that event in your Attentive account. The easiest way to do this is by triggering a test event from the [Messaging page](https://dashboard.inveterate.com/messaging) in your merchant-dashboard. Select which event ("Welcome", "Credits Earned", etc.) you want to set up a Journey for, then use the "Send test" email feature to forward a test event for that notification to your Attentive account.

Make sure to use an email address matching an existing member of your loyalty program *that is also a subscriber in your Attentive account.*<br>

<figure><img src="/files/DJW5j4o5NBYBxcplDESY" alt=""><figcaption></figcaption></figure>

## Step 2. Confirm a matching Custom Event shows up under that customer's "Activities" pane in Attentive

After sending the test email, you can confirm this event was forwarded to Attentive by checking the "Activities" pane under the matching Subscriber in your Attentive account.<br>

<figure><img src="/files/asp3OpS0jXvAPAt2bh7v" alt=""><figcaption></figcaption></figure>

## Step 3. Create a Journey for the Custom Event

Create a new Journey, using the "Start from scratch" option, and choose the relevant Inveterate event as your Journey trigger.<br>

<figure><img src="/files/kIx3o4qejHqKx8LyxOhZ" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/gsnXDM7qgxFn8MgvfcWS" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/Q01UMdARPPur3t1DLGGG" alt=""><figcaption></figcaption></figure>

## Step 4. Configure your Journey action to send a text message or email

Then drag either the "Send text message" or "Send email" actions from the left onto the diagram on the right.<br>

<figure><img src="/files/hwZLAkNq02e6E7tCAhbf" alt=""><figcaption></figcaption></figure>

You'll then need to specify the content of the text or email. We have provided both text and email templates you can use as a starting point for any of our events on this page: [Attentive Custom Events List](/help-center/guides/integrations/attentive/attentive-custom-events-list).

After you have finished editing your template, turn the Journey on.

<figure><img src="/files/JUNnbqG0aznCMuWuWawW" alt=""><figcaption></figcaption></figure>

## Step 5. Send another test event to confirm text or email gets sent

Now that your Journey is activated you need to confirm Attentive is sending the email or text message to your subscribers when Inveterate forwards the Custom Event to Attentive's APIs. Send another test event using the "Send test" email feature in your merchant dashboard's Messaging page. Within a minute or two, you should receive the text or email.


# Attentive Custom Events List

## "Inveterate: Welcome" Custom Event <a href="#inveterate-welcome-custom-event" id="inveterate-welcome-custom-event"></a>

Triggered when a customer signs up for your membership program. In the email, they should prompted to create an account in your store or sign in to use their membership benefits.

**Event Properties**

| Name     | Description        | Example       | Template Syntax                       |
| -------- | ------------------ | ------------- | ------------------------------------- |
| tierName | Name of membership | `"Acme Gold"` | `{{triggerEvent.custom['tierName']}}` |

**Email Template Example**

<pre class="language-html"><code class="lang-html"><strong>&#x3C;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
</strong>&#x3C;html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
 &#x3C;head>&#x3C;/head>
 &#x3C;body>
  &#x3C;p>Welcome to {{triggerEvent.custom['tierName'] | default: ' '}}, an exclusive membership program created by YOUR_STORE_NAME.&#x3C;/p>
  &#x3C;p>In order to access all your membership benefits, please take a moment to login or create your account.&#x3C;/p>
  &#x3C;p>&#x3C;a rel="nofollow" href="YOUR_STORES_CUSTOMER_ACCOUNT_PAGE_LINK">Open my account&#x3C;/a>&#x3C;/p>
  &#x3C;p>&#x3C;a href="{{unsubscribeLink}}">Unsubscribe&#x3C;/a>&#x3C;/p>
  &#x3C;p>YOUR_COMPANY_NAME&#x3C;/p>
  &#x3C;p>{{companyAddress}}&#x3C;/p>
 &#x3C;/body>
&#x3C;/html>
</code></pre>

#### SMS Text Template Example

```
Welcome to {{triggerEvent.custom['tierName']}}! In order to access all your membership benefits, please take a moment to login or create your account at www.Website.com
```

## "Inveterate: Payment Failure" Custom Event

Triggered when a customer's rebill fails due to a credit card issue.

**Event Properties**

| Name             | Description                                                                                               | Example       | Template Syntax                               |
| ---------------- | --------------------------------------------------------------------------------------------------------- | ------------- | --------------------------------------------- |
| finalAttemptDate | Final date when Inveterate will try to rebill the member, after which their membership will be cancelled. | `Aug 9, 2023` | `{{triggerEvent.custom['finalAttemptDate']}}` |
| tierName         | Name of membership                                                                                        | `"Acme Gold"` | `{{triggerEvent.custom['tierName']}}`         |

**Email Template Example**

```markup
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
 <head></head>
 <body>
  <p>Your payment method has failed</p>
  <p>We'll try again for the next few days. To continue being a part of {{triggerEvent.custom['tierName']}}, please make sure your payment details are up to date.</p>
  <p>If your payment isn’t successful on {{triggerEvent.custom['finalAttemptDate']}}, your membership will be cancelled.</p>
  <p><a href="{{unsubscribeLink}}">Unsubscribe</a></p>
  <p>YOUR_COMPANY_NAME</p>
  <p>{{companyAddress}}</p>
 </body>
</html>
```

**SMS Text Template Example**

```
We are unable to process your payment for {{triggerEvent.custom['tierName']}}, please update your billing info by {{triggerEvent.custom['finalAttemptDate']}}.
```

## "Inveterate: Cancellation Notice" Custom Event

Triggered when a member cancels their membership, when they churn due to a billing issue, or when the merchant cancels the member from the Inveterate dashboard.

**Event Properties**

| Name               | Description                                                              | Example                                   | Template Syntax                                 |
| ------------------ | ------------------------------------------------------------------------ | ----------------------------------------- | ----------------------------------------------- |
| cancellationDate   | The effective  cancellation date when customer loses access to benefits  | `Aug 9, 2023 or blank`                    | `{{triggerEvent.custom['cancellationDate']}}`   |
| cancellationPolicy | Whether benefit access ends instantly or at the end of the billing cycle | `"immediately" or "end of billing cycle"` | `{{triggerEvent.custom['cancellationPolicy']}}` |
| tierName           | Name of membership                                                       | `"Acme Gold"`                             | `{{triggerEvent.custom['tierName']}}`           |

**Email Template Example**

```markup
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
 <head></head>
 <body>
  <p>You've cancelled {{triggerEvent.custom['tierName'] | default: ' '}} on {{triggerEvent.custom['cancellationDate']}}</p>
  <p>Your access to benefits will end {{triggerEvent.custom['cancellationPolicy']}}</p>
  <p><a href="{{unsubscribeLink}}">Unsubscribe</a></p>
  <p>YOUR_COMPANY_NAME</p>
  <p>{{companyAddress}}</p>
 </body>
</html>
```

**SMS Text Template Example**

```
You've cancelled {{triggerEvent.custom['tierName']}} on {{triggerEvent.custom['cancellationDate']}}, Your access to {{triggerEvent.custom['tierName']}} benefits will end {{triggerEvent.custom['cancellationPolicy']}} 
```

## "Inveterate: Rebill Notice" Custom Event

Triggered when a member is reminded that their rebill is going to happen soon.

| Name               | Description                                                              | Example                                                     | Template Syntax                                 |
| ------------------ | ------------------------------------------------------------------------ | ----------------------------------------------------------- | ----------------------------------------------- |
| cancellationPolicy | Whether benefit access ends instantly or at the end of the billing cycle | `"immediately" or "end of billing cycle"`                   | `{{triggerEvent.custom['cancellationPolicy']}}` |
| rebillFrequency    | How often a membership rebill occurs                                     | `"monthly"`, `"quarterly"`, `"semi-annually"`, `"annually"` | `{{triggerEvent.custom['rebillFrequency']}}`    |
| rebillDate         | The date when the member will be rebilled                                | `"Aug 20, 2024"` or blank                                   | `{{triggerEvent.custom['rebillDate']}}`         |
| rebillPrice        | The price that the member will be rebilled                               | `$24.99`, `$25.00`                                          | `{{triggerEvent.custom['rebillPrice']}}`        |
| supportEmail       | Your support email address                                               | `help@merchant.com`                                         | `{{triggerEvent.custom['supportEmail']}}`       |
| tierName           | Name of the tier the member is in                                        | `"Acme Gold"`                                               | `{{triggerEvent.custom['tierName']}}`           |

**Email Template Example**

```markup
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
 <head></head>
 <body>
  <p>Your renewal for {{triggerEvent.custom['tierName']}}</p>
  <p>Thank you for your continued participation in our exclusive membership program! As a reminder, your membership is set to renew on {{triggerEvent.custom['rebillDate']}} for a total of {{triggerEvent.custom['rebillPrice']}}, plus any applicable sales tax.</p>
  <p><a href="{{unsubscribeLink}}">Unsubscribe</a></p>
  <p>YOUR_COMPANY_NAME</p>
  <p>{{companyAddress}}</p>
 </body>
</html>
```

**SMS Text Example**

```
You will be billed {{triggerEvent.custom['rebillPrice']}} for your {{triggerEvent.custom['tierName']}} membership on {{triggerEvent.custom['rebillDate']}}. Reach out to {{triggerEvent.custom['supportEmail']}} with any questions.
```

## "Inveterate: Membership Change" Custom Event

Triggered when a member upgrades or downgrades their membership tier.

**Event Properties**

| Name              | Description                                                    | Example                    | Template Syntax                                |
| ----------------- | -------------------------------------------------------------- | -------------------------- | ---------------------------------------------- |
| newTierName       | The new tier the member has enrolled into                      | `"Acme Gold"`              | `{{triggerEvent.custom['newTierName']}}`       |
| newTierPrice      | The price of the new tier the member has enrolled into         | `$24.99`, `$25.00`         | `{{triggerEvent.custom['newTierPrice']}}`      |
| oldTierName       | The old their the member was enrolled into                     | `"Acme Silver"`            | `{{triggerEvent.custom['oldTierName']}}`       |
| oldTierPrice      | The price of the old tier the member was enrolled into         | `$24.99`, `$25.00`         | `{{triggerEvent.custom['oldTierPrice']}}`      |
| tierChangeQuality | Whether the member has upgraded or downgraded their membership | `"upgrade" or "downgrade"` | `{{triggerEvent.custom['tierChangeQuality']}}` |

**Email Template Example**

```markup
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
 <head></head>
 <body>
  <p>You've upgraded your membership</p>
  <p>Your {{triggerEvent.custom['tierName'] | default: ' '}} membership has been upgraded to {{triggerEvent.custom['newTierName']}}. Your new membership price is now {{triggerEvent.custom['newTierPrice']}}.</p>
  <p><a href="{{unsubscribeLink}}">Unsubscribe</a></p>
  <p>YOUR_COMPANY_NAME</p>
  <p>{{companyAddress}}</p>
 </body>
</html>
```

**SMS Template Example**

```
You've {{triggerEvent.custom['tierChangeQuality']}}d {{triggerEvent.custom['oldTierName']}} to {{triggerEvent.custom['newTierName']}}. Your rebill amount will change from {{triggerEvent.custom['oldTierPrice']}} to {{triggerEvent.custom['newTierPrice']}}.
```

## **"Inveterate: Anniversary Credits" Custom Event**

Triggered when a member is awarded credits according to the Anniversary Credits benefit.

| Name              | Description                    | Example               | Template Syntax                                |
| ----------------- | ------------------------------ | --------------------- | ---------------------------------------------- |
| creditsAwarded    | Amount of new credits awarded  | `"$10.00"`, `"$9.99"` | `{{triggerEvent.custom['creditsAwarded']}}`    |
| newCreditsBalance | Balance after credits awarded. | `"$10.00"`, `"$9.99"` | `{{triggerEvent.custom['newCreditsBalance']}}` |
| tierName          | Name of membership             | `"Acme Gold"`         | `{{triggerEvent.custom['tierName']}}`          |

**Email Template Example**

```markup
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<head></head>
<body>
<p>
  You have been a loyal member of {{triggerEvent.custom['tierName'] | default: ' '}} for a year!
</p>
<p>
  To show our appreciation, we've awarded you {{triggerEvent.custom['creditsAwarded'] in store credits! You now have a total of {{triggerEvent.custom['newCreditsBalance'] | default: ''}} that you can redeem for purchases since you’re a member of {{triggerEvent.custom['tierName'] | default: 'our program'}}.
</p>
<p>
  <a href="LINK_TO_YOUR_STOREFRONT">Shop now</a>
</p>
<p><a href="{{unsubscribeLink}}">Unsubscribe</a></p>
<p>YOUR_COMPANY_NAME</p>
<p>{{companyAddress}}</p>
</body>
</html>
```

**SMS Template Example**

```
We just awarded you {{triggerEvent.custom['creditsAwarded']}} for being a {{triggerEvent.custom['tierName']}} member for a year, your new balance is {{triggerEvent.custom['newCreditsBalance']}}
```

## "Inveterate: Credits Redeemed" Custom Event <a href="#inveterate-credits-redeemed-custom-event" id="inveterate-credits-redeemed-custom-event"></a>

Triggered when a customer completes an order that used redeemed credits.

**Event Properties**

| Name              | Description                     | Example            | Template Syntax                                |
| ----------------- | ------------------------------- | ------------------ | ---------------------------------------------- |
| creditsRedeemed   | Number of credits used in order | `$24.99`, `$25.00` | `{{triggerEvent.custom['creditsRedeemed']`     |
| newCreditsBalance | Credits member now has left     | `$0.99`, `$1.00`   | `{{triggerEvent.custom['newCreditsBalance']}}` |
| tierName          | Name of membership              | `"Acme Gold"`      | `{{triggerEvent.custom['tierName']}}`          |

**Email Template Example**

```html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
 <head></head>
 <body>
  <p>
    You just redeemed {{triggerEvent.custom['tierName'] | default: ' '}} at YOUR_STORE_NAME!
  </p>
  <p>
    You just redeemed credits for a purchase. You now have {{triggerEvent.custom['newCreditsBalance'] | default: ' '}} remaining in your account.
  </p>
  <p>
    Thanks for being a part of {{triggerEvent.custom['tierName'] | default: ' '}},
  </p>
  <p>
    YOUR_STORE_NAME
  </p>
  <p>
    <a href="YOUR_STORES_CUSTOMER_ACCOUNT_PAGE_LINK">View my account</a>
  </p>
  <p><a href="{{unsubscribeLink}}">Unsubscribe</a></p>
  <p>YOUR_COMPANY_NAME</p>
  <p>{{companyAddress}}</p>
</body>
</html>
```

#### SMS Text Template Example

```
You just used {{triggerEvent.custom['creditsRedeemed']}} in credits and have {{triggerEvent.custom['newCreditsBalance']}} left. Thanks for being a part of {{triggerEvent.custom['tierName']}}
```

## "Inveterate: Signup Discount" Custom Event <a href="#inveterate-signup-discount-custom-event" id="inveterate-signup-discount-custom-event"></a>

Triggered after a sign up discount code has been generated for a new member, with instructions on how to use it.

**Event Properties**

| Name           | Description                                                            | Example                  | Template Syntax                             |
| -------------- | ---------------------------------------------------------------------- | ------------------------ | ------------------------------------------- |
| discountCode   | Unique sign up discount code created for each member                   | `"VIP_123"`              | `{{triggerEvent.custom['discountCode']}}`   |
| isPercentage   | Is the discount a percent amount off a future order                    | `true` or `false`        | `{{triggerEvent.custom['isPercentage']}}`   |
| isFixed        | Is the discount a fixed dollar amount                                  | `true` or `false`        | `{{triggerEvent.custom['isFixed']}}`        |
| discountAmount | How much off an order is the discount                                  | `$10.00`, `20%`          | `{{triggerEvent.custom['discountAmount']}}` |
| isOneTimeUse   | Is the discount disabled after 1 use, or can it be used multiple times | `true` or `false`        | `{{triggerEvent.custom['isOneTimeUse']}}`   |
| expirationDate | If the discount code expires, when                                     | `"Aug 8, 2024"` or blank | `{{triggerEvent.custom['expirationDate']}}` |
| tierName       | Name of membership                                                     | `"Acme Gold"`            | `{{triggerEvent.custom['tierName']}}`       |

**Email Template Example**

```html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<head></head>
<body>
<p>
  Here’s your personal member discount code, {{subscriber.firstName | default: 'valued customer'}}!
</p>
<p>
  As a valued member of {{triggerEvent.custom['tierName'] | default: 'our program'}}, we’ve created a personal discount code just for you! It’s your chance to take advantage of these VIP savings.
</p>
<p>
  Get {{triggerEvent.custom['discountAmount'] | default: ''}} off using this code at checkout: {{triggerEvent.custom['discountCode'] | default: ''}}.
</p>  
<p>
  One time use. Expires {{triggerEvent.custom['prettyExpirationDate'] | default: 'soon'}}.
</p>
<p>
  <a href="LINK_TO_YOUR_STOREFRONT">Shop now</a>
</p>
<p><a href="{{unsubscribeLink}}">Unsubscribe</a></p>
<p>YOUR_COMPANY_NAME</p>
<p>{{companyAddress}}</p>
</body>
</html>
```

&#x20;SMS Text Template Example

```
{{triggerEvent.custom['discountCode']}} is your discount code. Use this code to save {{triggerEvent.custom['discountAmount']}} before {{triggerEvent.custom['expirationDate']}}.
```

## "Inveterate: Credits Awarded" Custom Event

Email triggered when a member has earned new store credits due to the following benefits: Credits for Orders, Recurring Store Credits, or Signup Store Credits.

**Event Properties**

| Name              | Description                                        | Example                                                                     | Template Syntax                                |
| ----------------- | -------------------------------------------------- | --------------------------------------------------------------------------- | ---------------------------------------------- |
| creditsAwarded    | Amount of new credits awarded                      | `"$10.00"`, `"$9.99"`                                                       | `{{triggerEvent.custom['creditsAwarded']}}`    |
| newCreditsBalance | Balance after credits awarded.                     | `"$10.00"`, `"$9.99"`                                                       | `{{triggerEvent.custom['newCreditsBalance']}}` |
| tierName          | Name of membership                                 | `"Acme Gold"`                                                               | `{{triggerEvent.custom['tierName']}}`          |
| reason            | Reason member earned credits, e.g. name of benefit | `"credits for order"`, `"recurring store credit"`, `"signup store credits"` | `{{triggerEvent.custom['reason']}}`            |

**Email Template Example**

```html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<head></head>
<body>
<p>
  You've just received {{triggerEvent.custom['creditsAwarded'] | default: ''}} in store credit.
</p>
<p>
  You now have a total of {{triggerEvent.custom['newCreditsBalance'] | default: ''}} that you can redeem for purchases since you’re a member of {{triggerEvent.custom['tierName'] | default: 'our program'}}.
</p>
<p>
  <a href="LINK_TO_YOUR_STOREFRONT">Shop now</a>
</p>
<p><a href="{{unsubscribeLink}}">Unsubscribe</a></p>
<p>YOUR_COMPANY_NAME</p>
<p>{{companyAddress}}</p>
</body>
</html>
```

#### SMS Text Template Example

```
You just received {{triggerEvent.custom['creditsAwarded']}} in credits from the {{triggerEvent.custom['reason']}} benefit. Your balance is now {{triggerEvent.custom['newCreditsBalance']}}.
```

## "Inveterate: Credits Expiring" Custom Event

Triggered when some amount of a member's credits are expiring soon.&#x20;

**Event Properties**

| Name            | Description                | Example          | Template Syntax                              |
| --------------- | -------------------------- | ---------------- | -------------------------------------------- |
| creditsExpiring | Amount of credits expiring | `"$23.32"`       | `{{triggerEvent.custom['creditsExpiring']}}` |
| daysLeft        | Days until credits expire  | `15 days, 1 day` | `{{triggerEvent.custom['daysLeft']}}`        |
| tierName        | Name of membership         | `"Acme Gold"`    | `{{triggerEvent.custom['tierName']}}`        |

**Email Template Example**

```html
<p>
  You have {{triggerEvent.custom['creditsExpiring'] | default: ''}} that expire in {{triggerEvent.custom['daysLeft'] | default: ''}}.
</p>
<p>
  Head back to our site to check out what's new and put those credits to good use.
</p>
<p>
  <a href="LINK_TO_YOUR_STOREFRONT">Redeem my credits</a>
</p>
```

#### SMS Text Template Example

```
You have {{triggerEvent.custom['creditsExpiring']}} in credits that expire in {{triggerEvent.custom['daysLeft']}}. Thanks for being part of {{triggerEvent.custom['tierName']}}
```

## "Inveterate: Referral Completed" Custom Event

Triggered when a member completes a successful referral according to the referral benefit.

| Name              | Description                       | Example               | Template Syntax                              |
| ----------------- | --------------------------------- | --------------------- | -------------------------------------------- |
| creditsAwarded    | Amount of new credits awarded     | `"$10.00"`, `"$9.99"` | `{{triggerEvent.custom['creditsAwarded']`    |
| newCreditsBalance | Balance after credits awarded.    | `"$10.00"`, `"$9.99"` | `{{triggerEvent.custom['newCreditsBalance']` |
| tierName          | Name of membership                | `"Acme Gold"`         | `{{triggerEvent.custom['tierName']`          |
| referredEmail     | Email of member that was referred | <member@gmail.com>    | `{{triggerEvent.custom['referredEmail']}}`   |

**Email Template Example**

```markup
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<head></head>
<body>
<p>
  {{triggerEvent.custom['referredEmail']}} just joined {{triggerEvent.custom['tierName'] | default: ' '}} because you referred them!
</p>
<p>
As a thank you, we've added `{{triggerEvent.custom['creditsAwarded'] into your account. You now have a total of {{triggerEvent.custom['newCreditsBalance'] | default: ''}} that you can redeem for purchases since you’re a member of {{triggerEvent.custom['tierName'] | default: 'our program'}}.
</p>
<p>
  <a href="LINK_TO_YOUR_STOREFRONT">Shop now</a>
</p>
<p><a href="{{unsubscribeLink}}">Unsubscribe</a></p>
<p>YOUR_COMPANY_NAME</p>
<p>{{companyAddress}}</p>
</body>
</html>
```

**SMS Text Template**

```
You referred {{triggerEvent.custom['referredEmail']}} and earned {{triggerEvent.custom['creditsAwarded']}} in store credit. You have {{triggerEvent.custom['newCreditsBalance']}} in store credit. Thanks for being a part of {{triggerEvent.custom['tierName']}}
```

## "Inveterate: Rebill Success" Custom Event

Triggered when a customer's recurring membership bill payment is successfully processed in Shopify.

**Event Properties**

| Name             | Description            | Example            | Template Syntax                                              |
| ---------------- | ---------------------- | ------------------ | ------------------------------------------------------------ |
| orderId          | ID of order in Shopify | `"6235868004671"`  | `{{triggerEvent.custom['orderId'] \| default: ''}}`          |
| paymentAmount    | Rebill amount paid     | `$24.99`, `$25.00` | `{{triggerEvent.custom['paymentAmount'] \| default: ''}}`    |
| paymentAmountNum | Rebill amount paid     | `24.99`, `25`      | `{{triggerEvent.custom['paymentAmountNum'] \| default: ''}}` |
| nextBillingDate  | Date of next rebill    | `Aug 20, 2024`     | `{{triggerEvent.custom['nextBillingDate'] \| default: ''}}`  |
| tierName         | Name of membership     | `"Acme Gold"`      | `{{triggerEvent.custom['tierName'] \| default: ''}}`         |

**Email Template Example**

```html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
 <head></head>
 <body>
  <p>Your {{triggerEvent.custom['paymentAmount'] | default: ''}} payment was successfully processed for your {{triggerEvent.custom['tierName'] | default: ''}} membership.</p>
  <p>You will be billed again {triggerEvent.custom['nextBillingDate'] | default: 'next month'}}.</p>
  <p>Order ID: {triggerEvent.custom['orderId'] | default: 'Not found'}}.</p>
  <p><a rel="nofollow" href="LINK_TO_YOUR_STOREFRONT">Shop now</a></p>
  <p><a rel="nofollow" href="{{unsubscribeLink}}">Unsubscribe</a></p>
  <p>YOUR_COMPANY_NAME</p>
  <p>{{companyAddress}}</p>
 </body>
</html>
```

**SMS Text Example**

```
Your {{triggerEvent.custom['paymentAmount'] | default: ''}} payment was successfully processed for your {{triggerEvent.custom['tierName'] | default: ''}} membership.

You will be billed again {triggerEvent.custom['nextBillingDate'] | default: 'next month'}}.

Order ID: {triggerEvent.custom['orderId'] | default: 'Not found'}}
```

## "Inveterate: Lookback CFO Credits" Custom Event

This event is triggered when a customer is identified as having placed qualifying orders during the lookback period before joining the membership program, and they are eligible to receive retroactive credits.

**Properties:**

| Property Name                                 | Type               | Example Value | Description                                                     | Template Usage                                   |
| --------------------------------------------- | ------------------ | ------------- | --------------------------------------------------------------- | ------------------------------------------------ |
| `tierName`                                    | String             | `"Tier A"`    | The name of the member's current tier                           | `{{triggerEvent.custom['tierName']}}`            |
| `orderTotal`                                  | String (formatted) | `"$100"`      | Formatted total value of qualifying orders from lookback period | `{{triggerEvent.custom['orderTotal']}}`          |
| `orderTotalNum`                               | Number             | `100`         | Numeric total value of qualifying orders (for segmentation)     | For filtering only                               |
| `lookbackCreditsDays` or `lookbackCreditsDay` | String             | `"8 days"`    | Human-readable time period for the lookback window              | `{{triggerEvent.custom['lookbackCreditsDays']}}` |
| `potentialCredits`                            | String (formatted) | `"$10"`       | Formatted amount of credits the customer will receive           | `{{triggerEvent.custom['potentialCredits']}}`    |
| `potentialCreditsNum`                         | Number             | `10`          | Numeric amount of credits (for segmentation)                    | For filtering only                               |

**Example Template Usage:**

```python
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
 <head></head>
 <body>
  <p>Great news! Based on your {{triggerEvent.custom['orderTotal'] | default: ''}} in orders over the past {{triggerEvent.custom['lookbackCreditsDays'] | default: 'recent days'}}, you've earned {{triggerEvent.custom['potentialCredits'] | default: ''}} in store credits!</p>
  <p>These credits have been added to your {{triggerEvent.custom['tierName'] | default: ''}} membership account and are ready to use on your next purchase.</p>
  <p><a rel="nofollow" href="LINK_TO_YOUR_STOREFRONT">Shop now</a></p>
  <p><a rel="nofollow" href="{{unsubscribeLink}}">Unsubscribe</a></p>
  <p>YOUR_COMPANY_NAME</p>
  <p>{{companyAddress}}</p>
 </body>
</html>
```

**SMS Text Example**

```
You've earned {{triggerEvent.custom['potentialCredits'] | default: ''}} in credits based on your recent {{triggerEvent.custom['orderTotal'] | default: ''}} in purchases! 
Use them on your next order: LINK_TO_YOUR_STOREFRONT
```


# Okendo

### Okendo Integration - Credits for Reviews <a href="#step" id="step"></a>

Our integration with Okendo allows you to automatically reward your members with credits whenever they submit a review on your store. \
\
Specify the amount of credits you want to award a member per review within your Inveterate dashboard.

### Step 1. Get API Credentials from Okendo

In your Okendo account, navigate to Settings -> Integrations -> Okendo.

Copy the following:

* User ID
* Merchant REST API Key

<figure><img src="/files/DFQwLlWS8yxoqT5pVIn0" alt=""><figcaption></figcaption></figure>

### Step 2. Authorize integration in Inveterate <a href="#step-2-authorize-integration-in-inveterate" id="step-2-authorize-integration-in-inveterate"></a>

Navigate to the integrations page and click "Connect" on the Okendo integration.

<figure><img src="/files/7qGXoYajDQN7zcLMgy9Q" alt=""><figcaption></figcaption></figure>

Fill in your API User ID and Key.

<figure><img src="/files/gymYlSzKbiHrsowHdFbt" alt=""><figcaption></figcaption></figure>

### Step 3. Set credits for review amount and enable workflow <a href="#step-3-set-credits-for-review-amount-and-enable-workflow" id="step-3-set-credits-for-review-amount-and-enable-workflow"></a>

Click the ellipses ("..."), then "Set Credit Amount" to open the menu and set the amount.

<figure><img src="/files/60ujJctSD7g8x1V0GGSE" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/eXNvl0HeB7Z5SMvv8HuM" alt=""><figcaption></figcaption></figure>

Make sure to enable the workflow when you're ready.

<figure><img src="/files/cKJjY8FctFvHgcsTegUt" alt=""><figcaption></figcaption></figure>




---

[Next Page](/help-center/llms-full.txt/1)

