# Manage loyalty programs

> For the complete documentation index, see [llms.txt](https://docs.talon.one/llms.txt).

You can configure a [loyalty program](/docs/product/loyalty-programs/overview.md) at any time to suit your requirements.

:::note
After there are point transactions in the loyalty program, changes to any program
settings only apply to new transactions. Existing transaction data remains
unchanged.
:::

## Manage points settings

You can specify the following points settings:

- When points become active.
- When points expire.
- How points are managed after a partial return or cancellation.

### Points

You can define when your points become active and when they expire.

To define points settings for a loyalty program:

1. On the leftmost menu, click <Loyalty className="icon"/> **Loyalty**.
1. Click the name of the program you want to edit.
1. On the left-side menu, click <Points className="icon"/> **Points**.
1. In **Start date**, select when the points become active:
   - **Immediate**: Points become active at session closure.
   
   - **Relative to session closure**: Points become active at the end of a defined time
      period following session closure.
      {
<details>
  <summary>Examples: Points activation relative to session closure</summary>
    
      For all the examples mentioned in this table, we assume that the customer session
      closes on <code>12 October 2024, 07:20:50</code>.
    
    
      
      <colgroup>
	      <col span="2" style={{width:50+"%"}}/>
	    </colgroup>
      
        
          Time after session closure
          Points become active on
        
      
      
        
          
            <code>1</code> days, Same time as session closure
          
          
            <code>13 October 2024, 07:20:50</code>
          
        
        
          
            <code>1</code> days, Start of day (00:00:00)
          
          
             <code>13 October 2024, 00:00:00</code>
          
        
        
          
            <code>1</code> days, End of day (23:59:59)
          
          
            <code>13 October 2024, 23:59:59</code>
          
        
        
          
            <code>1</code> weeks, Same weekday as session close
          
          
           <code>19 October 2024, 07:20:50</code>
          
        
        
          
            <code>1</code> weeks, End of week (Sunday 23:59:59)
          
          
           <code>20 October 2024, 23:59:59</code>
          
        
        
          
            <code>1</code> months, Same day as session closure
          
          
            <code>12 November 2024, 07:20:50</code>
          
        
        
          
            <code>1</code> months, End of month (23:59:59)
          
          
            <code>30 November 2024, 23:59:59</code>
          
        
      
      
    
</details>
}
1. In **Expiry date**, select when the points expire:
   - **Unlimited**: Points do not expire and remain active.
   - **Relative to start date**: Points expire on a specific date and time relative to
     their start date.
     {
<details>
  <summary>Examples: Points expiry relative to start date</summary>
    
      For all the examples mentioned in this table, we assume:
        
        The customer session closes on <code>12 October 2024, 07:20:50</code>.
        The rewarded loyalty points are active immediately.
        
    
    
      
      <colgroup>
	      <col span="2" style={{width:50+"%"}}/>
	    </colgroup>
      
        
          Time after start date
          Points expire on
        
      
      
        
          
            <code>1</code> days, Same time as start date
          
          
            <code>13 October 2024, 07:20:50</code>
          
        
        
          
            <code>1</code> days, Start of day (00:00:00)
          
          
             <code>13 October 2024, 00:00:00</code>
          
        
        
          
            <code>1</code> days, End of day (23:59:59)
          
          
            <code>13 October 2024, 23:59:59</code>
          
        
        
          
            <code>1</code> weeks, Same weekday as start date
          
          
           <code>19 October 2024, 07:20:50</code>
          
        
        
          
            <code>1</code> weeks, End of week (Sunday 23:59:59)
          
          
           <code>20 October 2024, 23:59:59</code>
          
        
        
          
            <code>1</code> months, Same day as start date
          
          
            <code>12 November 2024, 07:20:50</code>
          
        
        
          
            <code>1</code> months, End of month (23:59:59)
          
          
            <code>30 November 2024, 23:59:59</code>
          
        
      
      
    
</details>
}

### Return policy

You can choose how loyalty points are rolled back for partially returned, cancelled, and reopened [customer sessions](/docs/dev/concepts/entities/customer-sessions.md#customer-session-states). By default, only pending loyalty points can be rolled back.

To manage rollbacks for points that are already active in a customer's balance, use the following options:

- Enable **Active points deduction** to allow the deduction of a customer's active points for a rollback.
- Enable **Negative balance** to allow a customer's active points balance to become negative for a rollback or manual points deduction. You can see this setting only after enabling **Active points deduction**.

## Manage tier settings

For profile-based loyalty programs, you can create, edit, and delete [tiers](/docs/product/loyalty-programs/profile-based/use-loyalty-tiers.md), and choose when and how to downgrade customers who don't have enough points to remain in their tier. You can create up to 20 tiers.

To create tiers for a loyalty program:

1. On the leftmost menu, click <Loyalty className="icon"/> **Loyalty**.
1. Click the name of the program you want to edit.
1. On the left-side menu, click <Tiers className="icon"/> **Tiers**.
1. Click **Create Tier** and configure the following parameters:
   - In **Tier name**, type the name of the tier.
   - In **Min point threshold**, define the number of points needed for customers to
        enter the tier.

1. Click **Save** to create the tier. Repeat the steps above to create tiers as required.

1. Select when to downgrade customers who do not have enough points to remain in their tier after it expires:
   - [**Immediate downgrade**](/docs/product/loyalty-programs/profile-based/use-loyalty-tiers.md#immediate-tier-downgrade):
      The customer is downgraded to a tier that matches their current balance as soon as
      they don't have enough points to remain in their current tier.
   - [**Scheduled downgrade**](/docs/product/loyalty-programs/profile-based/use-loyalty-tiers.md#scheduled-tier-downgrade):
      The customer remains in their current tier until the tier is reevaluated.

   :::important
   - You can add or edit **Scheduled downgrade** for tiers only if there are no point transactions in the loyalty program.
   - Tiers are reevaluated every 30 minutes. A tier's scheduled reevaluation time is rounded up to the next 30-minute mark.
      For example, let's imagine a tier starts on March 1, 10:40:00 and is reevaluated monthly. This tier is reevaluated on April 1, 11:00:00, at the nearest 30-minute interval.
   :::

1. For **Scheduled downgrade** only:

      - In **Expiration type**, select one of the following options:
        - **Relative to program join date**: The tier is reevaluated [relative to when the customer joined the loyalty program](/docs/product/loyalty-programs/profile-based/use-loyalty-tiers.md#expiration-relative-to-program-join-date).
          - In **Reset every**, select how often the tier is reevaluated. For example,
            every six months, on the last day of the month.
        - **Relative to tier join date**: The tier is reevaluated [relative to when the customer joined the tier](/docs/product/loyalty-programs/profile-based/use-loyalty-tiers.md#expiration-relative-to-tier-join-date).
          - In **Reset every**, select how often the tier is reevaluated. For example, every week,
            relative to the tier join date.
        - **Absolute expiration date**: The tier is reevaluated [relative to the start date of the tier cycle](/docs/product/loyalty-programs/profile-based/use-loyalty-tiers.md#absolute-expiration-date) for all customers in the loyalty program.
          - In **Tier cycle start**, select the start date of the tier cycle. For example,
            March 1, 2025.
          - In **Reset every**, select how often the tier is reevaluated. For example, every
            two years.
      - In **Select how to downgrade customers...**, select one of the following options:
        - [**Match current balance**](/docs/product/loyalty-programs/profile-based/use-loyalty-tiers.md#match-current-balance):
          The customer enters the tier that matches the number of active points in their
          point balance.
        - [**Go down one tier**](/docs/product/loyalty-programs/profile-based/use-loyalty-tiers.md#go-down-one-tier):
          The customer moves to the tier below their current one. If the customer does not have enough points for the lowest tier's minimum requirement, they are removed from all tiers, and no current tier is assigned to them.

## Manage join policy

For [profile-based loyalty programs](/docs/product/loyalty-programs/profile-based/create-pb-programs.md), select the policy that defines when customers join the loyalty program.

To select the join policy for a loyalty program:

1. On the leftmost menu, click <Loyalty className="icon"/> **Loyalty**.
1. Click the name of the program you want to edit.
1. On the left-side menu, click <JoinPolicy className="icon"/> **Join policy**.
1. Select one of the following policies:
   - **Points earned**: Customers join the loyalty program when they earn points for the first time.
   - **Points activated**: Customers join the loyalty program when their points become active for the first time.

## Manage general program settings

You can edit the [loyalty program](/docs/product/loyalty-programs/overview.md) settings you specified when creating the program.

:::important
- The **API name**, **Time zone**, and **Environment** settings cannot be changed after you create a loyalty program.
- After you delete a loyalty program, customers can no longer use the points they earned through the loyalty program. Deleting the loyalty program also deletes all subledgers and point transactions associated with it.
:::

To configure settings for a loyalty program:

1. On the leftmost menu, click <Loyalty className="icon"/> **Loyalty**.
1. Click the name of the program you want to edit.
1. On the left-side menu, click <Settings className="icon"/> **Settings**.
1. In **Basic info**, you can edit the **Name** and **Description** of the loyalty program.
1. For [card-based loyalty programs](/docs/product/loyalty-programs/card-based/card-based-overview.md), edit the **Card user limit** to set the maximum number of customers that can be [linked](/integration-api#tag/Loyalty-cards/operation/linkLoyaltyCardToProfile) to a loyalty card. 
To link an unlimited number of customers, enable **Unlimited Users**.
1. Enable **Subledgers** so you can [create subledgers](/docs/product/loyalty-programs/use-subledgers.md) in the loyalty program.
1. (Optional) In **Connected Applications**, you can add or delete Applications linked to your loyalty program.

   :::note
   Removing an Application from the list of connected Applications is only possible if
   it does not contain a campaign with rules referencing this loyalty program.
   :::

1. To delete a loyalty program that is not linked to any Application, click <Delete className="icon"/> **Delete Program**.

   <FeatureAccessInfoBox/>

## Related pages

- [Create a point-based loyalty campaign](/docs/product/tutorials/loyalty/loyalty-points-program.md)
- [Manage campaign features](/docs/product/campaigns/settings/manage-campaign-features.md)
- [Use subledgers](/docs/product/loyalty-programs/use-subledgers.md)
