How to Set up a Referral Program like AirBnB

This guide will show you how to re-create a referral program like AirBnB's " send a friend $40 in Airbnb credit. You’ll get $20 when they travel and $75 when they host" using Prefinery.

1. Create a Double-sided Reward where the Friend Gets $40 and the Referrer Gets $20 when their Friend Travels

Since both the referring user and the friend are awarded when the friend travels, we will create a double-sided reward with the following settings:

  • Referrals: 1
  • Reward: $20 because your friend traveled
  • Send user an email when they earn this reward: yes
  • Quantity: unlimited (though you could cap this)
  • Award Event: Custom Event
  • Award Event Name: travels
  • Delivery: Automatic
  • Friend Reward: $40 in Airbnb credit
  • Send the friend an email when they earn this reward: yes
  • Friend Delivery: Automatic

2. Create a Single-sided Reward where the Referrer Gets $75 when their Friend Hosts

When the friend hosts we only want to reward the referring user. To do this, we will create a single-sided reward with the following settings:

  • Referrals: 1
  • Reward: $75 because your friend hosted
  • Send user an email when they earn this reward: yes
  • Quantity: unlimited (though you could cap this)
  • Award Event: Custom Event
  • Award Event Name: hosts
  • Delivery: Automatic

3. People Sign up and Refer their Friends

People sign up using the Prefinery-powered signup form. After they sign up they are shown the Referral Page and encouraged to refer their friends with email follow-ups. When a friend follows a referral link and subsequently signs up a referral is created. 

If you're using Prefinery's Signup Form then this is all automatic. If you're not using our signup form, then read our guide on How to Trigger a Referral.

4. Trigger the 'travels' Event

When a person travels, you need to let us know. See our guide on How to Trigger Rewards with a Custom Event for details on using our API or Zapier to let us know that a person has completed the travels event.

The following webhooks will be sent:

  • reward_earned where user_id is the referring user, user_role is referrer, descriptor is 20-FOR-TRAVELING, and status is earned
  • reward_earned where user_id is the friend, user_role is friend, descriptor is 40-CREDIT, and status is earned
  • reward_delivered where user_id is the referring user, user_role is referrer, descriptor is 20-FOR-TRAVELING, and status is delivered
  • reward_delivered where user_id is the friend, user_role is friend, descriptor is 40-CREDIT, and status is delivered

5. Trigger the 'hosts' Event

When a person hosts, you need to let us know. See our guide on How to Trigger Rewards with a Custom Event for details on using our API or Zapier to let us know that a person has completed the hosts event.

The following webhooks will be sent:

  • reward_earned where user_id is the referring user, user_role is referrer, descriptor is 75-FOR-HOSTING, and status is earned
  • reward_delivered where user_id is the referring user, user_role is referrer, descriptor is 75-FOR-HOSTING, and status is delivered

6. Deliver the Rewards

In order to automate the process of delivering rewards you must catch the reward_delivered webhook event. This event will tell you who earned what reward.

For example, the webhook for the reward issued to the referring user when their friend travels would look similar to the following:

{
  "id": 1000,
  "type": "reward_delivered",
  "data": {
    "id":200,
    "descriptor":"20-FOR-TRAVELING",
    "name":"$20 because your friend traveled",
    "project_id":1,
    "user_id":1259,
    "user_role","referrer"
    "status":"delivered",
    "type":"DoubleSided",
    "earned_at":"2020-09-06T13:29:20-05:00",
    "delivered_at":"2020-09-06T13:31:20-05:00",
    "revoked_at":null,
    "user": {
      "id":1259,
      "email":"bruce@wayneenterprises.com",
      ...
    }
  },
  "created_at": 1346878649
}

The payload of the webhook tells us who ( user 1259, email bruce@wayneenterprises.com) received which reward (20-FOR-TRAVELING). You would look up their account in the AirBnB database and issue a $20 credit.

Still need help? How can we help? How can we help?