Skip to main content
Altcraft Docs LogoAltcraft Docs Logo
User guideDeveloper guideAdmin guide
Company siteHelp center
English
  • Русский
  • English
v75
Login
  • User documentation
  • FAQ
  • Altcraft glossary
  • Profiles and databases
  • Communication channels
  • Segmentation
  • Message templates
  • Mailings
  • Campaigns
  • Automation scenarios
  • Market
  • Loyalty programs
    • Loyalty programs
    • Promotion codes
  • Reports and analytics
  • Integrations
  • Weblayers
  • Settings
  • API requests: where to start
  • Changelog
  • Documentation archive
  • library
  • Loyalty programs
  • Loyalty programs
Documentation for version v75

Loyalty programs

A loyalty program is a customer reward system for target actions such as purchases, registration, content viewing, and more. Customers earn points that can be spent on discounts, movies, plans, and services. The program includes tiers (bronze, silver, etc.), reporting, rules for points accrual and expiration, as well as integrations with other services and communication channels.

Creating a loyalty program​

To manage loyalty programs, go to Loyalty — Loyalty programs in the main menu. A list of existing loyalty programs will open. To edit a program, click its title.

To start a new loyalty program, click + Create at the top of the page:

The loyalty program settings window will open. Specify the name of your program and its external identifier. Optionally, add a description:



Select the database from which participants will be taken.

tip

Please note: after selection, the database cannot be changed; only one loyalty program can be active in a single database at a time.

Editing a loyalty program​

After creation, you will be taken to the loyalty program editor, which consists of several tabs: General, Members and partners, Promotions, and Transactions:

General​

The General section is used to configure the basic structure of the loyalty program. It defines the key parameters that determine how points are accrued, used, and tracked, as well as how customers progress through loyalty tiers.

Loyalty program points​

Loyalty program points — this block is used to create and manage points types within the loyalty program. Specify the points name and external identifier, and optionally add a description.

There are two types of points:

Standard points — used for accrual and subsequent redemption for bonuses, discounts, and other rewards.

When creating standard points, you can configure the following parameters:

  • Initial balance for a new loyalty program member — the number of bonus points automatically granted to a new member upon joining the program.
  • Points validity period — defines how long accrued points remain valid. The period can be set in days, weeks, months, or years. After expiration, points are canceled.
  • Allow bonus points refund — enables returning bonus points to a member, for example, in case of a product return or service cancellation.
  • Deactivate points at a specific time — sets a date after which the points become inactive (not accrued or used). Useful for temporary or seasonal programs.
  • Bonus-to-currency ratio — a required parameter defining how many bonus points correspond to a monetary amount, for example: 1 point = 1 USD or 10 points = 1 USD. Used for discount and redemption calculations.

Qualification points — used to evaluate customer activity and determine their tier in the loyalty program (bronze, silver, gold, etc.).

When creating qualification points, you can configure:

  • Allow bonus points refund — enables returning bonus points to a member.
  • Tier group binding — links the points to a specific loyalty tier group (for example, Bronze, Silver, Gold).
  • Bonus-to-currency ratio — defines the conversion rate between points and monetary value.

Do not forget to activate the created points. If needed, points can be cloned to create another type based on them.

Loyalty tier groups​

Loyalty tier groups allow you to segment loyalty program members into different levels or statuses based on activity, accumulated points, or other criteria.

Specify the name and external identifier of the tier group, and optionally add a description:

Several tier group models are available:

  • Cumulative model — once a member reaches a tier, it is retained permanently. Suitable for long-term motivation programs.

Specify the points type bound to this model.

  • Cyclic model — the achieved tier is valid only for a defined period. After the period ends, the system reevaluates the member's status.

Configure the model:

  • Set the interval for tier reevaluation;
  • Specify the points type bound to the model;
  • Enable Upgrade tier immediately when conditions are met to apply tier changes instantly;
  • Configure qualification points reset rules, for example at the end of each period or at fixed intervals;
  • Optionally enable Extend tier until the end of the month.
  • Dynamic model — the member's tier directly depends on their current characteristics or activity and changes automatically when conditions change.

After completing the basic settings, go to Members and partners.

Members and partners​

The Members and partners section is used to manage loyalty program members (end users) and partners (companies providing additional benefits).

This section includes the following elements:

Loyalty program members — customers registered in the loyalty system. They earn points for specific actions (for example, payments, content viewing, data confirmation) and can redeem points for discounts, content, or additional options.

To add members, click + Add. Three options are available:

1. Add all database profiles — mass registration of all customers in the database. 2. Add profiles from a segment — registration of a selected group of users. 3. Add a member — manual registration of a single customer.

Specify the registration date source:

It can be a specific date:

Or a profile field:

After members are added, you can remove individual members or all members using Clear members list, and export the list using the corresponding button.

Loyalty program partners — this section manages organizations cooperating with the loyalty program to expand its capabilities.

Click + Create to add a new partner. The partner settings window will open:

Specify the partner name and external identifier. Optionally, add a link to the partner's official website, a contact email, and the partnership start date.

Promotions​

The Promotions section is used to create and manage loyalty program promotions that automatically accrue and deduct points, apply discounts, and grant other benefits to orders and products in the Market.

Promotions are divided into two groups: trigger and discount and points promotions.

Trigger promotions​

Trigger promotions are marketing activities in which, when rules are met (triggers are activated), a participant becomes eligible to receive bonus points. In other words, this is a set of rules according to which a customer can earn (and later lose) loyalty points. Such promotions are linked to triggers when creating campaigns and scenarios.

To create a new trigger promotion, click + Create. A promotion setup window opens:

Specify the name of the promotion and its additional identifier. Add a description if needed.

Then set the start and end dates of the promotion:

  • Promotion start — starts immediately after activation or at a specific date and time;
  • Promotion end — ends manually, at a specific date and time, or after a specified period.

Next, define the promotion rules. They control how points can be accrued and deducted for participants. Accrual and deduction rules are configured as separate conditions. Specify the point type to which the rules apply and the exact value or range of points to be changed:

After saving and activating the promotion, it can be used in trigger-based campaigns and scenarios to automate point accrual. For example, you can set up a promotion that awards bonus points for placing a first order, purchasing products from a selected category, or reaching a specific order amount.

Discount and points promotions​

Points and discount promotions are loyalty program promotions that are automatically applied at checkout or during order calculation via the Market. They manage point accrual and deduction, discount application, and other benefits based on configured conditions, audiences, and application rules.

Points promotions manage a participant's loyalty balance. They accrue or deduct points when specified conditions are met, such as purchasing products, reaching an order total, participating in a promotion, or using points for payment. These promotions do not change product prices directly; they affect the participant's future benefits and loyalty tier.

Discount promotions are applied to orders or individual products and change their price. They are used to grant purchase benefits such as discounts, special prices, and other incentives.

Arbitration​

Promotions can run simultaneously and apply to the same order or product, so the system requires a mechanism to manage how they work together. For this purpose, the loyalty program includes arbitration.

Arbitration is a promotion application rule that defines how the system processes multiple eligible promotions at the same time. It determines:

  • which promotions are applied;
  • the order in which they are applied;
  • whether promotions can be combined;
  • which promotions apply together and which do not.

Arbitration is used whenever a single order or product meets the conditions of multiple promotions. It is configured at several levels and works hierarchically.

Main arbitration is the core arbitration applied to all points and discount promotions within the loyalty program. It defines the overall benefit calculation logic and always affects the final result, regardless of promotion structure.

Even if promotions are grouped or have their own rules, the final calculation always goes through the main arbitration.

Group arbitration allows promotions to be combined into groups, each with its own arbitration settings. It defines how promotions within the group interact. Groups can also contain subgroups.

Group arbitration works locally, only within its group. Its result is then passed upward and processed by the loyalty program's main arbitration.

In-promotion arbitration applies when a single promotion contains multiple benefits. It defines whether benefits are applied in parallel or sequentially.



There are several types of arbitration:

  • Consistent application — promotions are applied one after another in the order defined within the group. Each subsequent promotion is calculated based on the result of the previous one. For example, if one discount is applied first and another follows, the second discount is calculated from the reduced price. Suitable when order and step-by-step price or balance changes matter.

  • Incompatibility — only one of the eligible promotions is applied. At the product or order level, the first promotion that meets its conditions is applied, and the rest are ignored. Used when promotions logically exclude each other, for example, “either a discount or a gift”.

  • Summation — all eligible promotions are applied simultaneously. Discounts are added together, and accrued points are summed. The result is calculated as the combined effect of all promotions in the group. Suitable when multiple promotions should reinforce each other.

  • Maximum benefit — the system evaluates possible promotion combinations and selects the one that provides the greatest benefit to the participant. Used in complex promotional mechanics where the best option should be selected automatically without manual priority setup.

Additional limits can be configured for arbitration to control the final result and prevent excessive discounts or overly low prices:

  • Maximum discount — limits the maximum discount that can be applied regardless of the number or combination of triggered promotions. If the total discount exceeds the limit, the system caps it automatically.

  • Minimum product price — sets the lowest allowed product price after all promotions are applied. If promotion calculations result in a price below this minimum, the system adjusts the result and stops further reduction.

Limits configured in the main arbitration apply to all promotions in the loyalty program.

Arbitration keeps promotion outcomes predictable and controlled, even with complex discount and bonus structures.

Practical example

Assume a customer wants to buy an all-in-one PC for ₽100,000. They have access to a 20% birthday discount and can redeem 15% of the price with bonus points. Here is how it works with different arbitration types:

Consistent application
100,000 → −20% = 80,000 → −15% = ₽68,000
Promotions are applied one after another.

Incompatibility
100,000 → either −20% = ₽80,000, or −15% = ₽85,000
Only one promotion is applied.

Summation
100,000 → −(20% + 15%) = ₽65,000
All promotions are added together.

Maximum benefit
Comparison: 80,000 / 85,000 / 68,000 / ₽65,000
The lowest price is selected.

Creating and configuring promotions​

To create a new promotion, click + Create — Promotion. The promotion type selection screen opens.

At this step, select the type of promotion to create:

  • Discount — a promotion that grants loyalty program participants discounts or special conditions at checkout. These promotions directly affect product or order prices.
  • Point — a promotion that manages loyalty point accrual or deduction. Points can be earned through purchases and used to receive discounts when paying for an order.

At the top of the page, specify the main promotion details:

  • Name — displayed in the promotion tree and calculation results.
  • Additional identifier — used for navigation and analytics.
  • Description — optional.

The Promotion group block defines where the promotion is placed in the tree. By default, it is added to the Main arbitration. If promotion groups are configured, you can select one, and the promotion will follow that group's arbitration rules:



The Audience block defines which participants can access the promotion.

You can select:

  • all loyalty program participants;
  • participants in selected segments;
  • participants outside selected segments;
  • participants of specific loyalty tiers;
  • everyone without restrictions, including customers not enrolled in the loyalty program.

The Start and end dates block defines the promotion lifecycle. A promotion participates in calculations only during its active period.

You can set a start:

  • immediately after activation;
  • at a specified date and time.

For the end date, one of the following options is available:

  • manual only;
  • at a specified date and time;
  • after a specified time interval.

The Availability block restricts when the promotion can be applied, with settings for:

  • availability at any time or by schedule;
  • active days and months;
  • daily execution or a specified recurrence.

You can also enable a mode where the promotion is available only when a promo code from a selected pool is activated. Without entering a promo code, the promotion will not be applied. This option can be used to create promo codes with discounts configured in the loyalty program.

The Sales channels and points of contact block defines where the promotion can be applied:

  • available for all channels and points;
  • limited to specific sales channels;
  • within a channel, available for all or selected points.

This setting is taken into account during order calculation and separates online and offline promotions.

The Products and orders settings define what the discount applies to and how benefits are processed within the promotion.

First, configure how benefits are applied inside the promotion. Then set up conditions and benefits.

Products

Benefits can apply:

  • to all products;
  • to products from selected product segments;
  • to products outside selected segments.

Orders

Benefits can apply:

  • to all orders;
  • to orders from selected order segments, created directly in the promotion settings;
  • to orders outside selected segments.

Within each condition, add benefits — specific discounts or advantages granted when promotion conditions are met. Click + Benefit to add one.

Benefits for discount promotions

  • Give a discount — a discount in a specified amount, percentage, or fixed number of points. You can limit the number of discounted items per order;
  • Use the price from the field — uses a price from a custom product field. The price can be multiplied by a specified factor, for example 0.75 for a 25% discount;
  • Round price — rounds the product price to an integer, half, nearest integer down, tens, or nearest ten;
  • Display templated text — passes text with the order, supporting variables and emoji. The text is sent with order data and can be passed via API, for example to an email or POS terminal;
  • Discount from a partner — grants a discount on products from selected partners according to partner product settings.

Benefits for points promotions

  • Discount in points — a discount issued in points, as a specified amount, percentage, or fixed number of points. You can limit the number of discounted items per order;
  • Display templated text — passes text with the order, supporting variables and emoji;
  • Accrual points — credits specified loyalty points to the profile. You can configure when points are credited, for example at order creation or after delivery;
  • Award points from a custom field — credits points from a custom product field, or accrues a fixed number of points per currency unit spent, for example 200 points for every ₽1,500 spent;
  • Discount from a partner — grants a points-based discount on products from selected partners according to partner product settings.

After completing all required sections, the promotion can be saved or activated. An activated discount promotion participates in order calculations according to configured arbitration and conditions. If saved, the promotion appears as a draft and must be activated later.

When working with promotions, the top of the page shows the change status and quick actions.

If there are unapplied changes in the tree, the system displays a notification: “Unapplied changes detected”, with two options:

  • Apply — makes changes effective for real calculations.
  • Revert — discards unapplied changes and restores the last applied version.

Unapplied changes are considered in test mode only. Real calculations use changes only after clicking Apply.

Below is the list of promotions and groups:

  • the header shows the number of active promotions;
  • quick actions on the right: filters/search, Test, Create;
  • the tree shows the Main arbitration and its limits, such as maximum discount and minimum product price;
  • groups and promotions have action menus, and items can be dragged within the tree and moved between groups.

Each promotion has a quick actions menu, which can be used to:

  • edit the promotion;
  • deactivate it (if active);
  • move it to another group;
  • clone it;
  • end the promotion (all related processes stop and it cannot be reactivated).

Group management​

Promotion groups are used to logically organize promotions and manage their interaction through separate arbitration.

A group is a node in the promotion tree where its own arbitration type is defined, limits for maximum discount and minimum price are configured, and the application order of included promotions is set.

Groups can be nested and placed inside other groups or within the loyalty program's main arbitration.

When creating a group, specify:

  • group name;
  • parent group or main arbitration;
  • arbitration type and limits.

After creating a group, promotions can be:

  • moved into it during creation or editing;
  • dragged between groups directly in the list;
  • reordered within the group to affect results in sequential application;
  • deactivated in bulk or archived via quick actions.

As with promotions, changes to group structure and promotion order must be applied. Until applied, changes are considered only in test mode. The final result is always additionally processed by the loyalty program's main arbitration.

Promotion testing​

To check how promotions apply to an order, click Test to open test mode, where you can set order and participant parameters and view the result, including unapplied changes.

Select a member and products for testing:

You can select an existing participant profile or create a profile from context.

When selecting an existing profile, click Select, choose a participant, and it will be fixed for testing:

When building a profile from context, a test participant is created with configurable parameters:

  • point balance;
  • loyalty levels;
  • segments;
  • linked promo codes.

Next, define the products for the promotion within an order:

For a test order, specify:

  • Sales channel and contact point;
  • Order date and time, including time zone;
  • Lines — products, quantity, and final price. You can edit products for the test order only; Market data remains unchanged;
  • Point redemption — amount and type of points to deduct;
  • Promocodes;
  • Shipping cost;
  • Region.

If Auto-calculate is enabled, the final price is calculated as the sum of products and delivery.

After configuring the participant and products, click Test. The Result tab shows the final benefit application:

The panel shows:

  • number of orders;
  • number of items;
  • number of applied benefits;
  • total order value (before discount) and discount amount;
  • delivery cost and discount;
  • final order total with applied discount.

The Points tab shows loyalty balance changes after the order:

The Order tab contains a table of benefit-related operations. Each row includes:

  • order item number;
  • line (product);
  • benefit;
  • benefit result;
  • applied promotion;
  • promotion type.

The table supports search and configurable visible columns via the actions menu.

Transactions​

The Transactions section contains a list of all transactions within the loyalty program. Here you can also create a new transaction to accrue or redeem points.

The transactions table provides detailed information about each balance change. It includes the following columns:

  • ID — transaction ID
  • External ID — external transaction identifier
  • Created at — transaction creation date
  • Transaction type — transaction type
  • Member — loyalty program member profile
  • Points — points type used
  • Balance before — balance before the transaction
  • Value — number of accrued or redeemed points
  • Balance after — balance after the transaction
  • Source type — entity type that initiated the transaction
  • Source — link to the source entity

To create a new transaction, click + Create. The transaction setup window will open:

  • Optionally specify an external identifier;
  • Select the member;
  • Select the trigger promotion;
  • Select the points type;
  • Specify the operation type — accrual or redemption;
  • Add a transaction comment;
  • Optionally specify additional JSON fields.
Last updated on Oct 24, 2025
Previous
Loyalty programs
Next
Promotion codes
  • Creating a loyalty program
  • Editing a loyalty program
    • General
      • Loyalty program points
      • Loyalty tier groups
    • Members and partners
  • Promotions
    • Trigger promotions
    • Discount and points promotions
      • Arbitration
      • Creating and configuring promotions
      • Group management
      • Promotion testing
    • Transactions
© 2015 - 2025 Altcraft, LLC. All rights reserved.