# Campaigns & Referral Campaigns

Open Loyalty lets you create flexible and powerful **campaigns** that reward your members based on specific actions or achievements. These campaigns can drive engagement, incentivize behavior, and grow your program through both **direct interaction** and **referrals**.

This article gives you an overview of how **Direct Campaigns** and **Referral Campaigns** work, and links out to their configuration guides.

***

### 🧾 Types of Campaigns

There are two main types of campaigns in this section:

#### 🔹 Direct Campaigns

These campaigns are triggered directly by a member’s action, such as making a purchase, achieving a milestone, or redeeming a code. You can configure a wide range of conditions and effects based on:

* **Transaction triggers** (e.g., purchases, returns)
* **Custom and internal events**
* **Achievements**
* **Redemption codes**

#### 🔹 Referral Campaigns

Referral Campaigns reward **referrers** (existing members) based on the activity of the **referees** (newly invited members). These campaigns are ideal for viral program growth.

The logic is triggered when the referred member performs a defined action (such as a transaction or event), and the campaign delivers a reward to the referring member.

You can configure:

* Triggers and conditions based on the referee’s activity
* Multi-level reward structures (1st, 2nd, 3rd level referrers)
* Reward types and limits

***

### ⚙️ Trigger Types

Campaigns are activated by a variety of **event triggers**, each of which supports its own set of conditions and variables. These include:

* [Purchase Transaction](/main-features/campaigns/campaigns-and-referral-campaigns/creating-campaigns/trigger-types/purchase-transaction.md)
* [Return Transaction](/main-features/campaigns/campaigns-and-referral-campaigns/creating-campaigns/trigger-types/return-transaction.md)
* [Internal Event](/main-features/campaigns/campaigns-and-referral-campaigns/creating-campaigns/trigger-types/internal-event.md)
* [Custom Event](/main-features/campaigns/campaigns-and-referral-campaigns/creating-campaigns/trigger-types/custom-event.md)
* [Achievement](/main-features/campaigns/campaigns-and-referral-campaigns/creating-campaigns/trigger-types/achievement.md)
* [Redemption Code](/main-features/campaigns/campaigns-and-referral-campaigns/creating-campaigns/trigger-types/redemption-code-campaign.md)

Each trigger has its own article with details on available attributes, best practices, and example configurations.

***

### 🔧 Configuring Campaigns

Creating and managing campaigns includes several key building blocks:

* **Campaign Effects**: Define how members are rewarded (e.g., add units, give reward).
* **Conditions & Filters**: Apply custom filters based on member attributes, transaction item details, or achievement progress.
* **Limitations**: Control how many times a campaign can issue rewards globally or per member.
* **Expressions & Variables**: Use dynamic formulas and member data to fine-tune your logic.
* **Templates with Autocomplete**: Simplify the configuration with smart autocomplete for variables.
* **Custom Attributes**: Use member-specific custom data in filters or expressions.
* **Distribution Rules**: Define how many units to distribute using static or percent-based logic.

See the campaign creation guide for a complete walkthrough:<br>

{% content-ref url="/pages/HQuxPjB52QWPOej7zG7G" %}
[Creating Campaigns](/main-features/campaigns/campaigns-and-referral-campaigns/creating-campaigns.md)
{% endcontent-ref %}

***

### ✅ Best Practices

* **Schedule thoughtfully**: Use appropriate frequency and timing.
* **Segment wisely**: Target specific audiences to increase relevance.
* **Rate-control your rewards**: Set sensible per-member and total limits before launching.
* **Monitor engagement**: Use dashboard analytics to identify spikes or drops.
* **Iterate using duplicates**: Copy campaigns for A/B testing.
* **Clean responsibly**: Deactivate and export before deleting, ensuring historical reward data remains accurate.

***

## Learn more about

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Creating Campaigns</strong></td><td><a href="/pages/HQuxPjB52QWPOej7zG7G">/pages/HQuxPjB52QWPOej7zG7G</a></td></tr><tr><td><strong>Managing Campaigns</strong></td><td><a href="/pages/CBoxyQP6CGolLXwUSHYn">/pages/CBoxyQP6CGolLXwUSHYn</a></td></tr><tr><td><strong>Deleting Campaigns</strong></td><td><a href="/pages/PmVfciITeoL9AnaOEJBQ">/pages/PmVfciITeoL9AnaOEJBQ</a></td></tr><tr><td><strong>Trigger Types</strong></td><td><a href="/pages/49q24QdBkVP1LBiauWNv">/pages/49q24QdBkVP1LBiauWNv</a></td></tr><tr><td><strong>Referral Campaigns</strong></td><td><a href="/pages/2TMM68lFVeTp1OgMW7Gf">/pages/2TMM68lFVeTp1OgMW7Gf</a></td></tr><tr><td><strong>Campaign Limitation</strong></td><td><a href="/pages/uZgkuToQPBFwtVSmVzwv">/pages/uZgkuToQPBFwtVSmVzwv</a></td></tr></tbody></table>

### 🧠 Related Articles

{% content-ref url="/pages/bcEN516g7WiwElql1slQ" %}
[Monitoring & Analytics](/main-features/campaigns/monitoring-and-analytics.md)
{% endcontent-ref %}

{% content-ref url="/pages/kNF1QsocBs7SQFNcqyPk" %}
[Campaign Simulation](/main-features/campaigns/campaign-simulation.md)
{% endcontent-ref %}

{% content-ref url="/pages/uUCidbYe2emZ99wJq0Jg" %}
[Custom Units Expiration & Pending Settings](/main-features/campaigns/custom-units-expiration-and-pending-settings.md)
{% endcontent-ref %}

{% content-ref url="/pages/AuZ2WANdc34mx304POYB" %}
[Using Expressions](/main-features/campaigns/using-expressions.md)
{% endcontent-ref %}

{% content-ref url="/pages/xhRn42iGj5amwW8V9wKI" %}
[Transaction Item Filters](/main-features/campaigns/campaigns-and-referral-campaigns/creating-campaigns/transaction-item-filters.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.openloyalty.io/main-features/campaigns/campaigns-and-referral-campaigns.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
