Behavioral Action Campaigns

Overview

Behavioral Action (Trigger) campaigns reward customers for engaging with your brand outside of a purchase. When a customer completes an action, such as writing a product review or following your brand on social media, your system tells AIR this interaction has happened and the customer receives a reward.

In AIR, an SBA campaign is a campaign with type BEHAVIOURAL_ACTION and offer type NON_TRANSACTIONAL. It defines an action your system can trigger, and the reward the customer gets when you do.

Reward TypeCustomer Impact
PointsReceive points straight into their points account
Points optionally, with tier contributionsReceive points and progress toward the next loyalty tier
CouponReceive a coupon in their wallet
Zero rewardAction is recorded but pays nothing; used as an objective in a Quest
Stamp cardReceive one or more stamps on a stamp card campaign

How SBA Campaigns Work

  1. You create an SBA campaign with a unique Action Reference and a reward.
  2. A customer completes the action outside AIR (for example, they follow your brand on social media).
  3. Your system calls the Triggers endpoint with the customer's identityValue and the Action Reference.
  4. AIR finds the matching trigger, creates and redeems a Behavioral Action account in the customer's wallet, and issues the reward.
ℹ️

AIR does not connect to any external platforms directly to detect customer actions. It is the responsibility of the retailer or a connected system, such as a Customer Data Platform, to detect the action and make the call to AIR.

Key Definitions

TermDefinition
ActionThe customer behaviour you want to reward, for example Like_Facebook_Post_Summer_Vacation.
Action ReferenceThe unique identifier your system sends to trigger the action.
TriggerThe API call that tells AIR a customer completed an action.
Behavioral Action accountThe account AIR creates in the wallet when an action is triggered. It is created and redeemed in the same call.
Points SchemeThe scheme the reward points are credited from.
Rewards per CustomerThe limit on how many times each customer can earn the reward.
Tier Membership ContributionsOptional points and transaction counts that count toward the customer's loyalty tier.
Zero RewardA reward type that issues nothing and exists so the action can be a Quest objective.

Prerequisites

Before you trigger an action, check the following.

Customer

  • A wallet
  • An identity. This is the value you pass in the trigger call.
  • A points account (for points rewards)

Scheme

  • A valid points scheme (schemeId) to fund points rewards.

Wallet configuration

  • A defaultAccountState set for the walletTypeId you intend to use.
  • A wallet transaction type for each reward type you use, each with defaultStatus and defaultState values:
Reward TypeWallet transaction type
PointsBEHAVIOURAL_ACTION_POINTS
CouponBEHAVIOURAL_ACTION_COUPON
Zero rewardBEHAVIOURAL_ACTION_ZERO_REWARD
Stamp cardBEHAVIOURAL_ACTION_STAMP_CARD
{
  "configuration": {
    "defaultState": { "value": "ORIGINAL", "type": "string" },
    "defaultStatus": { "value": "SETTLED", "type": "string" }
  },
  "unitId": 81400,
  "name": "BEHAVIOURAL_ACTION_POINTS"
}
ℹ️

The defaultStatus and defaultState values are part of the standard AIR configuration. If your configuration does not include these, contact Eagle Eye to have them enabled.

Permissions (Dashboard users)

  • Access to the Triggers menu to create campaigns, and to Behavioral Action accounts in Customer Care.

Use Cases

These examples use a retailer called Fabulous Retailer. Each one shows how to configure the reward section of the campaign via the AIR dashboard and via the POST /campaigns API call. All five share the same campaign settings, with the action and reward varying by scenario:

ObjectValue
typeBEHAVIOURAL_ACTION
offer.offerTypeNON_TRANSACTIONAL
settings.walletEnabledtrue
settings.defaultAccountClientStateA valid account client state, for example LOADED
ℹ️

The offer.actions[].reference must be a string with no spaces and only alphanumeric characters and underscores, for example LIKE_FACEBOOK_POST. Each Action Reference can be used by one campaign only, and it can't be edited after creation.

Scenario 1 – Points for a Product Review

Fabulous Retailer wants to reward customers with 50 points each time they write a product review, up to 5 times.

Reward Setup

ObjectValue
Reward typePoints
Points50
SchemeRetail points scheme
Rewards per Customer5
Action Referencewrite_product_review
"offer": {
  "offerType": "NON_TRANSACTIONAL",
  "reward": {
    "standard": {
      "points": {
        "schemeId":{schemeId},
        "creditAmount": 50
      }
    }
  },
  "actions": [
    {
      "reference": "write_product_review",
      "description": "Wrote a product review"
    }
  ]
}

Benefits of this SBA setup include:

  • Simple to run, with a clear reward for a single action
  • Rewards non-purchase engagement
  • Limits per-customer cost with Rewards per Customer
⚠️

A points reward of 0 fails adjudication. To reward nothing, use the Zero Reward type (Scenario 4).

Scenario 2 – Points with Tier Progress

Fabulous Retailer wants to give 50 points for following the brand on social media. The follow should also add 100 points and 1 transaction toward the customer's tier.

Reward Setup

ObjectValue
Reward typePoints
Points50
Tier Membership PointsFixed, 100
Tier Membership TransactionEnabled
SchemeThe scheme you created for Tiers
Action Referencefollow_brand_social
"offer": {
  "offerType": "NON_TRANSACTIONAL",
  "reward": {
    "standard": {
      "points": {
        "schemeId": 100802031,
        "creditAmount": 50
      }
    },
    "tierMembership": {
      "points": {
        "type": "FIXED",
        "active": true,
        "creditAmount": 100
      },
      "transactions": {
        "active": true
      }
    }
  },
  "actions": [
    {
      "reference": "follow_brand_social",
      "description": "Followed the brand on social media"
    }
  ]
}
ℹ️

Tiers must be enabled at unit level. Enable Tier Membership Points and Tier Membership Transaction in Manage Types. Tier Membership Points can be Match Reward or Fixed.

Benefits of this SBA setup include:

  • Lets engagement count toward tier status
  • Rewards your most engaged customers beyond spend
  • Works with the points reward without extra triggers

Scenario 3 – Coupon for Completing an Action

Fabulous Retailer wants to give a "Back to School" coupon when a customer likes a social media post.

Reward Setup

ObjectValue
Reward typeCoupon
Reward campaignOne ACTIVE coupon campaign
Action Referenceback_to_school
"offer": {
  "offerType": "NON_TRANSACTIONAL",
  "reward": {
    "standard": {
      "coupon": {
        "campaignId": ["100364018"]
      }
    }
  },
  "actions": [
    {
      "reference": "back_to_school",
      "description": "Liked the Back to School post"
    }
  ]
}
ℹ️

Only one coupon campaign can be added to the campaignId array, and only ACTIVE campaigns can be selected.

Benefits of this SBA setup include:

  • Gives customers a tangible reward to use on their next shop
  • Links social engagement to in-store or online spend
  • Gives you a way to drive a follow-up purchase

Scenario 4 – Zero Reward Action as a Quest Objective

Fabulous Retailer runs a Back to School Quest. The customer earns 5,000 points when they like a social media post and spend £50. Liking the post pays nothing by itself.

Reward Setup

ObjectValue
Reward typeZero reward
Action Referenceback_to_school_like
Quest objective 1This SBA campaign
Quest objective 2Spend $50, get $5 off (discount basket campaign)
"offer": {
  "offerType": "NON_TRANSACTIONAL",
  "reward": {
    "standard": {
      "zeroReward": true
    }
  },
  "actions": [
    {
      "reference": "back_to_school_like",
      "description": "Liked the Back to School post"
    }
  ]
}

Triggering the action redeems the SBA objective. When the customer has completed all objectives, AIR redeems the Quest and issues the Quest reward.

Benefits of this SBA setup include:

  • Combines transactional and non-transactional objectives under a single reward
  • Avoids paying out twice for the same journey
  • Keeps the customer's wallet free of intermediate rewards
ℹ️

Zero reward can also contribute to tiers, either as tier points alone or as tier points together with tier transactions. Tier transactions on their own are not currently supported.

Scenario 5 – Stamp Card Reward

Fabulous Retailer wants a social action to add one stamp to a customer's stamp card.

Reward Setup

ObjectValue
Reward typeStamp card
Stamp amount1
Stamp card campaignExisting stamp card campaign
Action ReferenceSBA_STAMP_CARD
"offer": {
  "offerType": "NON_TRANSACTIONAL",
  "reward": {
    "standard": {
      "stamps": [
        {
          "amount": 1,
          "campaignId": "{campaignId}"
        }
      ]
    }
  },
  "actions": [
    {
      "reference": "SBA_STAMP_CARD",
      "description": "Stamp card action"
    }
  ]
}
ℹ️

Stamp card rewards can't be configured via the Dashboard. Use the API. The stamps array can hold more than one stamp card campaign, so one action can stamp several cards.

Triggering an Action

Call the Triggers endpoint in the Wallet API with the customer's identityValue and the Action Reference.

{
  "walletTransaction": {
    "reference": "Review reward 1"
  },
  "identityValue": "{identityValue}",
  "triggers": [
    {
      "reference": "write_product_review"
    }
  ]
}
ResultWhat happens
Identity not foundReturns Not found: Resource cannot be found.
Points rewardA wallet transaction of type BEHAVIOURAL_ACTION_POINTS with 1 CREATE and 1 REDEEM of the Behavioral Action account, and 1 CREDIT of points
Coupon reward1 CREATE and 1 REDEEM of the Behavioral Action account, and 1 CREATE of the coupon

You can find the Behavioral Action account and its transactions in Customer Care.

Best Practices

  • Choose Action References carefully. They are unique across campaigns and can't be edited. Use a clear, descriptive convention, for example ACTION_CHANNEL_CAMPAIGN.
  • Use Rewards per Customer to cap cost. Without a limit, a customer can earn the reward every time your system triggers the action.
  • Use a unique walletTransaction.reference per trigger so each reward can be traced.
  • Set up wallet transaction types before go-live. A missing type is the most common reason a trigger fails.

Did this page help you?