How to Configure an Earning Event in your Loyalty Program

Anton Co Updated by Anton Co

How to Configure an Earning Event

The following information will help you configure an earning event and determine what reward to distribute and when to distribute the reward. Think of this as the backend configuration. You will configure the frontend (customer-facing) styling in the widgets page.

  1. In your Friendbuy account, go to the earning events page.
  1. Click "+ Add Earning Event". Select the earning event type. If you want specific instructions for each type of earning event, please see the list of earning events below.

Here are some general configuration options that apply to all earning events:

  • Earning event name: you can update the name of the earning event. This name is what ultimately shows up in a user's dashboard.
  • Selecting a Reward type: you can select different types of rewards to give for each earning event.
    • Points: award a specific amount of points each time the earning event is achieved.
    • Coupon Code: award a unique coupon code from a code bank that you uploaded into Friendbuy.
    • Gift Card: award a unique gift card code from a code bank that you uploaded into Friendbuy.
    • Shopify Coupon: if you installed the Friendbuy <> Shopify integration, you can reward with a unique Shopify Coupon code.
    • Custom: Friendbuy will send a custom reward webhook to notify you when a reward has been earned. The Loyalty Reward Webhook must be configured in your Developer Center settings.
    • Additional Reward options are available for various e-commerce or subscription integrations.

  • Send Email: Friendbuy can send an email whenever the earning event is achieved. Select from the list of emails in the list. Please note that the email has to be designed in the email section prior to using this. Reach out to your client success manager if you need assistance building the email.

  • Advance options: click on the blue text at the bottom of the earning event to expand additional rules for your earning event.
  • "Inactive" vs "Active": After inputting the settings for your earning event, you have the option to "save changes" or "save & activate". If you just click "save changes", your earning event will be in "inactive" status. You'll have to click "save & activate" to place the earning event in "active" status, which will be live in your account.

List of Earning Events

Refer a Friend

Reward your Customers for referring a Friend.

To enable this event rule, at least one Referral campaign must be active. However, the reward conditions for this event rule are independent of the rules and rewards configured in your Referral campaign(s). Loyalty rewards will be distributed in addition to any Advocate rewards set up in your Referral campaign(s).

Make a Purchase

If your purchase tracking is already configured where purchase data is automatically sent to Friendbuy (if you are on Shopify, this is done automatically if you installed the shopify integration), then you are ready to reward points for making a purchase.

If you want to add additional criteria for making a purchase, select the "+" icon and choose an option from the dropdown list.

Advanced Options

  • Friendbuy will validate Purchases with Shopify: if you are on Shopify this is on by default. This ensures that we are validating the purchase automatically through Shopify and ensure that the order was real.
  • Set custom reward validation: if you are not on Shopify, we can ask your system if we should reward the points. Input an API endpoint that Friendbuy can make requests to. Here is the developer documentation for this.
  • Set Reward Delay: distribute the reward after x amount of days. This is useful in tandem with the reward validation if you want to protect yourself against returns/cancellations. For example, if you set this to 5 days, then we will wait 5 days before distributing the reward and will also check against Shopify or your custom reward validation endpoint if the purchase was returned or not.
  • Set Max Reward Allowance: Customers can earn this reward up to x amount of times.

If you'd like to reward different amounts based on member tier status, you'll want to set up a separate purchase earning event and add a criteria for the chosen member tier. See information in this article.

Loyalty Opt-In

When customers sign up to be a member of your loyalty program, reward them by giving them an opt in bonus!

Sign Up

Reward Customers for signing up for your loyalty program.

Birthday Entry

Reward customers for entering in their birthday. Friendbuy will only collect the month and day. By collecting their birthday, you can now start using this data to send them communications on their birthday. Customer's birthdate (dd/mm) is provided by the customer via an Earning Events widget, or by the merchant using either the Friendbuy Javascript SDK or the REST API.

Birthday Reward

Reward customers on their birthday, which can be provided by the customer when they enter their birthdate, or by the merchant using either the Friendbuy Javascript SDK or the REST API.

In this earning event, you can specify if the reward will be sent on the exact birthday date, or x days before it.

This is a recurring event and it will be triggered annually. You may limit the amount of birthday rewards a single customer can receive by setting a Max Reward Allowance, under the Advanced Settings.

Note: Customers can receive a birthday reward only once per calendar year. If their birthdate is updated after they receive a birthday reward, the changes will take affect starting the following calendar year.

Time Based Event

Reward customers for recurring events, such as their anniversary.

When creating the event, you may specify the event trigger:

  • First Purchase Date
  • Account Creation Date
  • Loyalty Opt in Date
  • Subscription Start Date ( Available only to merchants integrated with Recharge)

Use the Repeat every field to specify how often the reward will be triggered (Yearly, every X months or X days), and use the Distribute Reward fields to configure when the reward will be distributed to the customer.

You may limit the amount of rewards a single customer can receive by setting a Max Reward Allowance, under the Advanced Settings.

Social Media Follow

You can configure an earning event for following your Facebook, Instagram, Twitter, TikTok or Youtube account.

Please note that you can only add one earning event per social media type.

In this screen, select a reward option and input the quantity to reward. You will input the social media account details when you set up the Earning Events widget in the widgets page.

Klaviyo Flow

You can leverage Klaviyo "Flows" to trigger when rewards should be distributed to customers. Please note that the Klaviyo-Friendbuy integration needs to be installed prior to setting this up.

  1. First you'll want to create a Klaviyo flow. Determine the "trigger" of when this event should happen. After the trigger, add a webhook to the flow. Within the webhook settings, input the destination URL. You can find the destination URL in your Friendbuy account -> Settings -> Integrations -> Klaviyo.

  1. Within the JSON body of the webhook, include the following
    "email":"{{ person.Email}}",
    "attributes": {
    "flowTag": "email"
    The "flowTag" portion is the part that you will want to customize for each earning event. For example, if this Klaviyo flow is rewarding for signing up for email marketing, then i might call this flowTag "email".
  2. On the Friendbuy side, click the "+" icon and select "Custom Attribute". Input "flowTag" in the custom attribute and set this "is equal to". Then input the name of the flowTag in the last email. In this example. The flowTag is "email".

Custom Event

If you don't see an option for a the type of reward you'd like to configure, you can set up a custom event and send Friendbuy and API / Javascript call whenever the reward should be distributed.

First, input the custom event name e.g. "submit_review". Whenever Friendbuy receives this custom event, the reward will be distributed to the customer. Here is the API version of the custom event documentation. Here is the Javascript version of the custom event documentation.

You can also click on the "+" icon to add additional requirements for the custom earning event.

How did we do?

How to Create an Earning Event

How to set up expiration for Points or Account Credit