
Thrivecart is a fantastic digital checkout platform that allows for building sophisticated sales funnels (bumps, upsells, and downsells). One of Thrivecart's latest additions was Thrivecart Learn, a membership add-on that fully integrates with the core Thrivecart platform and allows one to host courses.
However, users quickly noticed that Thrivecart Learn has one limitation. Unless your main product is a course in Thrivecart Learn, your upsell cannot be a course. So, for example, if your main product is a digital download, you will not be able to fulfill an upsell with a course natively.
While the Thrivecart team might be working on a native workaround, we've created our own.
Before we get into the weeds, we want you to know that some links in this article are affiliates. This means we're getting a commission off your purchases by clicking on any of these links, but it won't cost you a penny more. So everyone wins.
Contents
Objective
Fulfill an upsell made in Thrivecart with a course hosted in Thrivecart Learn.
Solution
We will be by-passing the native course fulfillment feature of Thrivecart by creating automation in Make and making an API call on Thrivecart to grant access to a course.
Step 1: Create an API key in Thrivecart (if you don't have one already)

Navigate to Settings => API & Webhooks => API Keys. If you don't have an API key already, create one. Then copy and store somewhere safe.
Step 2: Create products

You need two digital products - the main product and an upsell. Ensure you don't pick "add to a membership platform" fulfillment with either of them. The products need to be in test mode for now.

Ensure your upsell is live and attached to the main product by customizing the funnel.

Note the number that Thrivecart gave to your upsell. You can find it on the screen where you edit the upsell. In this case, the number of the upsell is "1".
Step 3: Note the course id of the course you want to upsell

Get the ID of the course you're fulfilling with the upsell. You will find the course id by going into Edit mode in Thrivecart Learn and noting the number in the URL in your browser. Here, the course id is "40454".
Step 4: Build automation in Make

Your scenario in Make needs to have three modules (as above):
- Thrivecart trigger
- A filter that filters the flow of the scenario on the purchases of your upsell
- HTTP module that makes an API call on Thrivecart and adds a student to a course
To set up your Thrivecart trigger, you must create a new webhook in the Thrivecart module in Make and add the URL to Thrivecart.

The way to do it is by first copying the webhook URL that Make generated in the Tirivecart module, then running the Thrivecart Make module once, then pasting it into Thrivecart and clicking "ok".
Then rerun your Thrivecart module and make a test purchase in Thrivecart while making sure that the Thrivecart trigger captures the webhook purchase event.
To set up your filter, you must create a condition that looks for your upsell ID in the "Purchase Map Flat" section of the Thrivecart webhook event data. If your upsell number is "1", then the filter needs to look for "upsell-1".
To set up your HTTP module, you need to do the following:
- Your URL is https://thrivecart.com/api/external/students
- Method is POST
- Create a header item to authorize the API call using your Thrivecart API key (the key type is "Bearer").
- Set the body type to "form"
- Create two items in the body. Item 1 is the course_id, with the value being the course id number you noted from an earlier step. Item 2 is email, mapped to the relevant field in the Thrivecart webhook output.
Step 5: Test and finalize the scenario
We recommend that you run two test transactions in Thrivecart - one where you purchase the upsell, and the other where you don't. Once the scenario works, you can set the product in Thrivecart to live mode. We also recommend adding another filter between the Thrivecart trigger and the HTTP modules with the condition of the purchasing mode being "live".
Want to go faster?
You can use our pre-built Make automation scenario and save time. The scenario has been tested and needs a few customization steps (instructions included).
Questions?
Use the chat widget to get in touch with us.