Conditions
Conditions are the brains of your gamification system. They're rule containers that sit in your RapidMule dashboard and automatically evaluate every Action you send. When a Condition's requirements are met, magic happens - Badges are awarded, Triggers fire, and Deliverables are issued.
What is a Condition?
Think of a Condition as a complete rule that defines when and how a player earns a specific Badge or Trigger. Every Badge and Trigger in RapidMule has at least one Condition attached to it.
The Formula:
Condition = Challenges + Filters + Target (Badge/Trigger)
When you send an Action to RapidMule, the engine evaluates it against all active Conditions. If an Action satisfies a Condition's Challenges and passes its Filters, the associated Badge or Trigger is awarded.
Anatomy of a Condition
Every Condition has three key components:
1. Target Action
Which action type triggers this condition?
"purchase"- Tracks purchase actions only"login"- Tracks login actions only"complete_workout"- Tracks workout actions only
2. Challenges
The "what must happen" rules. Challenges define the specific criteria that must be met:
- Several Times Challenge: "Player must perform this action X times"
- Sum Challenge: "Player must accumulate a total of X (e.g., $1000)"
- In A Time Period Challenge: "Player must do X within Y days (sliding window)"
- For A Time Period Challenge: "Player must do X during specific dates (fixed period)"
You can combine multiple Challenges within one Condition!
3. Filters (Optional)
The "which actions qualify" rules. Filters narrow down which Actions count toward the Condition:
- "Only purchases where
category = "electronics"" - "Only workouts where
difficulty = "advanced"" - "Only bets where
amount >= 50"
Real-World Example
Let's create a "VIP Customer" badge for users who spend $1000+ in any 30-day period:
Dashboard Configuration:
Badge: "VIP Customer"
↓
Condition:
Target Action: "purchase"
Challenge 1: Sum Challenge
- Action Object to Sum: "amount"
- Target Value: 1000
Challenge 2: In A Time Period Challenge
- Time Window: 30 days
Filter:
- Action Object: "category"
- Operator: "is not"
- Value: "refund"
What happens:
- User makes a $300 purchase → Added to running total (300/1000)
- User makes a $450 purchase → Added to running total (750/1000)
- User makes a $100 refund → Filtered out (doesn't count)
- User makes a $300 purchase → Total reaches $1050 ✅
- All within 25 days (< 30-day window) ✅
- Badge awarded! 🎉
Combining Multiple Challenges
The real power of Conditions comes from combining multiple Challenges:
Example 1: Habit Formation
Goal: Award "Fitness Enthusiast" to users who work out 10 times AND burn 5000 total calories in any 30 days
Condition:
Action: "complete_workout"
Challenge 1: Several Times Challenge
Target Count: 10 workouts
Challenge 2: Sum Challenge
Action Object: "calories_burned"
Target Value: 5000
Challenge 3: In A Time Period Challenge
Time Window: 30 days
What this means: The player must hit all three targets:
- Complete 10 workouts ✅
- Burn 5000 calories total ✅
- Do it within any 30-day span ✅
Example 2: Category Mastery
Goal: Award "Shopping Expert" to users who make at least 1 purchase from each of 5 different categories
Condition:
Action: "purchase"
Challenge 1: Several Times Challenge
Target Count: 1 per unique category
Challenge 2: Unique Values Challenge
Action Object: "category"
Unique Count Required: 5
Conditions vs Challenges vs Filters
It's easy to confuse these, so here's the breakdown:
| Concept | Purpose | Example |
|---|---|---|
| Condition | The complete rule container | "VIP Customer Condition" |
| Challenge | Specific criteria within the rule | "Spend $1000 total" + "Within 30 days" |
| Filter | Which actions qualify | "Only count purchases where category != refund" |
Think of it like baking a cake:
- Condition = The recipe
- Challenges = Required ingredients (eggs, flour, sugar)
- Filters = Quality standards (organic eggs only, high-grade flour)
Multiple Conditions for One Badge
Sometimes you want players to earn the same Badge through different paths. You can attach multiple Conditions to a single Badge:
Example: "Power User" Badge
Badge: "Power User"
Condition 1: Spending Path
- Spend $5000 total (Sum Challenge)
Condition 2: Activity Path
- Complete 100 actions (Several Times Challenge)
Condition 3: Social Path
- Get 50 upvotes on content (Sum Challenge)
The player can earn "Power User" by satisfying any one of these Conditions. This creates multiple engagement paths!
When Are Conditions Evaluated?
Conditions are evaluated in real-time when you send an Action. There's no batch processing or delay:
Send Action → Evaluation starts immediately → Response in milliseconds
This means your frontend can instantly display:
- "🎉 New badge earned!"
- "You're 3 purchases away from VIP status"
- "Congratulations, you unlocked premium features!"
Dashboard-Only Configuration
Here's the beautiful part: You never write condition logic in code. All Conditions, Challenges, and Filters are configured once in your RapidMule dashboard.
The dashboard handles:
- Challenge configuration
- Filter setup
- Rule combinations
- Badge/Trigger assignment
- Deliverable issuance
You can change rules, add new badges, modify filters - all without touching your code! 🎯
Common Condition Patterns
Pattern 1: Simple Milestone
Condition: "First Purchase Badge"
Action: "purchase"
Challenge: Several Times (count = 1)
Pattern 2: Accumulation Goal
Condition: "Big Spender Badge"
Action: "purchase"
Challenge: Sum (amount = 10000)
Pattern 3: Consistency Reward
Condition: "Loyal User Badge"
Action: "login"
Challenge 1: Several Times (count = 30)
Challenge 2: In A Time Period (30 days)
Pattern 4: Filtered Achievement
Condition: "Mobile Champion Badge"
Action: "login"
Challenge: Several Times (count = 50)
Filter: platform = "mobile"
Pattern 5: Complex Combination
Condition: "Elite Athlete Badge"
Action: "complete_workout"
Challenge 1: Several Times (count = 50)
Challenge 2: Sum (calories_burned = 25000)
Challenge 3: In A Time Period (60 days)
Filter 1: difficulty = "advanced"
Filter 2: completed_at_gym = true
Benefits of the Condition System
1. No Code Changes Required
Change rules without deploying new code. Marketing can create new campaigns without engineering!
2. Flexible Combinations
Mix and match Challenges and Filters to create sophisticated rules.
3. Real-Time Evaluation
Instant feedback to users when conditions are met.
4. Multiple Paths to Success
Attach multiple Conditions to one Badge for different earning paths.
5. Clear Separation of Concerns
Your code sends events. RapidMule handles gamification logic.
Challenges
Challenges are the specific rules within a Condition that define "what must happen" for a player to earn a Badge or Trigger. They're the building blocks of your gamification logic.
Think of Challenges as the actual criteria you're measuring:
- "Did the player do this 5 times?" (Several Times Challenge)
- "Did they accumulate a total of $1000?" (Sum Challenge)
- "Did they complete 10 workouts in any 30-day window?" (In A Time Period Challenge)
Each Challenge type serves a different purpose, and you can combine multiple Challenges within one Condition to create sophisticated rules.
Challenge Types
Several Times Challenge
The "Several Times Challenge" requires players to perform a specific action or achieve a particular milestone multiple times to earn rewards, recognition, or progress in the gamified system.
Award the player with a "VIP" badge after placing 100 bets.
This challenge is designed to foster repeated engagement, skill development, and sustained participation, motivating players to consistently interact with the platform.
Sum Challenge
The Sum Challenge defines conditions where players must accumulate a specific total through their activities, events, or actions. As players engage, their contributions are added to a cumulative total.
Award the "Depositor" badge when the total sum of deposit actions reaches $50,000.
The challenge is completed once this total reaches or exceeds the specified target, rewarding continued participation and progress.
For A Time Period Challenge
This challenge can be used where players are tasked with completing specific activities, achieving goals, or accumulating points within a set timeframe. These challenges are designed to create a sense of urgency and excitement.
Log in to the mobile app every day during January.
In A Time Period Challenge
This challenge is very similar to the "For A Time Period" challenge. The only difference is "In A Time Period" challenge has a sliding time window.
Log in to the mobile app at least 10 times during a 30-day window.
The key difference:
- For A Time Period: Fixed calendar dates (January 1-31)
- In A Time Period: Sliding window (any consecutive 30 days)
The sliding window is much more forgiving and creates achievable goals for users who join at different times.
Combining Challenges: Patterns
The real power of Challenges comes from combining them within a single Condition. Here are common patterns:
Pattern 1: Count + Time Window
Goal: Build consistent habits with flexible deadlines
Badge: "Fitness Enthusiast"
Challenge 1: Several Times Challenge (10 workouts)
Challenge 2: In A Time Period Challenge (30 days)
What this means: Complete 10 workouts within any 30-day span. The window slides with user activity, making it achievable for everyone.
Pattern 2: Volume + Value
Goal: Reward both quantity and quality
Badge: "Power Trader"
Challenge 1: Several Times Challenge (50 trades)
Challenge 2: Sum Challenge ($50,000 total volume)
What this means: Place at least 50 trades AND trade at least $50,000 total. This prevents users from gaming the system with either many small trades or few large trades.
Pattern 3: Accumulation + Time Pressure
Goal: Create urgency while tracking progress
Badge: "Monthly Champion"
Challenge 1: Sum Challenge (5000 points)
Challenge 2: For A Time Period Challenge (January 1-31)
What this means: Accumulate 5000 points during January. Everyone starts fresh at the beginning of the month, creating a competitive sprint.
Pattern 4: Triple Combination
Goal: Complex achievement for advanced users
Badge: "Elite Athlete"
Challenge 1: Several Times Challenge (50 workouts)
Challenge 2: Sum Challenge (25,000 calories burned)
Challenge 3: In A Time Period Challenge (60 days)
What this means: Complete 50 workouts AND burn 25,000 total calories, both within any 60-day window. This creates a high-value achievement that requires sustained commitment.
Challenge Examples by Industry
E-commerce: VIP Customer Badge
Goal: Reward high-value customers
Condition:
Action: "purchase"
Challenge 1: Sum Challenge
- Object: "amount"
- Target: 1000
Challenge 2: In A Time Period Challenge
- Window: 30 days
Business Impact: Customers who spend $1000+ in any 30 days unlock VIP perks (free shipping, priority support, exclusive access).
Fitness App: Streak Master Badge
Goal: Build daily exercise habits
Condition:
Action: "complete_workout"
Challenge 1: Several Times Challenge
- Count: 30
Challenge 2: For A Time Period Challenge
- Period: 30 consecutive days
Business Impact: Users who work out daily for a month develop lasting habits and are significantly less likely to churn.
Gaming: Season Champion Badge
Goal: Competitive seasonal achievement
Condition:
Action: "win_match"
Challenge 1: Several Times Challenge
- Count: 100 wins
Challenge 2: For A Time Period Challenge
- Season dates: March 1 - March 31
Business Impact: Creates monthly competitive cycles that bring players back regularly.
Community Platform: Content Creator Badge
Goal: Encourage quality content creation
Condition 1 (Ranked Badge):
Action: "create_post"
Rank 1: 1 post
Rank 2: 5 posts
Rank 3: 20 posts
Rank 4: 50 posts
Rank 5: 100 posts
Condition 2 (Quality Badge):
Action: "receive_upvote"
Challenge 1: Sum Challenge
- Count: 100 upvotes
Challenge 2: In A Time Period Challenge
- Window: 90 days
Business Impact: Rewards both volume (posts) and quality (upvotes), creating a balanced incentive structure.
Choosing the Right Challenge Type
| Goal | Challenge Type | Example |
|---|---|---|
| Track milestones | Several Times | "Complete 10 purchases" |
| Accumulate value | Sum Challenge | "Spend $1000 total" |
| Build habits | Several Times + In A Time Period | "5 workouts in any 7 days" |
| Create urgency | For A Time Period | "Win 50 matches in January" |
| Long-term growth | Sum Challenge (no time limit) | "Burn 1 million calories (lifetime)" |
| Flexible consistency | In A Time Period | "Login 20 times in any 30 days" |
Challenge Design Tips
1. Start Easy, Scale Hard
Badge: "Community Contributor" (Ranked)
Rank 1: 1 post (easy entry)
Rank 2: 5 posts (achievable)
Rank 3: 20 posts (commitment)
Rank 4: 50 posts (dedication)
Rank 5: 100 posts (mastery)
2. Use Sliding Windows for Habits
# ✅ Good: Forgiving, achievable
"5 workouts in any 7-day window"
# ❌ Bad: Too strict, users give up
"Work out every single day for 7 days"
3. Combine Quantity + Quality
# ✅ Good: Balanced incentive
Challenge 1: 50 posts
Challenge 2: 100 total upvotes
# ❌ Bad: Encourages spam
Challenge: 100 posts (no quality check)
4. Match Time Windows to User Behavior
# Daily habits
"Login 7 times in 7 days"
# Weekly goals
"Complete 3 purchases in any 7-day window"
# Monthly challenges
"Earn 1000 points in January"
# Lifetime achievements
"Reach 1 million total points"
Filters
Filters are the gatekeepers of your Conditions. They answer the question: "Which Actions should count toward this Badge or Trigger?" While Challenges define "how many" or "how much," Filters define "which ones."
What is a Filter?
A Filter is a criteria applied to Action Objects that narrows down which Actions qualify for a Condition. Without Filters, every Action of a given type would count. With Filters, you can be extremely selective.
Example without Filter:
Condition: "First Purchase Badge"
Action: "purchase"
Challenge: Several Times (count = 1)
→ ANY purchase triggers this badge.
Example with Filter:
Condition: "Electronics Enthusiast Badge"
Action: "purchase"
Challenge: Several Times (count = 1)
Filter: category = "electronics"
→ ONLY electronics purchases trigger this badge.
How Filters Work
Filters act as a pre-filter before Challenges are evaluated. If an Action doesn't pass the Filters, it never even reaches the Challenge logic.
Filter Operators
RapidMule supports various comparison operators for Filters:
| Operator | Description | Example |
|---|---|---|
is / = | Exact match | category is "electronics" |
is not / != | Not equal | category is not "refund" |
> | Greater than | amount > 100 |
>= | Greater than or equal | amount >= 50 |
< | Less than | age < 18 |
<= | Less than or equal | duration <= 30 |
contains | String contains | title contains "React" |
starts with | String starts with | email starts with "vip" |
ends with | String ends with | email ends with "@company.com" |
RapidMule'da kullanılabilen tüm filter operatörlerini ve özelliklerini görmek için demo talep edin.
Common Filter Patterns
Pattern 1: Category-Specific Badges
Badge: "Electronics Enthusiast"
Condition:
Action: "purchase"
Challenge: Several Times (1 purchase)
Filter: category = "electronics"
Badge: "Fashion Forward"
Condition:
Action: "purchase"
Challenge: Several Times (1 purchase)
Filter: category = "clothing"
Result: Different badges for different product categories, encouraging diverse purchases.
Pattern 2: Value Threshold
Badge: "Big Spender"
Condition:
Action: "purchase"
Challenge: Several Times (10 purchases)
Filter: amount > 100
Result: Only purchases over $100 count. This rewards high-value customers, not just frequent shoppers.
Pattern 3: Platform-Specific
Badge: "Mobile Master"
Condition:
Action: "login"
Challenge: Several Times (50 logins)
Filter: platform = "mobile"
Badge: "Desktop Devotee"
Condition:
Action: "login"
Challenge: Several Times (50 logins)
Filter: platform = "desktop"
Result: Separate achievements for mobile vs desktop users, encouraging cross-platform adoption.
Pattern 4: Exclude Unwanted Actions
Badge: "Loyal Customer"
Condition:
Action: "purchase"
Challenge: Sum (amount = 1000)
Filter: category is not "refund"
Result: Refunds don't count toward the badge. Protects against gaming the system.
Pattern 5: Quality Content
Badge: "Quality Contributor"
Condition:
Action: "create_post"
Challenge: Several Times (20 posts)
Filter 1: word_count >= 300
Filter 2: has_code = true
Result: Only long-form posts with code examples count. Encourages high-quality contributions.
Combining Multiple Filters
You can apply multiple Filters to a single Condition. All Filters must pass for the Action to count (AND logic).
Example 1: High-Value Mobile Purchases
Badge: "Mobile VIP"
Condition:
Action: "purchase"
Challenge: Sum (amount = 5000)
Filter 1: platform = "mobile"
Filter 2: amount > 50
Filter 3: category is not "refund"
What this means:
- Must be mobile purchase ✅
- Must be over $50 ✅
- Cannot be a refund ✅
Only purchases meeting ALL three criteria count toward the $5000 total.
Example 2: Premium Content Creation
Badge: "Tech Blogger Pro"
Condition:
Action: "create_post"
Challenge: Several Times (50 posts)
Filter 1: category = "technology"
Filter 2: word_count >= 500
Filter 3: has_images = true
What this means: Only technology posts with 500+ words and images count.
Filter Examples by Industry
E-commerce: Category Mastery
Goal: Encourage shopping across different categories
Badge: "Fashion Expert"
Filter: category = "clothing" OR category = "accessories"
Challenge: Several Times (10 purchases)
Badge: "Tech Guru"
Filter: category = "electronics" OR category = "computers"
Challenge: Several Times (10 purchases)
Badge: "Home Decorator"
Filter: category = "furniture" OR category = "decor"
Challenge: Several Times (10 purchases)
Business Impact: Users explore more product categories, increasing average cart value and discovery.
Fitness App: Workout Type Specialization
Goal: Reward users who specialize in specific workout types
Badge: "Cardio King"
Action: "complete_workout"
Filter: workout_type = "cardio"
Challenge: Several Times (100 workouts)
Badge: "Strength Champion"
Action: "complete_workout"
Filter: workout_type = "strength"
Challenge: Several Times (100 workouts)
Badge: "Yoga Master"
Action: "complete_workout"
Filter: workout_type = "yoga"
Challenge: Several Times (100 workouts)
Business Impact: Users develop workout habits in their preferred discipline, improving retention.
Betting Platform: Event-Specific Leaderboards
Goal: Create separate competitions for different sports
Leaderboard: "Football Champions"
Action: "place_bet"
Filter: event_type = "football"
Leaderboard: "Basketball Heroes"
Action: "place_bet"
Filter: event_type = "basketball"
Business Impact: Users can compete in their favorite sport category, increasing engagement.
Community Platform: Quality Content Rewards
Goal: Reward high-quality, helpful content
Badge: "Helpful Expert"
Action: "marked_helpful"
Filter 1: content_type = "answer"
Filter 2: word_count > 100
Challenge: Several Times (50 helpful marks)
Business Impact: Encourages detailed, helpful answers instead of short, low-effort responses.
Filter Design Best Practices
1. Be Specific but Achievable
# ✅ Good: Specific but fair
Filter 1: amount > 50
Filter 2: category is not "refund"
# ❌ Bad: Too restrictive
Filter 1: amount > 500
Filter 2: category = "luxury-electronics"
Filter 3: payment_method = "gold_card"
Filter 4: is_premium_member = true
2. Exclude System/Test Actions
# ✅ Good: Exclude test data
Filter 1: is_test = false
Filter 2: category is not "refund"
Filter 3: user_type is not "admin"
# ❌ Bad: No filtering, test data pollutes badges
No filters
3. Use Positive Filters When Possible
# ✅ Good: Clear positive filter
Filter: category = "electronics"
# ⚠️ OK but less clear: Negative filter
Filter: category is not "clothing" AND category is not "food"
4. Match Filters to Business Goals
# E-commerce: High-value behavior
Filter: amount > 100
# Fitness: Sustained effort
Filter: duration_minutes >= 30
# Community: Quality content
Filter: word_count >= 300
Filters vs Challenges
It's important to understand the distinction:
| Concept | Purpose | Example |
|---|---|---|
| Filter | Which actions qualify | "Only purchases > $50" |
| Challenge | How many/much is required | "10 times" or "$1000 total" |
Together:
Condition: "VIP Customer"
Action: "purchase"
Filter: amount > 50 ← Which actions count
Challenge: Several Times (20) ← How many needed
Translation: "Complete 20 purchases that are each over $50."
Dynamic Filtering Based on Action Objects
Filters work on Action Objects (the details array in your Actions). The richer your Action Objects, the more powerful your Filters can be.
Action sent:
{
"name": "create_post",
"referenceId": "post-123",
"playerId": "user-alex",
"details": [
{
"category": "web-development",
"word_count": 450,
"has_code": true,
"tags": ["react", "performance"],
"difficulty": "intermediate"
}
]
}
Filters you can create:
category = "web-development"word_count >= 300has_code = truedifficulty = "intermediate"
Send rich Action Objects to unlock powerful filtering capabilities. Every field you include is a potential Filter!
Filters in Leaderboards
Filters are especially powerful in Leaderboards, allowing you to create category-specific competitions:
Leaderboard: "Premium Spenders"
Action: "purchase"
Filter: amount > 100
→ Ranks users by high-value purchases only
Leaderboard: "Mobile Users"
Action: "login"
Filter: platform = "mobile"
→ Ranks most active mobile users
Leaderboard: "Weekend Warriors"
Action: "place_bet"
Filter: day_of_week = "Saturday" OR day_of_week = "Sunday"
→ Ranks weekend betting activity
Next Steps
- Learn how Actions send data to Conditions
- See how Badges & Triggers are awarded when Conditions are met
- Understand Deliverables issued with achievements
- Explore real-world implementations in our Guides