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
whereuser_id
is the referring user,user_role
is referrer,descriptor
is 20-FOR-TRAVELING, andstatus
is earnedreward_earned
whereuser_id
is the friend,user_role
is friend,descriptor
is 40-CREDIT, andstatus
is earnedreward_delivered
whereuser_id
is the referring user,user_role
is referrer,descriptor
is 20-FOR-TRAVELING, andstatus
is deliveredreward_delivered
whereuser_id
is the friend,user_role
is friend,descriptor
is 40-CREDIT, andstatus
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
whereuser_id
is the referring user,user_role
is referrer,descriptor
is 75-FOR-HOSTING, andstatus
is earnedreward_delivered
whereuser_id
is the referring user,user_role
is referrer,descriptor
is 75-FOR-HOSTING, andstatus
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.