# 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.\
    [internal-event-achievement-progressed](https://help.openloyalty.io/main-features/campaigns/campaigns-and-referral-campaigns/creating-campaigns/trigger-types/internal-event/internal-event-achievement-progressed "mention")
* **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](https://help.openloyalty.io/main-features/expressions/sample-use-cases/tier-upgrade-or-downgrade "mention")
* **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.
