How to Set up a Referral Program like Dropbox
This guide will show you how to re-create a referral program like Dropbox's " for every friend you refer, you’ll both receive an extra 250MB in cloud storage" using Prefinery.
How It Works
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 through their referral link using different social sharing options. They also get email follow-ups from you to motivate them.
When a friend follows the referral link and subsequently signs up a referral is created. Both referrer and the referred friend is credited the reward. 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.
Create a Double-sided Reward
Navigate to Rewards from your project dashboard and click on the Create a Reward button for Double-sided Rewards.
Since both the referring user and the friend are awarded when the friend signs up, we will create a double-sided reward with the following settings:
- Referrals: 1
- Reward: 250MB in cloud storage
- Send user an email when they earn this reward: yes
- Quantity: unlimited (though you could cap this)
- Award Event: Signup
- Delivery: Automatic
- Friend Reward: 250MB in cloud storage
- Send the friend an email when they earn this reward: yes
- Friend Delivery: Automatic
Edit the emails that get sent to the referrer and the referred as needed.
Deliver the Rewards
There are two ways on how you deliver rewards. Either you manually review earned rewards or automatically set them to be approved before they get delivered.
Our guide on how you deliver rewards walks you through implementing different ways to get the reward delivered to the users. Depending on the nature of the reward, you may want to send it via email (e.g. for discount codes or access links), or using integration tools like Zapier and webhooks (e.g. for coupons, gift cards, print-on-demand goods, etc.).
With webhooks in particular, 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.
In this example, the following four webhooks will be sent:
reward_earned
when the friend signs up whereuser_id
is the referring user,user_role
is referrer, andstatus
is earnedreward_earned
when the friend signs up whereuser_id
is the friend,user_role
is friend, andstatus
is earnedreward_delivered
whereuser_id
is the referring user,user_role
is referrer, andstatus
is deliveredreward_delivered
whereuser_id
is the friend,user_role
is friend, andstatus is
delivered
For example, the webhook for the reward issued to the referring user when their friend signs up would look similar to the following:
{ "id": 1000, "type": "reward_delivered", "data": { "id":200, "descriptor":"250-BONUS", "name":"250MB in cloud storage", "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 (250MB-BONUS). You would look up their account in the Dropbox database and increase their cloud storage by 250MB.