Table of Contents
ToggleIntroduction
SEPT 2022 UPDATE:
We built our own ThriveCart MemberPress Integration plugin!
Click on the link above to download it. 🙂
We'll keep this guide here as an additional resource.
Overview
MemberPress has quickly become one of the most popular membership plugins for WordPress.
One of the reasons for this popularity is that Callie and Mike at the Member Site Academy – which is hands down the best and most supportive community for membership site owners – recommend it to their members, and give them a great deal of support in setting up and troubleshooting it on the “Tech Talk” forum in their site.
Hence, many of the 1000+ members of MSA use MemberPress on their sites (as do many of our MemberFix customers!)
And indeed, from a functionality standpoint MemberPress is rock solid. I'd say it's up there in the top 7 best membership plugins alongside MemberMouse, DAP, ActiveMember360, WPFusion, and AccessAlly.
Likewise, ThriveCart is an incredibly popular new shopping cart and funnel app with a ton of users (including me!)
Default ThriveCart MemberPress integration not working
However, the problem we've been encountering lately in our work with our ThriveCart and MemberPress users is that the built-in MemberPress integration in ThriveCart is, as of this writing, buggy.
Sometimes a recurring payment results in a transaction being added to MemberPress but often it doesn't. The result is that annoyed members email our customers to ask for access that they should have received but didn't.
This creates support overhead for our customers and unhappiness for their customers. Plus, it irritates ThriveCart's users since they rightfully expect that an advertised integration will work as, well, advertised!
When I reached out to MemberPress their support passed the buck immediately to ThriveCart without investigating the matter at all. They said the problem is with ThriveCart and to be fair, it very well may be.
Dale at ThriveCart then did a fantastic job of asking for logs, troubleshooting basic configs, diving right into our WordPress install and getting his hands dirty (ThriveCart really has some of the best support I've ever seen, and you can imagine how many different support channels we deal with daily, so that's really saying something!)
But at the end of the day, when everything was set up correctly, the integration was still misfiring. I'm not a developer and I find working with the MemberPress API pretty straightforward so I'm really not sure why ThriveCart is having trouble making it work. I'm sure it's far more complex than I realize.
In any case, rather than wait around in support limbo, I decided to simply use Zapier to temporarily patch the buggy integration for our frustrated customer.
(In the meantime, I've also started a correspondence with ThriveCart offering my assistance in troubleshooting their integration because Zapier is less than ideal.)
Integration Guide
Overview
This integration requires two zaps for each product.
1 – The first Zap creates a new user inside of MemberPress and adds the transaction for this purchase.
The reason for this zap is because if you try to create a transaction in MemberPress for a user that doesn't exist yet in the WordPress database, the transaction won't get added and the zap will fail.
So this zap first checks whether the user exists in MemberPress, and if he doesn't, creates them.
If the user DOES already exist in MemberPress then this zap will fail because you can't create a member who has already been created. And in this case, the second zap will add the transaction to the existing member's account.
2 – This second zap checks for an existing user in MemberPress.
If the user exists, the zap adds the related transaction to their account, thereby extending their access.
If they don't exist the zap will fail but the first zap will take care of adding them. 🙂
WordPress Authentication using Application Passwords
IMPORTANT UPDATE: MemberPress has released their own Zapier app, which eliminates the need to use the Application Passwords plugin. You'll be able to access the MemberPress app from within your Zapier account. Otherwise, most of the steps in this tutorial are the same.
Before you can use Zapier with MemberPress you're going to need to set up request authentication in WordPress.
1 – Go to your WordPress site => Plugins => Search for “Application Passwords”.
2 – Install and Activate the plugin.
3 – Now while you're logged into WordPress as an administrator, find the profile widget in the upper right-hand corner of the screen and click “Edit My Profile”.
4 – Scroll down to the Application Passwords section.
5 – In the provided field type in a “seed” password (it can be any password you want) and click “Add New”.
6 – You'll now see a popup that gives you an application password to go along with the seed password you typed in.
Copy and save it in a safe place (you don't need to save the seed password; only the newly generated application password)
First Zap – For NEW Members Only
1 – Go to zapier.com and log into your account.
*Please note that in order to perform this integration you'll need to have a paid Zapier account. Our team can also set this up and host it for you on our enterprise account for a one-time setup fee and $5/zap/month for the zap hosting.
2 – Open a new tab in your browser and log into your ThriveCart account.
3 – Go to Settings => Integrations => scroll down => Click on the Get Started button for Zapier.
4 – You'll now be redirected to Zapier and allowed to use ThriveCart as a trigger action.
5 – Click “Create a Zap”.
6 – For the purposes of this demonstration we'll use two triggers in two separate zaps.
For the first zap we'll use the “Makes Any Purchase” trigger.
(You could also use the “Product Purchase” trigger and select specific product to trigger this zap. In this case, however, we'll use a filter action in the next step to determine the conditions under which the zap will continue or stop which will effectively do the same thing.)
Select the Any Purchase action and click Save & Continue.
7 – Now click Connect an Account.
8 – In the popup that appears click “Yes, allow access to my account” (if you don't see this message make sure to login to ThriveCart first and then try again).
9 – Name the newly connected account whatever you want and click Save & Continue.
10 – In the next screen you'll have the ability to configure various options about this zap.
If you're setting this zap up for one product only, you can select that product from the Product dropdown.
If you'd like it to work for multiple products, leave all the fields on this page blank, and create an additional Filter step in the next step that checks for the product ID numbers like so:
11 – On the next screen click Connect & Continue and Zapier will search ThriveCart for any recent orders.
*I highly recommend you go and make a live purchase (and refund yourself later) of your product so you can get the real test data pulled into the Zap.
If Zapier can't find a recent ThriveCart order, which does happen from time to time, don't worry about it. Just click Skip Test & Continue and move on to the next step.
12 – Create a new action step and search for “Formatter by Zapier”.
13 – Select Numbers from the options.
14 – On the next screen select Perform Math Operation and set it up like so:
Operation – Divide
First Input – Select the Rebill Amount field from Step 1
Second Input – Click the + button to add this second input field and set the value to 100
The reason for this step is to transform the default price format that ThriveCart spits out into a format that MemberPress interprets correctly. If the price of your product, for example, is $10 then ThriveCart will display it as 1000. If you leave this step out your MemberPress transaction will say $1000 and stuff up your reporting (if you use it). Therefore we have to divide this number by 10 to get the correct value into MemberPress.
15 – Create a new action step and search for “Webhooks”.
Select Webhooks by Zapier.
16 – Select the POST action:
17 – On the next screen fill out the fields as follow:
URL: https://www.yoursite.com/wp-json/mp/v1/members (make sure to replace with your actual website URL)
Payload Type: JSON
For Data create the following 5 fields and use the corresponding data from your ThriveCart test or live sale:
username – Use the buyer's email address to populate this field
first_name – Use the buyer's first name to populate this field
last_name – Use the buyer's last name to populate this field
password – Use the order timestamp to populate this field (the timestamp works well because all we need for a password is a sufficiently random, sufficiently long and unique string of characters)
email – Use the buyer's email address
*Don't worry about the tax_desc field in the screenshot above, you can leave that out.
18 – Scroll down to the Basic Auth section and enter the following info in this exact format:
VicDorfman|8qY1 UNcm rETl xv3p t3aU KMrk
You can see above that the format is the username (VicDorfman in my case) followed by a vertical pipe symbol ( | ) followed by the application password that you generated earlier.
Notice there are no spaces between the username, the pipe, and the application password. And you MUST use the username and NOT the email. You can use the email only if the username happens to be the email address as well.
19 – Proceed to the next step and send a test webhook.
20 – If the test succeeds go into MemberPress => Members and find the email address of the test user that should have just been created.
21 – Create another action step in the zap and search for “Delay”. Select Delay by Zapier, select the “Delay For” action, and set the delay to 1 minute (to allow enough time for the member to be created).
22 – Create another action step in the zap. Again select the Webhook action but this time make sure it's the GET type (not POST).
23 – For URL use the following address:
https://www.yoursite.com/wp-json/mp/v1/members
*Make sure to replace with the URL of your actual domain.
24 – Fill out the Query String Params section with one field, “search”.
And use the email address from the first step of the zap as the value.
25 – Scroll down to Basic Auth and enter the same authentication credentials as you did for the previous Webhook step.
26 – Click Continue and test the zap.
27 – Add a new action step, a webhook with POST type.
28 – For the URL enter:
https://www.yoursite.com/wp-json/mp/v1/transactions (replace with your domain)
Payload type should be set to JSON.
29 – Create the following fields:
status – set to complete
coupon – set to 0
created_at – use the order date value from the first step
amount – use the sale amount value from the first step
member – populate with the member ID number from the previous webhook step
membership – go to MemberPress => Memberships and find the ID number of your membership (left-most column) and place here
gateway – set to manual
subscription – set to 0
*You don't need to define a subscription because ThriveCart handles your billing anyway. You just need a transaction for the corresponding membership and your members will be able to get access.
Also, don't worry about some of the field values above saying “no data”. Once real orders come through the real data will get populated.
Sending your members a welcome email
One problem with this integration method is that it doesn't trigger MemberPress to send out a welcome email for new members like it would for a purchase made via its native checkout process.
So it becomes necessary to use Zapier for this as well.
I'm going to use Email by Zapier to do this but I recommend you use Gmail instead (you can select Gmail as an action step and connect your account to “send from” your Gmail address which looks more personalized and has a better chance of hitting the Primary inbox).
You can also use your email marketing application (e.g. Drip, ActiveCampaign, MailChimp, etc.) but it would require you to pass the password value to a custom field first and then set up an automation in your email app to send that password to your new members.
Finally, note that you do NOT have to do this step for recurring payments as those members already have working login details.
1 – Add a new action step and search for Email by Zapier
2 – The only option on the next step is Send outbound email so select that and click Save & Continue.
3 – Select the following options:
To – Select the email address from Step 1
Subject – Write the subject line of your welcome email (anything you want)
Body – You can write whatever you want here just make sure you include the login URL, the username (email address from step 1) and the password (Order ID from Step 1).
4 – I also recommend setting your From Name and “Reply To” email as below:
From Name – Your name or the name of your brand usually
Reply To – The email address messages should be sent to if somebody replies to this message
Second Zap – For RECURRING Payments
The second zap which we'll use to add transactions in MemberPress for recurring ThriveCart payments is very similar to the first zap but with a few key changes.
1 – Login to Zapier.
2 – Open a new tab in your browser and log into your ThriveCart account.
3 – Go to Settings => Integrations => scroll down => Click on the Get Started button for Zapier.
4 – You'll now be redirected to Zapier and allowed to use ThriveCart as a trigger action.
5 – Click “Create a Zap”.
6 – Select the “Any Recurring Payment” trigger.
7 – On the next step click Connect an Account or select the account that you connected earlier.
8 – In the next screen you'll be able to configure various options for this trigger.
If you're setting this zap up for one product only, you can select that product from the Product dropdown.
If you'd like it to work for multiple products, leave all the fields on this page blank, and create an additional Filter step in the next step that checks for the product ID numbers like so:
9 – On the next screen click Connect & Continue and Zapier will search ThriveCart for any recent orders.
Don't worry if Zapier can't find a recent ThriveCart order. Just click Skip Test & Continue and move on to the next step.
10 – Create a new action step and search for “Formatter by Zapier”.
11 – Select Numbers from the options.
12 – On the next screen select Perform Math Operation and set it up like so:
Operation – Divide
First Input – Select the Rebill Amount field from Step 1
Second Input – Click the + button to add this second input field and set the value to 100
The reason for this step is to transform the default price format that ThriveCart spits out into a format that MemberPress interprets correctly. If the price of your product, for example, is $10 then ThriveCart will display it as 1000. If you leave this step out your MemberPress transaction will say $1000 and stuff up your reporting (if you use it). Therefore we have to divide this number by 10 to get the correct value into MemberPress.
13 – Create another action step in the zap.
Select the Webhook action of the GET type (not POST).
14 – For URL use the following address:
https://www.yoursite.com/wp-json/mp/v1/members
*Make sure to replace with the URL of your actual domain.
15 – Fill out the Query String Params section with one field, “search”.
And use the email address from the first step of the zap as the value.
URL – https://www.yoursite.com/wp-json/mp/v1/members
search – email address from step 1
16 – Scroll down to Basic Auth and enter the same authentication credentials as you did for the previous Webhook step.
17 – Click Continue and test the zap.
18 – Create a new Webhook action step.
19 – Select the POST action:
20 – On the next screen fill out the fields as follow:
URL: https://www.yoursite.com/wp-json/mp/v1/members (make sure to replace with your actual website URL)
Payload Type: JSON
For Data create the following 5 fields and use the corresponding data from your ThriveCart test or live sale:
username – Use the buyer's email address to populate this field
first_name – Use the buyer's first name to populate this field
last_name – Use the buyer's last name to populate this field
password – Use the order timestamp to populate this field (the timestamp works well because all we need for a password is a sufficiently random, sufficiently long and unique string of characters)
email – Use the buyer's email address
*Don't worry about the tax_desc field in the screenshot above, you can leave that out.
21 – Scroll down to the Basic Auth section and enter the following info in this exact format:
VicDorfman|8qY1 UNcm rETl xv3p t3aU KMrk
You can see above that the format is the username (VicDorfman in my case) followed by a vertical pipe symbol ( | ) followed by the application password that you generated earlier.
Notice there are no spaces between the username, the pipe, and the application password. And you MUST use the username and NOT the email. You can use the email only if the username happens to be the email address as well.
22 – Proceed to the next step and send a test webhook.
23 – If the test succeeds go into MemberPress => Members and find the transaction for the test user that should have just been created.
24 – You can even optionally send your MemberPress welcome email through your email marketing service.
Hey Vic! Thanks so much for this tutorial. How do you recommend handling members who cancel their subscription within ThriveCart as this doesn’t automatically trigger in Memberpress.
No problemo, Zoe! Here’s the deal with cancellation: 1. Whenever a recurring payment comes through from ThriveCart it creates a transaction in MemberPress. 2. The length of time that the transaction is valid is based on your membership settings in MemberPress. 3. So if you have a monthly recurring subscription set up in MemberPress (even though TC handles the payments), that means that each recurring payment will extend access for another 30 days. 4. Thus, if a customer cancels, they’ll continue to receive access to the members area until the access end date of their latest transaction arrives. 5. If… Read more »
I noticed that when a recurring payment is set up in Thrivecart, it sets up the subscription as non-recurring, does that matter? Also, how do you set up the length of the transaction?
Hi Steven, 1 – Do you mean that a recurring payment in ThriveCart is set up as NON recurring in MemberPress? If so, that doesn’t matter because MemberPress in this case is not managing the subscriptions; ThriveCart is. The only thing of importance here is that your members have recent transactions in MemberPress. 2 – The length of the transaction will be based on the terms you have set up for the particular membership level that the transaction is associated with. So if the membership level has monthly recurring terms then the transaction will be 30 days long. If it’s… Read more »
How do you handle the refunds using memberpress and zapier? Since Thrivecart doesn’t have any option to send anything to memberpress directly.
Hi Stefan,
I have a tutorial addressing that issue here:
https://memberfix.rocks/refund-zap-memberpress/
I’m not sure if ThriveCart has a trigger for a refund action, but your payment processor definitely will.
Hi, vic.
Awesome post! Loving it and am building the solution you suggest. I ran into trouble at the last step. Creating the post-webhook generates an error: mp_db_create_error
I cant find anything I might have missed. Sound familiar to you?
Thanks again!
Hi Michiel,
That error means the user already exists in MemberPress which is why the zap can’t create him and fails.
However, I just got an email from ThriveCart this morning saying they finally fixed this issue. So this tutorial might be unnecessary now. 🙂
You might want to test that first.
Hey Vic! Thanks so much for this tutorial. Is it possible to se the total_spent value in members mail list? I would like to see there the amount, but i see 0.
The transaction is completed with total value correct.
Thanks
Hi Jon,
Just to clarify, are you trying to set the value for a custom field in your email marketing software called “total_spent”? Or are you referring to a field called “total_spent” in ThriveCart or MemberPress? Because I’m not seeing such a field in the ThriveCart or MemberPress API.
Vic,
I am just installing MemberPress so right now this is a little overwhelming to think about. If I am going to just sell basic memberships (monthly/annual), should I just stick with the MemberPress internal subscriptions/payments? I do own ThriveCart but have not used or installed it.
Does ThriveCart have any advantages over MemberPress? Any differences as far and calculating and reporting taxes?
Also, your solution above involves Zapier. What is an estimated cost of Zapier? I really don’t understand their pricing structure.
Thanks for all the great posts.
Hi Myron, thanks for your comment. 🙂 1 – There are advantages to sticking directly with MemberPress’s checkout system. The main one is that you can control all of the subscriptions, refunds, cancellations, etc., directly from within MemberPress. Your members will also be able to upgrade, downgrade, and cancel from within their my account page. Whereas if ThriveCart is your checkout system then you’ll have to do those changes in ThriveCart and your members won’t be able to manage their accounts in the same way. 2 – The ThriveCart advantages are all of their reporting, upsell / downsell flows, built… Read more »
Hi Vic, This was insanely helpful since the direct integration would not work. I was able to follow all the steps however when the new member is added to membervault it doesn’t ad them to the specific membership offer. It just adds them in the members list. I’m sure I’ve left something out. Any ideas on this would be helpful!
Hi Lesley,
In order to members to a specific offer (“membership” if we’re talking about MemberPress) then you’d need to specify which membership level a user gets added to within the Zap.
It’s hard to help without seeing your actual setup, though.
Please get in touch with us at sales(at)memberfix.rocks and we’ll see if we can lend a hand. 🙂
Best,
Vic
Thanks for this. We are currently having a few issues with Thrivecart x Memberpress.
Cancellations
Thrivecart is adding members to the recurring membership in Memberpress as we wanted but somehow it is showing as a non-recurring.
Then when the member cancels it never cancels their membership. It says they have it forever.
Updating their details
If someone updates their email in Thrivecart it doesn’t filter to Memberpress.
The cancellation one is infuriating. I assume I’ll have to set up a zap for this.
Hey Official L, I see you’ve already bought our ThriveCart MemberPress Integration Plugin, so thanks for that. But for anyone else reading I’ll answer your questions: 1 – Yes, ThriveCart adding transactions as non-recurring was one of the main issues we were using Zapier to solve. And it was a bit messy because of the limited triggers that ThriveCart gave us in the Zapier app. Basically, once the transaction gets added by ThriveCart, the Zap looks for it and updates it with the correct expiration date. And that would have to be done for every rebill obviously. The same goes… Read more »