Creating Campaigns
Learn more about campaign types and how to create one.
Last updated
Was this helpful?
Learn more about campaign types and how to create one.
Last updated
Was this helpful?
To add a new Campaign:
Go to the List of Campaigns under Campaigns from the left side menu
Click ADD CAMPAIGN
Fill in the required fields
Switch Campaign status to Active
Click ADD CAMPAIGN
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.
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
Please check more detailed options for some of the triggers.
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.
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.
Return CampaignThis trigger operates based on internal events within the system and provides various options to choose from:
Achievement Progressed: Triggers when a member makes progress within a specific achievement.
Member Address Details Updated: Triggers when there's an update or change in the address details of a member.
Member Company Details Updated: Triggers upon any modifications or updates made to the company details associated with a member.
Member Profile Details Updated: Triggers when there are changes or updates in various profile details of a member.
Member Tier Updated: Triggers when there's a change or update in the tier level of a member.
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:
To reward a member exclusively for downgrading their tier, include this expression in the campaign rules:
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:
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.
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.
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.
Custom Event SchemasThis trigger operates based on the already created achievements that a member has successfully completed.
To find out more, please refer to the article below.
AchievementsThe 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.
Redemption Code CampaignA 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 Time-based campaign article.
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
RULE: conditions - be able to earn points by fulfilling the given conditions
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.
Follow-up CampaignsCampaign attributes, organized in a key:value format, serve as versatile data containers. These attributes offer multifaceted functionalities:
Filtering in Admin Panel/API: Enables filtering campaigns based on specific criteria, aiding efficient campaign management and targeted audience segmentation.
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 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:
Click New Filter in the Transaction item filter section
Select from the list filter you want to create a scenario for
Name your scenario if needed
Select condition -> click Save condition
When at least one scenario is created click Add new rule under Rules -> Add condition -> Select Transaction filters: Quantity or Value)
Complete creating the condition following the form
Save condition of Rule
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".
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.
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.
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
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.
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
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
datetime, e.g. “2022-12-20T14:15:22+01:00”
number, e.g. “10.2”
string, e.g. “featured”
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 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.