Integrating Zapier with OptimizeMember

This tutorial will show you how you can create a new user/member inside your OptimizeMember/OptimizePress website by using the Zapier API integration system.

Zapier provides an easy to use system for integrating the API's of different platforms to send data between them.  With the steps in this guide, you can integrate many different applications with your OptimizeMember site to have them send new user information and create a new user or member on your site as you require.

In this guide, I will show you how you can take data from a form submission in the Formstack system ( and use this submission to create a new user inside your OptimizePress website.

Before You Start

Before you start integrating your applications in Zapier, there are a few pieces of information you need to have prepared.

  • Your Remote Operations API Key from OptimizeMember: to find this, go to OptimizeMember > API/Scripting > Pro API for Remote Operations and copy the key listed there.

  • The Level Number You wish to add a member to: you need to know what level number you want to add your new member to inside your OPM site.

You'll also need to know what system you want to integrate with inside of Zapier - there are many options available but normally you'll have an idea of this in advance.

Creating the Integration

In this example, I will be using a submission from a Formstack form to pass the information to Zapier, and then from there Zapier will send the information to the API system inside OptimizeMember to create the new member.

We'll Start By Creating a New Zap

From your Zapier Dashboard, you need to click on the Make a Zap button.

Part 1: Selecting and setting up the Trigger App

1. Choose a Trigger app

You need to choose the trigger app for your integration. This is the app where the data or information is coming from. In my case this is Formstack, but this could be from Paypal, an email service provider like AWeber or some other service which Zapier has integrated.

2. Choose a Trigger action

You now need to select the trigger action from the App you are integrating. In my case the trigger is upon the submission of a new form, but this could be a successful sale at Paypal, or a new subscriber at your email service.

The options will vary depending on the service you are using as your trigger app.

3. Select the account you want to integrate with

Once you have clicked continue, you will be prompted to select the account you want to use from your trigger app. This may require you to login to the third party app to connect it with Zapier. In my case I have to select the account I am using at Formstack to use for this integration.

This option will obviously be different for you depending on which App you are integrating with.

4. Test the account and continue

Once you connect your trigger app account you might want to test the account to ensure it is working, then click continue. And then on the Web Hook stage there are no initial options to configure so just click continue again.

(note: the above image is going to be replaced soon)

5. Setup specific filters for this trigger/Zap

You now need to select the specific filter or information that is being used for this integration. Again, this will very depending on the apps you are integrating, but in my case I had to choose a specific form from Formstack which will be used for the submission.

Depending on your requirements you may choose to setup additional filters, but those kind of settings would depend on the app you are using and are a little beyond the scope of this guide.

Once you're happy with the settings here, click continue.

(note: the above image is going to be replaced soon)

Once you select the filters, click continue.

Part 2: Selecting the Action App and setting up the Webhook

1. Choose an Action App

Next we need to choose the app or system which is going to be creating the user inside of OptimizeMember. For this we use the Zapier "Web Hook" integration which allows us to create a custom integration with OptimizeMember.

You must select this option to create the integration with OptimizeMember.

2. Choose an action

Now we need to choose an action for the Web Hook app to perform. For this we will use the "GET" action. It's important that you select this action otherwise the integration will not work.

3. Match up information to send to Web Hook

The final stage of the process is setting up the information which is going to be sent from your integrated trigger app to the Web Hook which then sends the information to your OptimizeMember site.  

For this, we need to use a special URL which will send the information to the API system inside OptimizeMember. The URL includes your API Key and also your domain name - so please use the example below as a guide and replace the API key and domain URL with your information:

[This URL should be entered into the URL field]

If we break this down you can see the important things you need to replace:

- - this must match your domain exactly.  If you have www or https in your domain this should also be included

Query String Params

The following must be added to the Query String Params section.

op=create_user - REQUIRED - This query string will tell OptimizeMember that we are creating a new user.

api_key=1234567890 - REQUIRED - your api key - replace the 1234567890 with your API key which you should have found at the start of this tutorial.

data[user_login] - REQUIRED - This will be the username for your member. We recommend using the "Email Address" for this query string.

data[user_email] - REQUIRED - This is the email address that will be used for the member's OptimizeMember profile. This should be set the same as the user_login.

data[optimizemember_level] - REQUIRED - This is used to define the membership level (also known as "user role") the user will be added to (this is required as WordPress can not create a user without a user role). You must only use the number of the level, and not the level name that you setup in OptimizeMember. If you leave this option empty, it will simply default to the free subscriber role of Level 0.

data[optimizemember_ccaps] - This query string is used to add OptimizeMember packages to the user. If you need to add more than one, just comma separate them like this: package1,package2,package3 (with no spaces). Please ensure that you are using the exact text for these packages as they are listed in the OptimizeMember settings.

data[user_pass] - user password (if left empty, OPM will auto generate it). We do not recommend using this field unless you are able to send the user an email through your autoresponder that contains the password. It is generally best for security to let OptimizeMember generate the password and send the welcome email.

data[first_name] - user first name

data[last_name] - user last name

data[opt_in] - 0|1 (if is set to 1, attempt to trigger defined auto-responders)

data[notification] - 0|1 (if is set to 1, OPM will email new user with username/password). We strongly suggest using this one and setting it to "1" so your members will get their welcome email with the username/password setup link.

data[modify_if_login_exists] - Set this to "1" in case you need to upgrade an existing user.

The end result may look something like this (note that it doesn't matter what order the query strings are in, as you can see in the below screen shot, Zapier will arrange them in a different order for some reason):

4. Leave other options as they are and continue

The other options in this section do not need to be changed, as long as your URL is correct.  The final stage is to test the integration.  

You can do a test by submitting some information through the process and then Zapier will pick this up - and you should check that a new user was created inside of your OptimizeMember site.

You can also set the user's EOT date (end of term) by using the following:
data[optimizemember_auto_eot_time] =yyyy-mm-dd

The date for the EOT can be any value that PHP's strtotime() function will understand (i.e. YYYY-MM-DD for year/month/day).

So if I wanted to set the EOT to expire on December 31st, 2022 then it would be passed as the following:

&data[optimizemember_auto_eot_time] =2022-12-31

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.