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 where user_id is the referring user, user_role is referrer, and status is earned
  • reward_earned when the friend signs up where user_id is the friend, user_role is friend, and status is earned
  • reward_delivered where user_id is the referring user, user_role is referrer, and status is delivered
  • reward_delivered where user_id is the friend, user_role is friend, and status 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.

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