Tutorial: How to Allow Your Users to Purchase Courses as Gifts

Eduardo Yi

| Dec 19, 2017

This post was originally published in December 2016. 

We can all agree that the best advocates for your product are people who have used and loved it.  

If you’re not leveraging advocacy for your online business, you’re missing out on the most powerful growth driver available. (Tweet this!

If you are, then you’re probably doing it through one of these methods:  

  •  Gathering reviews and ratings for your course, which can be displayed publicly.  
  •  Incentivize word of mouth among your users. This can even include an affiliate program.  
  •  Asking your users for testimonials and displaying them on your site as social proof.   

What if I told you there is one extra way to leverage advocacy that most people don’t use but allows you to directly generate more revenue from your existing base of loyal users? 

If you’re not jumping on your seat right now, I would recommend checking if you have a pulse. 

By offering the ability to “Gift This Course” to your users, you allow them to directly purchase a product they love and give it to someone they care about. 

Win-win… -win.  

In this post, I’ll show you the exact process you can follow to offer an automated “Gift This Course” option to your users with Teachable. I’ve even gone as far as to put it in an easy-to-follow course format and added downloadable templates you can use for the setup.

Get the Tutorial and Templates to Add "Gift This Course" to Your Teachable School

The tools you’ll need 

First off, let’s go over all of the tools you’ll need to create this automated workflow.  

  1. Teachable (duh, right?) 
  2. Google Forms to collect information from your users on your Teachable school. 
  3. Google Sheets will serve as a repository for the data that will come from Teachable through the Google Form and be sent to your email marketing service. 
  4. Zapier allows you to tie all these apps together to automate the whole process. 
  5. An email marketing service to send emails to the recipients of the gift. This is optional, and I’ll explain how to do it with one (MailChimp) or without it.  

Your first step will be to set up the necessary accounts so you can use these services. 

Please, don’t let yourself be intimidated by the number of tools this involves. In the next section, I’ll explain how it all works together.  

How it all works 

Before we dive into setting everything up, it’s useful to get a holistic view of how the whole process looks like.  

When offering your users the option to purchase a course as a gift, in essence, you’re giving them the option to purchase a single-use coupon to your course, which they can send to someone else. 

This flowchart shows the whole process we’ll create on this post. 


Pumped about getting started? (If you’re not, I suspect you might have been sent from the future to kill Sarah Connor.) 

Side note: I created a course called “Speak like a Venezuelan,” which allows people to pretend they are advanced Spanish speakers by teaching them popular Venezuelan slang phrases - I think this would be an excellent gag/fun gift, so I’ll use it as an example for this post. 

Creating a “Gift This Course” course 


All you need to do is create a new course on your Teachable school with messaging that relates to sharing value (i.e. purchasing your course to give as a gift.) 

Protip: alternatively, you can just clone an existing course, modify the copy to “purchase this course as a gift” and delete all the existing lectures and sections in it. This will save you some time in terms of styling the course and creating its sales page.  

This course will consist of a single section with one lecture, where you’ll collect the gift recipient’s contact information from your customer. 

To collect the gift recipient’s information, we’ll use a Google Form which we’ll embed in our lecture. 

After creating a new Google Form, the first thing we need from them is their email address (required field) and make sure they use the same email address they used to purchase the course - this is critical to validate purchases, which we’ll set up a little later. 

Protip: add data validation to make sure your customers include a valid email address. 

Next, we’ll ask the customer to indicate whether they want to send the gift themselves or if they want us to send it (this should also be a required field.) 

In this question, we’ll add a condition. Here’s why:  

  • If the customer just wants to send the gift by themselves, then all we need is their email address. This means we can end the form here. 
  • If the customer wants us to send the gift, we’ll need to gather a bit more information. So we’ll want to ask a couple more questions in the next section of the form.  

Doing this in Google Forms is really simple. Just click on the three dots on the lower right corner of the question, select “Go to section based on answer,” and assign an appropriate answer to each option. 

To send a cool personalized email, we’ll need the customer to fill out:  

  • Name (required) 
  • Gift recipient’s name (required) 
  • Gift recipient’s email address (required)  

And that’s it! Your Google Form is ready, now click on the “Send” button up top and get the form’s embed link.

And paste that embed code into the lecture you previously created using a text box. 

Teachable's Massive Course Creation Resource Bundle

This is the most complete free bundle of resources to help you create an online course. Download this and get 167 files to help find your profitable idea, set your pricing, track engagement, and much more.

Protip: change the width and height parameters to 100% and 500px, respectively, to make the form adjust automatically to the size of the lecture window. 

Now publish the lecture, add a price to the course (same as the price of the actual course) and publish it.  

Time to play with data and spreadsheets (a phrase I say too often, I must admit.) 

Setting up a Google Sheet as data repository 

Using a spreadsheet will allow us to easily manage all the data needed for this workflow. Google Sheets is the easiest one to use since it easily syncs with Google Forms and Zapier. 

You can easily create this spreadsheet from Google forms through the “Responses” tab. 


Next, create a duplicate of the sheet, add the formula below to cell A2, and drag that formula right to the last data column and down to row 1001.

=Indirect("'Form Responses 1'!"&"R"&row(A2)&"C"&column(A2),false)  

Rename this sheet to “Master” to differentiate it from the original one. 

Next, generate 1,000 single-use codes for your actual course (how to do that here), and add them to a new sheet called “Single-use coupons” with a header in the first row.  

Add a new sheet called “Purchases” and add the header “Purchases” to the first cell. We will not add anything to this sheet, as we will let it be automatically populated by Zapier with every purchase. 


Now, add a column called “Single-use coupons” to the “Master” sheet and paste this formula in the second row of that column and drag it down to row number 1001: 

=if(Master!B2="","",if(COUNTIF(Master!B$2:B2,B2)-COUNTIF(Purchases!A$2:A$1002,B2)<=0,Indirect("'Single-use coupons'!A"&row(G2),true),""))  


This formula is your safety switch. It will prevent the addition of new coupons to the “Master” sheet if:

  1. The email from the form submission does not match the purchase email (i.e. if someone finds the link to your form and attempts to get free coupons)
  2. A customer attempts to submit the form more than once to get more than one coupon.  

Annnnd, this is it for setting up your spreadsheet - it wasn’t that hard, was it?  

If you’ve gotten this far, you’ve managed to associate purchases, form submission, and single use coupons. 

You’re a boss. 

Onward to the next step! 

Setting up custom fields on your email marketing service 

Again, if you don’t use a service for email marketing, you can just use Zapier to send plain text emails. If that’s your case, just click here to skip to the next step

For this example, I’m using MailChimp, but the setup should be very similar to other services. 

In MailChimp, go to Lists > Settings > List fields and *|MERGE|* tags 

MailChimp has 3 default fields on a list: email, first name, and last name. We’ll add 3 new ones:  

  • Is gift recipient? field - will allow you to differentiate what kind of subscriber it is. 
  • Gift sender’s name field - will be used to customize the email text. 
  • Gift sender’s email field - will allow you to associate gift receiver and sender. 
  • Single-use coupon field- which you’ll send via email.  

Now you’re ready to start putting everything together :) 

Getting everything to work together with Zapier 

Zapier is one of my favorite tools out there. It allows users like you and me to integrate different web tools to automate tasks without needing to write any code. 

How it works is very simple:  

  1. You set up an app that will act as a trigger. 
  2. The trigger app sends data to Zapier. 
  3. Zapier sends that data to another app that will generate an action with this data.  

A simple example of this is: A new customer purchased a course on your Teachable school, Zapier collects the transaction information and puts it in a new row on a specific Google Sheet (hint, this is what we’re doing.) 

In our case, we’ll use Zapier to connect Teachable, Google Sheets, and MailChimp. 

Connecting Teachable and Google Sheets 

As we mentioned in the previous step, we want every purchase to be automatically added to the Google Sheet where the data from the Google Form is filled, since this will allow for a new single-use coupon to be associated with the purchase. 

This is how you can set that up (and click here to get more information about integrating Teachable with Zapier.) 

Go to Zapier and create a new zap called “Send Course Gift Purchases to Google Sheets.” 

Next, select Teachable as a trigger app and select “New enrollment” as the trigger. 

At this point, if this is your first time using Zapier and Teachable together, you’ll need to connect your Teachable account and test it. 

Next, we’ll setup a filter. This is needed to allow transactions from the “Gift This Course” course to go through this process. 

Select your filter and only continue if “Course Name” contains the name of the course. 

It’s time for some action (seriously.) Select Google Sheets as your action app, choose “Create Spreadsheet Row” as the action, connect your account, and set it up as shown below. 


To check that everything is working properly, go back to your spreadsheet and check that 2 new rows were added by Zapier on the “Purchases” shee

And, as expected, only 2 coupons showed up on the “Master” sheet. 


Now go back and erase those test rows from the “Purchases” spreadsheet. 

Sending coupons directly to the course buyer 

For customers who just want to get the single-use coupon and send the gift themselves, we’ll use a simple plain text email via to deliver it - no need for fancy HTML emails. 

Again, we can solve this with Zapier. 

Create a new zap called “Send coupon to buyer,” choose Google Sheets as a trigger app, “Updated spreadsheet row” as an action, and the following setup. 

We’ll use a filter only to allow the workflow to continue if two conditions happen:  

  1. The data in the coupon column exists. 
  2. The buyer asked to be sent the coupon.  

And we’ll use Gmail to send an automated email. 

When setting up the action, select the appropriate column from the spreadsheet to populate the email recipient field. 

And the following setup for the email content. 

Turn on this zap, and move on to the last step! 

In the next section, I’ll explain how to sent emails to gift recipients with plain text emails. If you’re using an email marketing service, just click here to skip this section

Download the Profitable Course Idea Workbook

In the Profitable Course Idea Workbook you'll find out which of your passions will be the most impactful, start thinking about who your audience is, find their pain points and brainstorm how you can solve them.

Sending emails to gift recipients - Option 1: Plain-text emails 

If you don’t use an email marketing service or just want to send plain-text emails to gift recipients, you can follow a similar process as in the previous step. 

Create a new zap called “Send coupon to recipient,” choose Google Sheets as a trigger app, “Updated spreadsheet row” as an action, and the following setup. 

The following setup for the filter. 

Choose Gmail to send emails, and use data from the appropriate column to populate the email recipient’s field. 

And this setup for the contents of that email. 


If this is the method you chose to deliver emails, you’ve now completed the automated process. Click here to skip to the last section to test and see how this all looks at work

Sending emails to gift recipients - Option 2: MailChimp 

To send emails to gift recipients via MailChimp, we’ll first need to add them as subscribers and then set up email automation within MailChimp. 

To automatically add new subscribers to MailChimp, we’ll add Zapier again. 

Create a new zap called “Add gift recipient to MailChimp,” choose Google Sheets as a trigger app, “Updated spreadsheet row” as an action, and the following setup. 

Use the setup below for the filter. 

Select MailChimp as an action app and add a new subscriber with the setup shown here.


Go to MailChimp, create a new automated workflow, select signups as a trigger, and set it up to start immediately. 

Design the email to be sent via the automated workflow by using merge fields to customize the content and add the single use coupon. 

Turn on your new workflow and get ready to test this bad boy. 

Testing the automated process 

To test, start by creating a 100% off coupon for your “Gift This Course” course, which you can use to start the process from the top and use your own email as both the sender and recipient. 

If everything works properly, you should receive an email similar to this one. 


Get the Tutorial and Templates to Add "Gift This Course" to Your Teachable School

How you can improve on this process 

I created this post with the objective of setting up a baseline on how to accomplish offering courses as gifts via an automated process. 

I only included one very basic customer-facing functionality:  

  • Allowing customers to choose whether to send the coupon codes themselves or automatically through your school.  

Here are just a few things I think would be cool to add to all of this and that I encourage you to think about!  

  • Allowing customers to choose the date when they want the email to the gift recipient go out. 
  • Allowing customers to add custom messages to the automated email. 
  • Designing cool email templates for the automated emails that will deliver the gift.   

Have other ideas? Would love to hear them in the comments! 

Limitations (that I could find) 

1 per course** 

The automated process described above works for one course. If you wanted to offer several courses from your school as gifts, you'll have to recreate the process for each.** 

1 purchase per email address 

This process only works once per user account/email address - If a customer wants to purchase more than one course as a gift, they would need to check out with several email accounts. This is due to the safety trigger I included in the process that will prevent people from using access to the course/form to try to send more coupons than they should. 

Obviously, this is not ideal, but I would think, in any case, you can just give those people the option to contact you directly to get more than one coupon. 

X customers or less 

I set up this automation process to work for up to 1,000 sales of your “Gift This Course” course; it could work for fewer customers if some of them attempt to submit the form more than once. 

However, selling more than 1,000 of these is a good problem to have, right? 

Did you find this useful? Want to see more content like this? Tell us! 

Your feedback is very important to our content creation process.  

If you found this useful (or didn’t), found something I missed (I’m sure I did), think of something cool we could add to this process, want to see a similar post about another topic, or just want to say hi - pleeease add a comment below!  

I’ll personally read and answer every one.

Eduardo Yi is a content marketer.