> For the complete documentation index, see [llms.txt](https://kbase.whitelabel-loyalty.com/product/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kbase.whitelabel-loyalty.com/product/loyalty-engine/campaigns/goal-based-campaigns.md).

# Goal Based Campaigns

Learn how Goal Based campaigns track user progress toward specific targets using missions. Covers how missions work within campaigns, when to use Goal Based campaigns, and practical examples.

#### What are Goal Based campaigns?

Goal Based campaigns let you set targets for your users and track their progress automatically. Each campaign contains one or more **missions** — goals that users work toward by performing qualifying actions.

When a user performs a qualifying action, the Loyalty Engine updates their progress. When the target is reached, the mission is completed and the configured reactions fire — such as awarding points, issuing a reward, or calling a webhook.

Progress is tracked in real time and per user, so every member has their own progress against each mission.

***

#### When to use Goal Based campaigns

Goal Based campaigns are the right choice when you want to track cumulative progress and reward users for reaching a target. Common use cases:

* **Stamp cards** — buy 10 coffees, get one free
* **Spending milestones** — spend £200 this month for a bonus reward
* **Engagement challenges** — complete your profile, make a purchase, and leave a review
* **Onboarding journeys** — guide new members through key first actions
* **Seasonal challenges** — complete 5 visits during December for a holiday reward

***

#### How Goal Based campaigns work

A Goal Based campaign contains one or more **missions**. Each mission defines:

1. **Event trigger** — the [event type](/product/loyalty-engine/events/event-types.md) that counts toward progress
2. **Completion condition** — how progress is measured: **count** ("make 5 purchases"), **value** ("spend £200"), or **boolean** ("leave a review")
3. [**Conditions**](/product/loyalty-engine/campaigns/conditions.md) *(optional)* — criteria that events must meet to count toward progress
4. [**Reactions**](/product/loyalty-engine/campaigns/reactions.md) — what happens when the mission is completed
5. **Time window** *(optional)* — a duration within which the user must complete the mission

When you add a mission you choose its structure: **Individual** (a single goal) or **Multiple** (a parent mission containing nested child missions, completed together). Missions can also carry a **time window** and a **cooldown**. Completion flows upward — nested missions complete their parent, and parent missions complete the campaign.

<figure><img src="https://1999217057-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEFmrMvu6tg0ZiSX9SGEq%2Fuploads%2Fz86gA4XDE7xvd2mbEebn%2FSCR-20260828-llzu.png?alt=media&amp;token=f2ddcb2d-f258-4c3c-bf10-c0dec49ede64" alt=""><figcaption></figcaption></figure>

When an event is reported:

1. The engine checks whether it matches a mission's trigger event type.
2. If conditions are configured, it checks whether the event qualifies.
3. If the event qualifies, the user's progress is incremented.
4. If progress reaches the target, the mission is completed and reactions fire.

**Multiple missions**

A Goal Based campaign can contain any number of missions. Missions are displayed as a list on the campaign detail screen.

Missions grouped at the same level can run in **parallel** (completed in any order) or **sequentially** (unlocking one at a time in a set order).

<figure><img src="https://1999217057-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEFmrMvu6tg0ZiSX9SGEq%2Fuploads%2Fz3BwRS7KO2sq0Sy3gVB7%2FSCR-20260828-lpuu.jpeg?alt=media&amp;token=5c94cba7-078f-4299-a0a4-a7ee81cffd3c" alt=""><figcaption></figcaption></figure>

See [Missions](/product/loyalty-engine/campaigns/goal-based-campaigns/missions.md) for a detailed reference on mission configuration, completion conditions, progress tracking, opt-in, and time windows.

***

#### Goal Based campaign examples

| Campaign                       | Missions                                                          | Completion condition        | Reward                                        |
| ------------------------------ | ----------------------------------------------------------------- | --------------------------- | --------------------------------------------- |
| **Coffee stamp card**          | 1 mission: Buy a coffee                                           | Count: 10                   | Free coffee voucher                           |
| **New member challenge**       | 3 missions: Complete profile, make first purchase, leave a review | Boolean (each)              | +50 bonus points for each mission             |
| **Monthly spending milestone** | 1 mission: Spend £200                                             | Value: £200 (30-day window) | Exclusive reward unlocked                     |
| **Holiday visit challenge**    | 1 mission: Visit a store                                          | Count: 5 (Dec 1–31 window)  | Seasonal gift card                            |
| **2026 Tasks**                 | Multiple: 4 seasons, each with 4 nested missions                  | Nested → season → campaign  | Reward per season, bigger reward for the year |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://kbase.whitelabel-loyalty.com/product/loyalty-engine/campaigns/goal-based-campaigns.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
