Skip to main content

Deliverables

Deliverables are the actual rewards players receive when they earn Badges or Triggers. While Badges and Triggers define what was achieved, Deliverables define what the player gets.

Think of it this way:

  • Badge/Trigger = Achievement ("You're a VIP now!")
  • Deliverable = Reward ("Here's 500 bonus points + free shipping")

What are Deliverables?

Actions, Badges, and Triggers can have one or more Deliverables attached to them. When a Badge is awarded or a Trigger fires, all attached Deliverables are issued simultaneously.

A single Badge can have multiple Deliverables:

Badge: "VIP Customer"
Deliverables:
1. Prize: 500 bonus points
2. Content: Display "🎉 Welcome to VIP!" popup
3. Notification: Signal backend to unlock premium features

The 3 Types of Deliverables

RapidMule has 3 types of deliverables, each serving a different purpose:

Prize

Prizes are rewards, either physical or virtual, that players receive as a form of acknowledgement, motivation, or incentive for their achievements.

Example: A virtual currency named "Gold coin" or a custom hoodie with your company logo.

Purpose: Tangible rewards that players accumulate or redeem

Content

This type of deliverables can be used to display special banners, pop-ups, or any other "content" to the players when an action is received or trigger conditions are met.

Example: You can set up a trigger for every 10th login of the player to display a reminder notification for a future event.

Purpose: Instructions for your frontend to display UI elements

Notification

Notification type can be used to deliver messages to your backend system. This feature can be utilized to set up very useful flows within your application.

Example: An A/B test can be defined with a "Unlock chat feature" notification. Your system toggles the chat feature only for the players who received this notification.

Purpose: Instructions for your backend to take action

Prize Deliverables

Prizes are accumulative rewards that players collect in their inventory. They can be:

  • Virtual currency (coins, gems, points)
  • Physical items (merchandise, tickets, gift cards)
  • Redeemable vouchers (free shipping, discount codes)

How Prize Deliverables Work

When a Prize Deliverable is issued, it's added to the player's inventory. You can query the Player API to see all prizes a player has accumulated.

Configuration Example:

Badge: "First Purchase"
Deliverable: Prize
Label: "Welcome Bonus"
Amount: 100
Type: "Coins"
Custom Properties:
currency_type: "gold"
expiration_days: 90

API Response:

{
"deliverables": [
{
"amount": 100.0,
"label": "Welcome Bonus",
"type": 1, // Prize type
"imageName": "https://example.com/coin-icon.png",
"details": [
{ "label": "currency_type", "value": "gold" },
{ "label": "expiration_days", "value": "90" }
]
}
]
}

Player Inventory:

{
"inventory": [
{
"label": "Gold Coins",
"uid": "gold-coins",
"balance": 100,
"imageName": "https://example.com/coin-icon.png",
"details": [
{ "label": "currency_type", "value": "gold" }
]
}
]
}

Common Prize Use Cases

  1. Virtual Currency: Points, coins, gems
  2. Vouchers: Free shipping, discount codes
  3. Merchandise: Physical items (concert tickets, company swag)
  4. Premium Access: Time-limited subscriptions
  5. Exclusive Content: Downloadable assets, early access

Content Deliverables

Content Deliverables tell your frontend what to display to the user. They're instructions for your UI, not rewards to accumulate.

How Content Deliverables Work

When a Content Deliverable is issued, your frontend receives structured data about what to show:

Configuration Example:

Trigger: "Habit Formed"
Deliverable: Content
Label: "Habit Celebration"
Custom Properties:
popup_type: "celebration"
title: "🎉 Habit Formed!"
message: "You've worked out 5 times in 7 days!"
animation: "confetti"
cta_button: "View Progress"
cta_link: "/dashboard/progress"

API Response:

{
"deliverables": [
{
"amount": 1.0,
"label": "Habit Celebration",
"type": 2, // Content type
"imageName": null,
"details": [
{ "label": "popup_type", "value": "celebration" },
{ "label": "title", "value": "🎉 Habit Formed!" },
{ "label": "message", "value": "You've worked out 5 times in 7 days!" },
{ "label": "animation", "value": "confetti" },
{ "label": "cta_button", "value": "View Progress" },
{ "label": "cta_link", "value": "/dashboard/progress" }
]
}
]
}

Common Content Use Cases

  1. Achievement Popups: "🎉 New badge earned!"
  2. Progress Notifications: "You're 3 purchases away from VIP!"
  3. Milestone Celebrations: Confetti animations, special screens
  4. Event Banners: "Weekend sale unlocked for VIP members"
  5. Motivational Messages: "Keep it up! You're on a 7-day streak"
  6. Onboarding Tips: "Complete 5 more actions to unlock..."

Notification Deliverables

Notification Deliverables tell your backend what action to take. They're webhooks/signals for internal system logic, not visible to players.

How Notification Deliverables Work

When a Notification Deliverable is issued, your backend receives structured data about what to do:

Configuration Example:

Trigger: "VIP Status Achieved"
Deliverable: Notification
Label: "Unlock Premium Features"
Custom Properties:
feature_unlock: "premium_dashboard"
tier: "vip"
send_email: "vip_welcome"
analytics_event: "user_became_vip"
grant_permissions: ["advanced_analytics", "priority_support"]

API Response:

{
"triggers": [
{
"uid": "vip-status-trigger",
"label": "VIP Status Achieved"
}
],
"deliverables": [
{
"amount": 1.0,
"label": "Unlock Premium Features",
"type": 3, // Notification type
"imageName": null,
"details": [
{ "label": "feature_unlock", "value": "premium_dashboard" },
{ "label": "tier", "value": "vip" },
{ "label": "send_email", "value": "vip_welcome" },
{ "label": "analytics_event", "value": "user_became_vip" },
{ "label": "grant_permissions", "value": "advanced_analytics" }
]
}
]
}

Common Notification Use Cases

  1. Feature Unlocks: Enable premium features, advanced tools
  2. Tier Upgrades: Change user tier/status (Bronze → Silver → Gold)
  3. Permission Grants: Moderator privileges, admin access
  4. Email Triggers: Send welcome, congratulations, reminder emails
  5. Analytics Events: Track milestone achievements
  6. Webhook Calls: Notify external systems (CRM, marketing tools)
  7. Internal Alerts: Support team notifications, risk alerts
  8. A/B Test Segmentation: Assign users to experiment groups

Custom Properties: The Power Feature

Every Deliverable can have custom properties - key-value pairs that you define. This is what makes Deliverables incredibly flexible.

Custom Properties

Custom properties let you pass ANY data you want to your frontend or backend. They're the bridge between RapidMule's rules and your application's logic.

Examples of Custom Properties

Prize Example:

{
"label": "VIP Voucher",
"type": 1,
"details": [
{ "label": "voucher_code", "value": "VIP2025" },
{ "label": "discount_percent", "value": "20" },
{ "label": "valid_until", "value": "2025-12-31" },
{ "label": "min_order_value", "value": "100" }
]
}

Content Example:

{
"label": "Level Up Animation",
"type": 2,
"details": [
{ "label": "animation_type", "value": "level_up" },
{ "label": "new_level", "value": "5" },
{ "label": "sound_effect", "value": "fanfare" },
{ "label": "duration_ms", "value": "3000" }
]
}

Notification Example:

{
"label": "Risk Alert",
"type": 3,
"details": [
{ "label": "alert_type", "value": "fraud_detection" },
{ "label": "risk_score", "value": "high" },
{ "label": "notify_team", "value": "security" },
{ "label": "auto_action", "value": "freeze_account" }
]
}

Multiple Deliverables Pattern

The real power comes from combining multiple Deliverable types on a single Badge/Trigger:

Example: Complete User Experience

Badge: "Elite Customer"
Type: OneTimeOnly

Deliverable 1: Prize
Label: "Elite Bonus Package"
Amount: 1000
Custom Properties:
currency: "points"
bonus_type: "elite_welcome"

Deliverable 2: Content
Label: "Elite Welcome Screen"
Custom Properties:
popup_type: "elite_celebration"
title: "Welcome to Elite Status!"
message: "You've unlocked exclusive perks"
animation: "gold_confetti"
show_perks_list: true

Deliverable 3: Notification
Label: "Upgrade to Elite Tier"
Custom Properties:
tier_upgrade: "elite"
unlock_features: "priority_support,advanced_analytics,exclusive_offers"
send_emails: "elite_welcome,elite_perks_guide"
analytics_event: "user_became_elite"

When this Badge is earned:

  1. Prize: Player gets 1000 points in their inventory
  2. Content: Frontend shows celebration popup with perks list
  3. Notification: Backend upgrades tier, unlocks features, sends emails, tracks analytics

All happens automatically! 🎉

Deliverable Design Patterns

Pattern 1: Immediate Gratification

Badge: "First Purchase"
Deliverables:
- Prize: 50 bonus points (instant reward)
- Content: "Thank you!" popup (instant feedback)

Pattern 2: Progressive Unlocking

Rank 1 Badge: "Contributor"
Deliverables:
- Prize: 10 points

Rank 3 Badge: "Active Contributor"
Deliverables:
- Prize: 50 points
- Notification: Unlock "Edit Others' Posts"

Rank 5 Badge: "Expert Contributor"
Deliverables:
- Prize: 200 points
- Notification: Unlock "Moderator Privileges"
- Content: "You're now a moderator!" popup

Pattern 3: Silent Automation

Trigger: "At-Risk User" (invisible)
Deliverables:
- Notification: Send re-engagement email
- Notification: Add to "Churn Prevention" segment
- Notification: Offer 20% discount (no UI changes)

Pattern 4: Full Experience

Badge: "Habit Formed" (visible)
Deliverables:
- Prize: 100 points
- Content: Celebration animation
- Notification: Unlock advanced features
- Notification: Send congratulations email
- Notification: Update user tier

Best Practices

For Prizes

  1. Be generous but balanced - Reward effort appropriately
  2. Use expiration dates - Create urgency for redemption
  3. Track balances - Query Player API to show current inventory
  4. Make them spendable - Create reward shops/redemption systems

For Content

  1. Keep messages short - Mobile-first design
  2. Include CTAs - "View Progress", "Claim Reward", "Learn More"
  3. Use animations sparingly - Celebrations, not annoyances
  4. Test across devices - Ensure popups work on mobile/desktop

For Notifications

  1. Be specific - Clear instructions for backend actions
  2. Include context - Pass all necessary data
  3. Handle errors - Backend should gracefully handle missing data
  4. Log everything - Track when notifications fire
  5. Test thoroughly - Notification bugs affect real features

Next Steps