LogoLogo
HomepageCase studiesBook a demo
User Guide
User Guide
  • Welcome to Open Loyalty!
  • What's New
    • 2024
    • 2023
    • 2022
  • What's Next
  • Technical Guide
  • Main Features
    • Global Management
      • Analytics
      • Settings
      • Config Duplication
      • Usage
    • Dashboard
      • General Overview
      • Units Wallet Overview
      • Additional Metrics
      • Members by Tiers
    • Members
      • Member List
        • Configuration
        • Creating Members
        • Managing Members
        • Removing Members
      • Segments
        • Creating Segments
        • Managing Segments
        • Segment Conditions
      • Referred Members
    • Campaigns
      • Creating Campaigns
        • Return Campaign
        • Referral Campaign
        • Time-Based Campaign
        • Redemption Code Campaign
        • Internal event - Achievement progressed
        • Percent value distribution
      • Managing Campaigns
      • Campaign Simulation
      • Follow-up Campaigns
    • Custom Events
      • Custom Event Schemas
    • Transactions
      • Adding Transactions
      • Managing Transactions
      • Channels
    • Tiers
      • Adding Tiers
      • Managing Tiers
      • Tiers Configuration
      • Tier Benefits
    • Wallets
      • Wallet Types and Configuration
      • Unit Transfers
        • Creating Unit Transfers
        • Importing Unit Transfers
        • Managing Unit Transfers
    • Achievements
      • Creating Achievement
      • Managing Achievements
      • Follow up Achievements
    • Rewards
      • Reward List
        • Rewards Configuration
        • Creating Reward
        • Reward Types
        • Units Conversion Coupon
        • Adding Coupons
        • Reward Flow
      • Reward Fulfillment
      • Reward Categories
    • Webhooks
      • How to Configure a Webhook
      • What Triggers a Webhook
      • Expiring Notifications
    • Collections
    • Imports / Exports
      • Imports
        • Sample Import Files
      • Exports
        • UI Data Exports
        • Configuration Exports
        • S3 Bucket Exports
    • Settings
      • Roles
      • Admins
        • System Logs
      • Tenants
      • Translations
    • Expressions
      • Attributes List
      • Operators
      • Custom Functions
      • Expression Examples
      • Sample Use Cases
        • Using Member Custom Attributes
        • Complex Effects (if, else)
        • Excluding Members
        • Elapsed Time Conditions
        • Using Additional Dates for Calculations
        • Register on Birthday
        • Transaction on Birthday
        • Tier Upgrade or Downgrade
  • Sample Setups
    • Good Practices
    • Pay with Points
    • Promo and Discounts in Cart
    • Sample Campaigns
      • #1 Earn 1 point for every $1 spent
      • #2 Earn 2x points when shopping on Monday morning
      • #3 Earn 1 stamp for every transaction
      • #4 Buy product ACME 123 and earn 100 points
      • #5 Refer a friend and get 100 points
      • #6 Refer 5 friends and get a $50 off coupon for the next purchase
      • #7 Register to the program and get 50 bonus points
      • #8 Get 30 bonus points for your first transaction in the loyalty program
      • #9 Cashback campaign
      • #10 Product meets selected criteria
    • Sample Achievements
      • #1 Celebrate summer - Buy 5 times between June and August
      • #2 Place 10 Orders above 50€ - Complete 10 transactions, for more than 50€ each
      • #3 Ambitious player - Log in to the game 3 times per week for 8 consecutive weeks
      • #4 SKU 'ABC' configuration - Spend total of 100$ on products with SKU 'ABC132' in September
      • #5 Workout track -Track a workout of at least 30 minutes for 5 days in a row
      • #6 4 referees made the transactions for 2 consecutive weeks
      • #7 2 referees made a transaction configuration
  • FAQ
    • Configuration Migration
    • Custom Attributes
    • Achievements
    • GDPR
    • Opt-Out
    • Referral Programs
    • Returns and Cancellations
    • Timezones
Powered by GitBook
On this page
  • Adding Campaign
  • Campaign Types
  • Campaign Trigger
  • Purchase Transaction
  • Return Transaction
  • Internal event
  • Custom event
  • Achievement
  • Redemption code
  • Time-Based campaigns
  • Basic Settings
  • Campaign attributes
  • Transaction item filters
  • Rules
  • Autocomplete
  • Custom Units Expiration and Pending settings
  • Using Member Custom Attributes in the Campaign Condition Expression
  • Campaign Limits

Was this helpful?

  1. Main Features
  2. Campaigns

Creating Campaigns

Learn more about campaign types and how to create one.

Last updated 5 months ago

Was this helpful?

Adding Campaign

To add a new Campaign:

  1. Go to the List of Campaigns under Campaigns from the left side menu

  2. Click ADD CAMPAIGN

  3. Fill in the required fields

  4. Switch Campaign status to Active

  5. Click ADD CAMPAIGN


Campaign Types

Before proceeding, select the campaign type that aligns with your objectives. Here are the available options:

  • Direct campaign: This one-sided campaign allows you to establish rules specifically for members participating in the campaign.

  • Referral campaign: A two-sided campaign enabling rule creation for both Referrers and Referees, incentivizing referrals.

  • Time-based campaign: Campaigns triggered based on specific periods (Daily or Member's birthday).

Consider the nature of your campaign and the desired interaction with members before selecting the appropriate campaign type.

These three types decide what triggers and conditions will be available for your campaign.


Campaign Trigger

Now you need to select the campaign trigger. There are three options available:

  • Purchase Transaction - Purchase transaction matched with a member

  • Return Transaction - Return transaction matched with a member

  • Internal Event - Event that happens in Open Loyalty i.e., Tier updated, member registered/activated, etc.

  • Custom Event - Events sourced from an external system or application

  • Achievement - Achievement completed by the member

  • Redemption code - Events based on redeeming generated redemption codes

  • (Only for Time-based type) Daily or Member's birthday

When several campaigns are activated by the same trigger, they are executed in order of their Campaign Start Date, with the earliest one being executed first.

Please check more detailed options for some of the triggers.

Purchase Transaction

When you select this trigger, each purchase transaction that is sent to OL and is successfully matched with a member will trigger the campaign. However, the effects will only be granted or executed when the specified conditions associated with the campaign are met.


Return Transaction

When you select this trigger, each return transaction that is sent to OL and is successfully matched with a member will trigger the campaign. However, the effects will only be granted or executed when the specified conditions associated with the campaign are met. Additionally, a return transaction needs to be matched with the transaction already in the system.

To find out more, please refer to the article below.


Internal event

This trigger operates based on internal events within the system and provides various options to choose from:

  1. Achievement Progressed: Triggers when a member makes progress within a specific achievement.

  2. Member Address Details Updated: Triggers when there's an update or change in the address details of a member.

  3. Member Company Details Updated: Triggers upon any modifications or updates made to the company details associated with a member.

  4. Member Profile Details Updated: Triggers when there are changes or updates in various profile details of a member.

  5. Member Tier Updated: Triggers when there's a change or update in the tier level of a member.

  6. Member Was Activated: Triggers upon the activation of a member (automatic or manual).

If you choose the Member Tier Updated trigger, the campaign will activate whenever a member's tier is either upgraded or downgraded.

To reward a member solely for reaching a higher tier, include the following expression in the campaign rules:

event.body.tierMoveUp == true

To reward a member exclusively for downgrading their tier, include this expression in the campaign rules:

event.body.tierMoveDown == true

Custom event

If you opt for the Custom Event trigger and find the Event name dropdown empty, it means there are no previously created Custom Event schemas. To utilize this trigger, follow these steps:

  1. Create a Custom Event Schema: Initiate by creating a Custom Event schema that aligns with the campaign criteria you intend to establish. (see the link below). This schema serves as the foundation for your campaign trigger.

  2. Dropdown Populated with Event Names: After creating the schema, when you click on the Event name dropdown, it will display a list of the previously created custom event schemas. If the selected schema contains any attributes, you will be able to utilize them when specifying conditions later on.

  3. Conditions for Campaign Creation: When configuring a "Custom Event" - based campaign, the created schemas and associated conditions will be available in the dropdown list. You can select these conditions from the list during the campaign creation process.

To find out more, please refer to the article below.


Achievement

This trigger operates based on the already created achievements that a member has successfully completed.

To find out more, please refer to the article below.


Redemption code

The Redemption Code feature enables the creation of campaigns centred around codes that members can redeem later.

To find out more, please refer to the article below.

Time-Based campaigns


Basic Settings

To set up your campaign, here are the required fields and options:

  • Campaign Name: Enter a distinctive and unique name for the campaign.

  • Campaign Description: Optionally, provide brief information about the campaign.

    • + Translation: Add translations for the campaign name and description.

  • Start Date: Specify the mandatory start date for the campaign.

  • End Date: Optionally, set an end date. If provided, it must be after the start date.

  • Campaign Attributes: Optionally, include attributes to add extra data or for filtering purposes. (see more information below.)

  • Campaign Visibility: Choose the visibility settings for the campaign:

    • Visible to Everyone: The campaign is visible to all users.

    • Segment or Tier Visibility: Select specific segments or tiers that can view the campaign.

    • Hidden: The campaign remains hidden from all users.

Campaign visibility only determines to whom the challenge is presented, not who can complete it (It doesn't affect the campaign conditions), and receives points. The condition must be specified in the rules.

  • Visibility - displaying the campaign

So, what triggers the campaign is the trigger + (optionally) condition in the rule.

To find out more about Campaign Visibility, please refer to the article below.

Campaign attributes

Campaign attributes, organized in a key:value format, serve as versatile data containers. These attributes offer multifaceted functionalities:

  1. Filtering in Admin Panel/API: Enables filtering campaigns based on specific criteria, aiding efficient campaign management and targeted audience segmentation.

  2. External Application Integration: Allows utilization of attribute data in external applications, enhancing management and filtering capabilities across various platforms.

For instance, an attribute like "new_member_campaign": "true" could be utilized to specifically display campaigns to new members. This attribute facilitates targeted campaign display solely to new members, ensuring personalized and relevant engagement strategies tailored to specific user segments.


Transaction item filters

Transaction filters are powerful tools that allow you to refine the products in customers' transactions. By applying specific criteria, such as size, quantity, price, and other relevant factors, you can effectively narrow down the selection to meet your needs.

Transaction item filter how-to:

  1. Click New Filter in the Transaction item filter section

  1. Select from the list filter you want to create a scenario for

  1. Name your scenario if needed

  1. Select condition -> click Save condition

  1. Complete creating the condition following the form

  2. Save condition of Rule


Rules

  • Condition - this condition will trigger your Campaign. For example, each Member whose name is Jack and who made a $100 purchase (conditions) will receive 20 Units.

You can set a maximum of 30 conditions within 1 Campaign Rule.

  • Effects - you will need to click on the purple button, the list with two options will appear

    • Deduct Units - select formulas to add, divide, multiply, and subtract your values and deduct units based on the calculation

    • Add Units - select formulas to add, divide, multiply, and subtract your values and add units based on the calculation

    • Give Reward - select the Reward that the Member who fulfills the conditions will receive

    • Set member Custom Attribute - set a custom attribute that the Member who fulfills the conditions will get

    • Remove member Custom Attribute - set a custom attribute that will be removed when the Member fulfills conditions

You can add more than one rule with different conditions and effects by clicking on the purple button "Add rule".

Please note that if you add e.g. 1 rule with 2 different conditions, both conditions must be met to reward a Member. But if you create two rules, only one of them must be fulfilled, because they are considered separately as each rule has its effect.

If you would like to remove the previously added condition just click on the "x" button on the right-hand side.

Please note that you can add a maximum of 6 rules in one campaign. Otherwise, you will get an error message.

After you have picked all of the necessary parameters just click on the "Add Campaign" button, a cordial celebration of your successful launch will appear and you will land on the Campaigns screen, where you can find your freshly created Campaign.

Please note that if you create the campaign and change its trigger, the form will be cleared from already put information.

Autocomplete

This feature helps you when filling in the 'Give Units' text field. When you will click on the text field and start typing, after the first two letters - the list with the suggested Templates or Variables will appear. You can mix the formulas (add, divide, multiply, and subtract) to obtain the expected result.

Besides the formulas, you can use already prepared templates, by clicking on the '+' button, where the searchable list will appear.

To choose the formula you can use the button "˅". Clicking on this button will open a list with optional formulas.

If any of your typed formulas have a mistake, a message about the problem will after trying to save the campaign.

VARIABLES:

  • Transaction gross value - transaction.grossValue

  • Total number of items in transaction - transaction.qty

  • Quantity of products with specific SKU - transaction.sku('').qty

  • Gross value of products with specific SKU - transaction.sku('').grossValue

  • Quantity of products from specific category - transaction.category('').qty

  • Gross value of products from specific category - transaction.category('').grossValue

  • Quantity of products from specific brand - transaction.maker('').qty

  • Gross value of products from specific brand - transaction.maker('').grossValue


Custom Units Expiration and Pending settings

Under Advanced Settings, you can specify custom units' expiration and pending dates. By enabling this feature, you can create dynamic expiration/pending dates based on a variety of conditions, ensuring that the campaign's incentives align with strategic business objectives such as encouraging quicker customer spending or rewarding long-term loyalty

This setting operates on a formula basis, which allows calculating expiration and pending dates using predefined variables and operators. For instance, you can set units to expire within a certain number of days post-transaction, after a specific number of days, months, or years, or even based on the customer's activity. This empowers campaign creators to tailor the urgency and attractiveness of the campaign rewards to the desired customer behavior.

Custom unit expiration and pending explanation

TEMPLATES:

  • At static date - the points will expire on the specific date

  • X days from transaction - the points will expire after X days from the transaction

  • X months from transaction - the points will expire after X months from the transaction

  • X year from transaction - the points will expire after X years from transaction

VARIABLES:

  • Current Date - it counts the days from the processing date of the transaction (the date of receiving the transaction in the system).

The example: add_days_to_date(executionContext.processedAt, 15). The transaction got into the OL on the 1st of Feb, 2024, so the expiration date of the points will be 16.02.2024 (+15).

  • Transaction document date - e.g add_days_to_date(transaction.purchasedAt, 5).

  • Member custom attribute - points will expire on the date of what’s in the member custom attribute value. (to_date - converts the key to date). Example custom attribute:

If you use the variable below, the points will expire on 2025-08-24.

  • But if you want to add days to the point expiration to the end date of the custom attribute, you can use one of the templates and the following formula: add_days_to_date(to_date(agg(customer.labels).getLabelValue('subscription_end_date)),6). Then the expiration date of points will be on 30.08.2025.

  • e.g. transaction took place at transaction date 2024-03-01 16:30 → formula days: add_days_to_date(transaction.purchasedAt, 3) → points expire at (2024-03-04 16:30)

→ IMPORTANT: it’s not by the end of the day, it’s always the same time as the event/ transaction date

Please note the variables can be used in and outside the templates. The same templates and variables stand for custom pending settings.


Using Member Custom Attributes in the Campaign Condition Expression

To provide users with more flexibility in performing Campaign actions, it is possible to use a member's Custom Attributes as a condition in the Campaign. Depending on the value provided in the Custom Attributes we can also perform various operations on the stored data

Supported types of data:

  • datetime, e.g. “2022-12-20T14:15:22+01:00”

  • number, e.g. “10.2”

  • string, e.g. “featured”

We can use it in the following scenarios:

  • To retrieve the given Custom Attribute, use: e.g. agg(customer.labels).getFirstLabelValue('post_date') In this example, the function will return a value of the key “post_date”.

  • To parse the custom attribute to date, use function to_date e.g. to_date(agg(customer.labels).getFirstLabelValue('post_date'))

  • In order to compare dates, use timestamp(), e.g. timestamp(to_date(agg(customer.labels).getFirstLabelValue('post_date')))

  • To compare numerical values, you don’t have to use any functions. Remember to use dot separator “.”, e.g. agg(customer.labels).getFirstLabelValue('posts_number') > 10

  • Give Effect for a transaction within 5 days of a given date: (timestamp(transaction.purchasedAt) - timestamp(to_date(agg(customer.labels).getFirstLabelValue('post_date')))) <= 432000

  • In order to limit the granting of effects to this condition only, another condition should be added agg(customer.labels).getFirstLabelValue('post_date) != null


Campaign Limits

Campaign limitation is one of the ways to incorporate anti-fraud into loyalty programs. These are based on different conditions in three main categories, namely: Global - relating to the entire campaign Individual - relating to the account of a single member Usage - how many times a member can receive points for a specific action.

When using this functionality, you can define how many units a single campaign can generate, with no breakdown per member; specify the maximum number of units a member can receive within a campaign, as well as how many times a member can receive units for fulfilling campaign conditions.

For example: Set an overall limit for the entire campaign of 10000 units, as well as a limit of 100 units for one member. As a result, I know that a minimum of 100 users can join the campaign, and each of them will be able to earn a maximum of 100 units.

Once the campaign point transfer (Units Campaign effect) is canceled, the units back to the pool.

Each of these limits can be set for a specific period of time during which it is enforced.

Timestamps:

  • No limit - the Campaign is not limited

  • Daily - Member can earn a specific number of units every X calendar days For example: The limit for number of units: In the last X calendar days Number of days: 3 Maximum number of units: 230 Each Member in every 3 days from today (2022.04.12 00:00 - 2022.04.15 00:00) can earn 230 units

  • Weekly - Member can earn a specific number of units every X calendar weeks For example: The limit for number of units: In last n calendar weeks Number of weeks: 5 Maximum number of units: 150 Each Member in every 5 weeks from this week (2022.04.11 00:00 - 2022.05.15 00:00) can earn 150 units

  • Monthly - Member can earn a specific number of units every X calendar month For example: The limit for the number of units: In the last n calendar months Number of months: 0 Maximum number of units: 15 Each Member in every 0 month from this month (2022.05.01 00:00 - 2022.05.31 00:00) can earn 15 units

  • Yearly For example: The limit for the number of units: In the last N calendar years Number of years: 0 Maximum number of units: 1 500 Each Member in every 0 years from this year (2022.01.01 00:00 - 2022.12.31 00:00) can earn 1 500 units

  • In total - this limit is set for the entire lifetime of the Campaign

Types of limits:

  1. Limit for the number of units - here you can set the global maximum number of Units to earn for all Members.

  2. The limit for the number of units per member - here you can set the maximum number of Units for each Member.

  3. The limit for the number of triggers per member - here you can set the maximum number of triggers for each Member

Limitation logic:

For daily/monthly/yearly limits, we consider the business date of the event (transaction, custom event, etc).

**Example:** If a campaign has a limit of 1,000 points per day for units issued per member, and the administrators send two transactions for a member—one for today’s date and another for two days ago—that member will receive 2,000 points in total: 1,000 points for today’s transaction and 1,000 points for the transaction from two days ago. In summary, the limits are based on the date the campaign is executed (“executedAt”) according to the business date of the event.


A time-based campaign type is a campaign that is triggered not by the event but at a certain time during the day—more in the article.

- be able to earn points by fulfilling the given conditions

When at least one scenario is created click Add new rule under -> Add condition -> Select Transaction filters: Quantity or Value)

Adding or deducting units allows for various types of calculations. If your business case requires a calculation that is not listed in the campaign templates, please contact our Support via email: .

Advanced settings override , making it possible to customize campaigns at a very detailed level.

Referral Campaign
Time-Based Campaign
Return Campaign
Custom Event Schemas
Achievements
Redemption Code Campaign
Time-based campaign
Follow-up Campaigns
support@openloyalty.io
RULE: conditions
Rules
default wallet settings