# Follow-up Campaigns

Follow-up campaigns let you build a **campaign chain**. Completing one campaign unlocks the next.

{% hint style="info" %}
The **Visibility** and **Availability** concepts described here are supported across **Campaigns**, **Referral Campaigns**, and **Challenges** (new feature).
{% endhint %}

### Overview

A follow-up campaign is a loyalty campaign that becomes **available/visible** only after a member completes a previous campaign.

Unlocking the next campaign is the reward for finishing the previous one.

### Business goals

Use follow-up campaigns to:

* Drive repeat purchases with progressive rewards.
* Create onboarding journeys (first purchase → second purchase → subscription).
* Build multi-step gamification without running campaigns in parallel.

### How it works

1. A member completes **Campaign A**.
2. The member qualifies for a **segment** based on that completion.
   * **Campaign completion** segments support a rolling time window (for example: *completed in the last X days*).
   * **Challenge completion** segments are **not** time-scoped (completion is treated as *ever completed*).
3. **Campaign B** is configured with that segment in its conditions and/or visibility.
4. When the member joins the segment, Campaign B becomes available.

{% hint style="warning" %}
Segment membership can take \~10 minutes to update after campaign completion.
{% endhint %}

### Example setup (A → B → C, with a fallback D)

Example scenarios:

* Member completes **Campaign A** → can see/unlock **Campaign B**
* Member completes **Campaign B** → can see/unlock **Campaign C**
* Member does **not** complete A–C → can see and complete **Campaign D**

{% stepper %}
{% step %}

### Create Campaign A

Go to **LOYALTY MODULES → Campaigns**.

Create **Campaign A** with the start/end date (example: 22.10.23 – 28.10.23).

In this example, customers who spend **€100+** receive **50 points**.

![](/files/hGELkBIjvA7ROIzAQEi2)
{% endstep %}

{% step %}

### Create a segment for “completed Campaign A”

Go to **GENERAL → Members → Segments**.

Create a segment with condition **Campaign completion** (example: complete campaign **1** time over the last **15** days).

Select **Campaign A**.

![](/files/REAcikEnxwP942JvV01Q)
{% endstep %}

{% step %}

### Create Campaign B for members in the segment

Go to **LOYALTY MODULES → Campaigns**.

Create **Campaign B** with the next start/end date (example: 29.10.23 – 04.11.23).

Use condition **Member segment** and select the segment from the previous step.

Set rewards/effects for your use case.

<img src="/files/JoePAIvppOvPMnCPYiX1" alt="" data-size="original">
{% endstep %}

{% step %}

### Create a segment for “completed Campaign B”

Go to **GENERAL → Members → Segments**.

Create a segment with condition **Campaign completion** for **Campaign B**.

![](/files/acRz7Rf7YUEnzDYphQ2Q)
{% endstep %}

{% step %}

### Create Campaign C

Go to **LOYALTY MODULES → Campaigns**.

Create **Campaign C** (example: 05.11.23 – 11.11.23).

Use condition **Member segment(s)** and select the segment from the previous step.

Set rewards/effects for your use case.

![](/files/j5shWr4Z9odJo5nOE4kU)
{% endstep %}

{% step %}

### Create a segment for “did not complete Campaign A”

Go to **GENERAL → Members → Segments**.

Create a segment with condition **Campaign completion** (example: complete campaign **0** times over the last **7** days).

Select **Campaign A**.
{% endstep %}

{% step %}

### Create Campaign D (fallback)

Go to **LOYALTY MODULES → Campaigns**.

Create **Campaign D** with a timeframe that covers A, B, and C (example: 29.10.23 – 11.11.23).

In campaign conditions:

* Include the “did not complete Campaign A” segment.
* Exclude segments for members who completed Campaign B and Campaign C.

In campaign visibility:

* Restrict visibility to the “did not complete Campaign A” segment.

Use different conditions in A vs D, so members can’t complete both unintentionally.
{% endstep %}
{% endstepper %}

### Tips and gotchas

{% hint style="info" %}
**Segments and “Last X days”**

This applies to segments based on **Campaign completion**.

* Same timeframe for all follow-ups: set **Last X days** to match the full chain (start of A → end of D).
* Different timeframes: set **Last X days** to cover the relevant past window for the segment.
* Segment completion count must be `<=` the campaign limitation per member.
* Prefer an end date for every follow-up campaign.
  {% endhint %}

{% hint style="info" %}
**Campaign completion vs Challenge completion segments**

Both **Campaigns** and **Challenges** support visibility for a given **segment** or **tier**.

The key difference is segment membership timing:

* **Campaign completion**: can be limited to *completion in the last X days/weeks/months*.
* **Challenge completion**: not limited by time (member stays “completed” once they finish it).
  {% endhint %}

{% hint style="info" %}
**Fallback campaign safety (A vs D)**

If the member doesn’t complete Campaign A, they might unlock Campaign D immediately.

To avoid overlap:

* Use different conditions in A and D.
* In D, set visibility to the “completed A 0 times” segment.
* In D conditions, exclude segments for members who completed A and B.
  {% endhint %}

### “Last X days/weeks/months” examples

Examples for the field **Member completed the campaign in the last X days/weeks/months**.

{% hint style="info" %}
To include completions **only** from the current day/week/month, set **X = 0**.
{% endhint %}

<figure><img src="/files/zL6V27jnsyD7J7gJh6wk" alt="" width="375"><figcaption></figcaption></figure>

**Current time: 2023-09-29 13:30:00 (days)**

* `0` → 2023-09-29 00:00:00 – 2023-09-29 13:30:00
* `1` → 2023-09-28 00:00:00 – 2023-09-29 13:30:00

**Current time: 2023-09-29 13:30:00 (weeks, week starts Monday)**

* `0` → 2023-09-25 00:00:00 – 2023-09-29 13:30:00
* `1` → 2023-09-18 00:00:00 – 2023-09-29 13:30:00

**Current time: 2023-09-29 13:30:00 (months)**

* `0` → 2023-09-01 00:00:00 – 2023-09-29 13:30:00
* `1` → 2023-08-01 00:00:00 – 2023-09-29 13:30:00


---

# 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/follow-up-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.
