March 2, 2021

Low-code referral system

Educatly is a platform for young people to find their study abroad opportunity of their dreams. At this time, we wanted to make use of our engaged users to bring referrals to the platform. We were ready to incentivize this by offering monetary compensation for successful referrals. What we did not have were engineers to build an end-to-end referral system.

My Role: Product Manager, Developer, and "designer".

What was the problem?

Educatly is a platform for young people to find their study abroad opportunity of their dreams. At this time, we wanted to make use of our engaged users to bring referrals to the platform. We were ready to incentivize this by offering monetary compensation for successful referrals. What we did not have were engineers to build an end-to-end referral system.

The solution

We built a very-low code referral system that allowed users to enter their email address and receive their own unique referral code.

Someone who clicked on the referral code landed on our sign-up page with the referral code automatically applied.

Upon signing up, we would store this sign up as a successful referral.

The process

Low-code

We were clear that this was just an experiment. Thus, we wanted to avoid building an end-to-end referral system inclusive of a signup process, a database, and everything else that goes around it. Hence, we banked on Hubspot to facilitate most of it for us.

In order to avoid having a database, we generated the referral code based on the email address. The code essentially is the first 8 characters, capitalized, of the MD5 hash of the users email address. While it's not a perfect solution that theoretically allows duplicates, the chance of that happening with our small user base was very very low.

Every time someone signed up on our referral page, we would automatically create a dynamic list in Hubspot's backend.

Using Google Tag Manager (GTM), we deployed a few lines of javascript on our sign up page that would check whether the referral code is in the URL and then display the banner and referral field accordingly.

Also using GTM, we added a function that was executed when the user pressed sign-up that would call Hubspot's Form API with the sign up's email address and the referral code to create a contact.

Since we then had a contact, it would automatically show up in the dynamic list we created before. If the referred user applied for a program, we also saved that to the Hubspot contact.

On the referral landing page we could then use the dynamic list API to get a list of all referrals and their status, whether they applied, or filled their profile. Based on status, we would give a different payout value and we would calculate the overall referral compensation that this user was eligible to receive.

Learnings

We did not know whether a referral system would work for us. Hence, building a low-code solution to see the engagement of our users was helpful. Unfortunately, once it came to scale the referral program, the system was not suitable anymore and actually slowed us down more than it helped. To make it better next time, I would set clear expectations with the marketing team for what purpose the prototype is suitable and at which point of scale we need to move over to a more scalable solution.

other posts