# Internal Event

An **Internal Event** trigger activates when built-in member lifecycle changes occur in Open Loyalty—such as tier updates, account activation, profile modifications, or achievement progress. This allows you to reward or penalize based on system-generated events without external input.&#x20;

***

### 🔔 Supported Internal Events

When creating a Direct or Referral campaign and selecting **Internal Event** as the trigger type, you can choose among:

* **Achievement Progressed**
  * If you want to reward the members based on the progression of the achievement (e.g. once they reach 50% of the goal), please refer to the article below for more guidance on the setup.\
    [Achievement Progressed](/main-features/campaigns/campaigns-and-referral-campaigns/creating-campaigns/trigger-types/internal-event/internal-event-achievement-progressed.md)
* **Member Address Details Updated**
* **Member Company Details Updated**
* **Member Profile Details Updated**
* **Member Tier Updated**
  * You can differentiate between tier moves using the following expressions in rule conditions. For more information, please refer to the article below.\
    [Tier Upgrade or Downgrade](/main-features/expressions/sample-use-cases/tier-upgrade-or-downgrade.md)
* **Member Was Activated**&#x20;

***

### ✅ Why Use This Trigger

* Automates rewards based on system-defined member milestones.
* Separates internal-event-based campaigns from other types for clarity and goal isolation.
* Keeps full control through conditions, effects, and limits.

***

### 🛠️ Step-by-Step Setup&#x20;

{% stepper %}
{% step %}
**Add Campaign**

Go to **Campaigns** or **Referral Campaigns** → ***Add campaign*** → select **Internal Event** trigger.

* Select the type of internal event.
  {% endstep %}

{% step %}
**Set Basic Campaign Details**

* Name, Description, Translations
* Start/End Date, Display Order, Visibility (Everyone / Segment / Tier)
* **Campaign Status** – The campaign will start only if it is active
  {% endstep %}

{% step %}
**Add Rules**

* **Condition**: (optional)
* **Effect**: e.g., "Add units: 1 × grossValue", "Add 100 fixed points", "Issue coupon".
  {% endstep %}

{% step %}
**Set Limits & Budget**

* Per-member frequency (e.g., once per month)
* Campaign-level spending caps (total units)
  {% endstep %}

{% step %}
**Summary**

* Review the campaign configuration and amend if needed
* Click on **Add Campaign**
  {% endstep %}
  {% endstepper %}

***

### 👥 Use Case Examples

* **Tier-Up Bonus**: \
  Award 500 points whenever a member moves up a tier.
* **Welcome Gift:** \
  Add 100 points when a member is activated.
* **Profile Update Reward:** \
  Add 50 points when a member updates their profile.
* **Achievements:** \
  Grant token rewards when progress milestones are reached.

***

### 📊 Best Practices

* **Test Configuration**: \
  Use the **Campaign Simulator** or API to ensure return rules work as expected.
* **Monitor Regularly**: \
  Check engagement and deduction rates to avoid overcharging members.
* **Control Reward Frequency:** \
  Set clear frequency limits to avoid repeated rewards.


---

# 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/creating-campaigns/trigger-types/internal-event.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.
