Referral program basics

In this section:

  1. How customers can join your referral program
    1. Enable simple registration form on your landing page
    2. Engage particular customer segments via emails, SMS, Intercom, Braze, ActiveCampaign, MailChimp and more
    3. Personalize message with coupon tags or referral links
  2. How your customers can use the referral codes
    1. Enable online and offline redemptions (web app, offline with the mobile app)
    2. Engagement with reminders
  3. How to create a referral program step by step
  4. Tracking referral program results

Referral programs can improve your profitability by encouraging customers to promote your brand with double-sided incentives. Voucherify enables you to run advanced, multi-level referral campaigns. You can build sophisticated reward schemas based on the number of referred customers, specific (custom) actions performed by new customers (referees) and sets of limits and rules added to customer segments.

In the first part of this guide, you'll see how you can invite users to your referral program and then, how to leverage Voucherify features to allow customers to utilize their referral codes. The last part of the tutorial shows how to customize a reward schema and roll out a referral program step by step.

Let's see how you can use Voucherify building blocks to come up with a truly omni-channel referral campaign.


Engage customers and collect their data

Voucherify gives you many ways to reach your referral audience:

  • using a web widget on your landing page
  • delivering coupons to your opt-ins via various marketing channels (email, SMS, push notification, Intercom, and more)
  • custom integration with the API

Web widget

The widget allows you to place a small form on your website. It looks like this one:

You can add it to your landing page and acquire new subscribers in exchange for referral codes. When a new user fills up the form and chooses 'get voucher', widget automatically displays unique code from a referral campaign. From now on, this code is assigned to the particular customer and their profile in the Voucherify dashboard. 

#wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset{font-size:14px;} #wistia_chrome_179 #wistia_grid_186_wrapper div.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:none;min-width:none;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_179 #wistia_grid_186_wrapper span.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:none;min-width:none;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_179 #wistia_grid_186_wrapper ul.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:none;min-width:none;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_179 #wistia_grid_186_wrapper li.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:none;min-width:none;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_179 #wistia_grid_186_wrapper label.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:none;min-width:none;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_179 #wistia_grid_186_wrapper button.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:none;min-width:none;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_179 #wistia_grid_186_wrapper img.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:none;min-width:none;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_179 #wistia_grid_186_wrapper a.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:none;min-width:none;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_179 #wistia_grid_186_wrapper svg.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:none;min-width:none;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_179 #wistia_grid_186_wrapper p.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:none;min-width:none;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_179 #wistia_grid_186_wrapper a.w-css-reset{border:0;} #wistia_chrome_179 #wistia_grid_186_wrapper p.w-css-reset{margin:1.4em 0;} #wistia_chrome_179 #wistia_grid_186_wrapper a.w-css-reset{display:inline;} #wistia_chrome_179 #wistia_grid_186_wrapper span.w-css-reset{display:inline;} #wistia_chrome_179 #wistia_grid_186_wrapper svg.w-css-reset{display:inline;} #wistia_chrome_179 #wistia_grid_186_wrapper ul.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:none;min-width:none;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased;list-style-type:none} #wistia_chrome_179 #wistia_grid_186_wrapper ol.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:none;min-width:none;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased;list-style-type:none} #wistia_chrome_179 #wistia_grid_186_wrapper li.w-css-reset{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:none;min-width:none;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased;list-style-type:none} #wistia_chrome_179 #wistia_grid_186_wrapper ul:before.w-css-reset{display:none} #wistia_chrome_179 #wistia_grid_186_wrapper ol:before.w-css-reset{display:none} #wistia_chrome_179 #wistia_grid_186_wrapper li:before.w-css-reset{display:none} #wistia_chrome_179 #wistia_grid_186_wrapper ul:after.w-css-reset{display:none} #wistia_chrome_179 #wistia_grid_186_wrapper ol:after.w-css-reset{display:none} #wistia_chrome_179 #wistia_grid_186_wrapper li:after.w-css-reset{display:none} #wistia_chrome_179 #wistia_grid_186_wrapper label.w-css-reset{background-attachment:scroll;background-color:transparent;background-image:none;background-position:0 0;background-repeat:no-repeat;background-size:100% 100%;float:none;outline:none} #wistia_chrome_179 #wistia_grid_186_wrapper button.w-css-reset{background-attachment:scroll;background-color:transparent;background-image:none;background-position:0 0;background-repeat:no-repeat;background-size:100% 100%;border:0;border-radius:0;outline:none;position:static} #wistia_chrome_179 #wistia_grid_186_wrapper img.w-css-reset{border:0;display:inline-block;vertical-align:top;border-radius:0;outline:none;position:static} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset button::-moz-focus-inner{border: 0;} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree {font-size:14px;} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree div{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:none;min-width:none;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree span{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:none;min-width:none;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree ul{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:none;min-width:none;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree li{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:none;min-width:none;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree label{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:none;min-width:none;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree button{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:none;min-width:none;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree img{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:none;min-width:none;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree a{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:none;min-width:none;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree svg{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:none;min-width:none;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree p{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:none;min-width:none;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree a{border:0;} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree p{margin:1.4em 0;} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree a{display:inline;} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree span{display:inline;} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree svg{display:inline;} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree ul{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:none;min-width:none;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased;list-style-type:none} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree ol{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:none;min-width:none;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased;list-style-type:none} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree li{box-sizing:inherit;box-shadow:none;color:inherit;display:block;float:none;font:inherit;font-family:inherit;font-style:normal;font-weight:normal;font-size:inherit;letter-spacing:0;line-height:inherit;margin:0;max-height:none;max-width:none;min-height:none;min-width:none;padding:0;position:static;text-decoration:none;text-transform:none;text-shadow:none;transition:none;word-wrap:normal;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-webkit-font-smoothing:antialiased;list-style-type:none} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree ul:before{display:none} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree ol:before{display:none} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree li:before{display:none} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree ul:after{display:none} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree ol:after{display:none} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree li:after{display:none} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree label{background-attachment:scroll;background-color:transparent;background-image:none;background-position:0 0;background-repeat:no-repeat;background-size:100% 100%;float:none;outline:none} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree button{background-attachment:scroll;background-color:transparent;background-image:none;background-position:0 0;background-repeat:no-repeat;background-size:100% 100%;border:0;border-radius:0;outline:none;position:static} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree img{border:0;display:inline-block;vertical-align:top;border-radius:0;outline:none;position:static} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-tree button::-moz-focus-inner{border: 0;} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-max-width-none-important{max-width:none!important} #wistia_chrome_179 #wistia_grid_186_wrapper .w-css-reset-button-important{border-radius:0!important;color:#fff!important;}
Voucherify web widget - it's a ready-to-go form that you can  put on your website/app
#wistia_grid_186_wrapper{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;font-family:Arial,sans-serif;font-size:14px;height:100%;position:relative;text-align:left;width:100%;} #wistia_grid_186_wrapper *{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;} #wistia_grid_186_above{position:relative;} #wistia_grid_186_main{display:block;height:100%;position:relative;} #wistia_grid_186_behind{height:100%;left:0;position:absolute;top:0;width:100%;} #wistia_grid_186_center{height:100%;overflow:hidden;position:relative;width:100%;} #wistia_grid_186_front{display:none;height:100%;left:0;position:absolute;top:0;width:100%;} #wistia_grid_186_top_inside{position:absolute;left:0;top:0;width:100%;} #wistia_grid_186_top{width:100%;position:absolute;bottom:0;left:0;} #wistia_grid_186_bottom_inside{position:absolute;left:0;bottom:0;width:100%;} #wistia_grid_186_bottom{width:100%;position:absolute;top:0;left:0;} #wistia_grid_186_left_inside{height:100%;position:absolute;left:0;top:0;} #wistia_grid_186_left{height:100%;position:absolute;right:0;top:0;} #wistia_grid_186_right_inside{height:100%;right:0;position:absolute;top:0;} #wistia_grid_186_right{height:100%;left:0;position:absolute;top:0;} #wistia_grid_186_below{position:relative;}

You can add many different fields and decide which are required or optional. You can also change the button label. Go here to learn more about widgets and the installation process.


Share referral codes with your opt-ins

If you want to engage only a particular part of your audience, you can use multi-channel delivery based on customer segments. Segments allow you to group customers by their spending habits, interactions with the brand or other custom attributes. It allows you to deliver referral codes to each new member of the segment automatically.  
Thanks to segments you can precisely define who gets referral codes, for example:
  • only the most loyal customers  (like 'at least 5 redemptions' or 'the total amount of orders more than $500')
  • customers from particular locations (like 'postal code 65-737' or 'city London')
  • clients who have been the most active lately (like 'the last purchased order less than 14 days ago' or 'signed up less than 5 days ago')

Read more about segments and available scenarios here.

Distributions

Voucherify Distribution Manager enables you to use many built-in channels and send referral codes from the dashboard to your customer segments. 

Read more:

Message personalization

The distribution manager enables you to add personal data of your customers and deliver customized messages with the referral code.

You can use tags which automatically insert coupons’ attributes and referral links which directs customer straight to your store.

Coupon tags

They automatically supply messages with coupon and receiver details such as:

  • coupon code
  • coupon QR code
  • coupon value
  • customer email
  • customer name

Links are a very simple way to improve customer experience. It enables you to put a unique referral link in a message template which redirects your customers straight to your shop without a need to copy and paste the referral code.

Note: this requires involvement from your development team

The configuration process requires two steps:

  1. Ask your development team to implement a simple web application which uses Voucherify API to handle referral logic according to your requirements (it should be a pretty quick task with our utility libraries).
  2. In the message template editor, place a link according to the pattern you agreed with your development team, e.g.; 

http://example.com/referral/{{voucher.code}}

expression will be resolved to a unique referral code by Voucherify. When the emails are sent, every customer will see a unique referral link.

When your customers already get the codes and share them with their friends, we can go to the part two and learn how they can utilize the codes to get a discount/reward.


How your customers can utilize referral codes

Voucherify enables online and offline redemptions with its built-in solutions:

  • Javascript widget easy and configurable as the subscribe form described in the first part of this guide.
  • A highly customizable way with our building blocks, which enable you to attach referral codes to any place in a sales funnel.
  • Free mobile app for offline redemptions.
Both apps support QR and barcodes to provide a seamless workflow regardless of technology or device. 

Both Voucherify apps (web and mobile) support QR and barcodes to provide a seamless workflow regardless of technology or device. 


What if codes remain unredeemed (email reminders)

It may happen codes in SMS or mailbox are forgotten or don't fit the timing. Voucherify covers that case and enables you to set up reminders. Thanks to that your customers are reminded of unredeemed referral code and make your chances for recommendation increase.

Read more about reminders here.


Create a referral program

You already know how to share referral codes and how your customers can utilize them. Now it's time to learn how to set up a referral program and create these codes in the campaign manager. 

To begin with, you’ll need to run the Campaign manager with the Plus and add a new referral campaign.

When the creator is ready, you can configure program details. Let's go through each stage of the manager step by step:

1
In the first step, define program details such as:

Click on the NEXT STEP when it's ready.

2
In the 2nd step, define optional time limits - add a campaign timeframe, days of the week or recurring periods when referral codes are active (you can read about all time limits for vouchers here). When ready, go to the NEXT STEP.  
  

3

The 3rd section 'Incentive workflow' consists of the following steps:

  • Choose a conversion event (when a new customer is approved as a referred)

1. If you want to define 'referred' customer based on referral codes redemptions choose the first checkbox

2. You can also define 'referred' customers based on a custom event defined previously in your Project Settings, for example, 'customer_subscribed' event. As a result, if a new customer performs defined event he/she will be counted as a referred customer and the owner of the referral code used during the event gets new referred customer attached to his/her account.

Event Schema

To define custom events go to the Project Settings and add the respective configuration. Please note that your application must store an event describing a moment of conversion once you approve a new customer as a referred person. It triggers a rewarding mechanism.

If you need help on that, follow the step by step guide.

After you mark respective checkbox and define the conversion event, you need to choose a type of your referral program.

  • Choose between a single- or double-sided referral program

In the next step, you need to decide if the new customer (referee) and referrer will be rewarded - double-sided program, or if only the referrer gets the reward -single-sided program.

Go to the NEXT STEP.

4

In case of double-sided referral program - define discount for the referee (new customer)

If you mark a checkbox with a double-sided referral program, you need to define a reward for new customers (referees). It can be a discount code (percentage, unit, amount) or gift card balance added to a predefined gift card that each customer in Voucherify has by default.

Below the  Referee reward section, you can see Validation rules for referral code's redemption. This is a place where you can create validation rules attached to referral codes. They restrict redemptions made by new customers (referees). To add your rules choose CREATE  and add a name for validation rules. If you need help with creating limits, visit this guide.  

Confirm the rules by choosing SAVE and go to the NEXT STEP.

5
In the 5th stage of the program creation, you need to define rewarding criteria and tell Voucherify when the referrer is rewarded.  
Dependently on which conversion event you've chosen in the 3rd section, continue to one of the following sections:

1. Conversion event - referral code redemption

In the case of the reward schema based on referral codes redemptions, choose from: 

  • Reward every time referee redeems the referral code - every time referral code is used, the reward is triggered.

Remaining options, listed below, limit reward triggering to one per new customer. It means that referrer cannot get a reward two times if both redemptions come from the same "new" customer (referee).


  • Only first time referee redeems code AND the referrer customer segment is [choose one of your existing segments]. 

This option enables you to limit referrers who can apply for a reward to one of your existing customer segments.


  • Only first time referee redeems code AND the referrer customer segment is in NEW SEGMENT created below. 

This option enables you to build a segment that defines rewarding criteria. Typically, it's a segment based on the number of referred customers. (Segment of referrers who get the reward can have multiple rules and limits built with available filters).

When the respective checkbox is set, click on NEXT STEP and define the reward for referrers. You can choose from:

  • your existing campaigns (chosen campaign should be in auto-update mode!)
  • creating a new campaign of rewards from scratch

2. Conversion event - custom event

If you count referred customers (referees) based on the performed event, defined in the 3rd section, you can choose from:

  • Rewarding referrer every time the referee performs a specific action (custom conversion event).
  • Defining a number of referees who need to perform a specific action to trigger a reward for the referrer.

Additionally, if you expand ADVANCED options, you can add more limits and rules that referrer needs to meet to get the reward. 

For example, you can set that beside that 2 customers need to perform the chosen custom event with referrer's code, referrer has to have more than 2 orders made in your store so far to get the reward.

When the respective checkbox is set, click on NEXT STEP and define the reward for referrers. You can choose from:

  • your existing campaigns (chosen campaign should be in auto-update mode!),
  • creating a new campaign of rewards from scratch.

Trigger message with reward

Lastly, in this stage, you can implement channels via which you want to notify a referrer about the reward. You can choose from:

  • HTTP callout (add specific URL for notification)
  • MailChimp or Active Campaign (Integrations)
  • Email (the manager lets you design the message template)
  • SMS (the manager lets you design the message template)

When the mapping is ready and action is defined, you can follow to the 6th stage or choose to ADD TIER (the 2nd level of your referral campaign). What are 'tiers' and why do you need them?  


Tiers

Each tier is a separate level in your referral program. If you want to have different rewards or/and different rewarding criteria then tiers are what you need. For example, tier 1 can reward each referrer who refers at least 1 customer with $5 gift card; tier 2 can reward each referrer who refers at least 3 customers with 30% discount. 

There is no limit on a number of tiers, you can make multi-level referral programs with many rewards and custom rewarding schemas.

6
In the 6th stage, you can add optional metadata attributes
7
The last stage of the manager shows you a summary of your referral program. You can see the overview and, in case you need to, go back to each step to set it up again. When all program details are ready, confirm with SAVE and wait until the campaign is generated.
That's it! Your codes are ready to share with your future referrers. Go to the next section to learn to track your referral campaigns.

Note

Remember that each referral code needs to be published before new customers (referees) can use it. Publication means the process of assigning referral code to a particular customer (referrer). You can perform this action either through Distribution in the dashboard or programmatically via API. You can learn more about publish methods in this short guide.


Tracking referral performance

Now, you can share the codes with customers through the web widget or other distribution channels we described in the first section. Each published code is automatically assigned to a customer's profile in the Voucherify dashboard. Ultimately, when customers use their codes, redemptions are attached to the unique ID, particular customer, and channel

The Redemptions view lists every redemption attempt of any of the code created within Voucherify. Its goal is to help you track what happens to your codes.

Tracking with Voucherify starts right after sending the referral code. Before a customer redeems the code, you can see all coupons attached to the particular client in a Customer’s profile.