Creating Campaigns

Learn more about campaign types and how to create one.

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.

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

pageTime-Based Campaign

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.

pageReturn Campaign

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).


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.

pageCustom Event Schemas

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.

pageAchievements

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.

pageRedemption Code Campaign

Time-Based campaigns: Daily & Member's birthday

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


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.

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

pageFollow-up Campaigns

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.


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.

  • 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

    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: support@openloyalty.io.

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


Custom Units Expiration

Under Advanced Settings, you can specify custom units' expiration date. By enabling this feature, you can create dynamic expiration 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 provides the flexibility to calculate expiration 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.

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

Units expiration 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.

Please note the variables can be used in and outside the templates.


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.

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 last n 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 months 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 general 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


Last updated