ConvertKit is an email marketing platform that offers robust tools for automation and subscriber tagging. This integration subscribes and tags your Paid Memberships Pro members and users without a membership level (including cancelled members) in ConvertKit. The plugin also adds purchase data to the subscriber for their membership purchases through the Paid Memberships Pro checkout process.

The plugin is available for free and is listed in the Plugin repository.


  1. Navigate to Plugins > Add New in the WordPress admin.
  2. Search for “Paid Memberships Pro – ConvertKit Integration“.
  3. Click “Install Now“. Then, “Activate“.

General Settings

  1. Navigate to Settings > PMPro ConvertKit in the WordPress admin.
  2. Enter your ConvertKit API Key and API Secret Key. These keys can be found on the “Account Settings” page of the ConvertKit app here. You must enter the API Secret Key in order to add purchase data for your subscribers.
  3. Optionally check the box to “Require Opt-In” and modify the “Require Opt-In Label“. This field will appear on your Membership Checkout page.
  4. Click “Save Settings“.

Video: How to Find Your ConvertKit API Keys

How to Assign a Tag to a Membership Level

After saving your API Keys, you will have an option to assign unique tags to each membership level in your site. You can add new tags within your ConvertKit app. See their documentation page on Creating and Managing Tags for more information.

  1. Navigate to Settings > PMPro ConvertKit in the WordPress admin.
  2. For each membership level, select a tag from the dropdown list.
  3. Click “Save Settings“.

As new members join your site, the tag will be assigned to that subscriber in your ConvertKit account. Note that when a member changes levels, the default ConvertKit Integration will not remove tags for previously held levels. You can enable this using the pmpro_convertkit_after_all_membership_level_changes_remove_tags filter hook.

The ConvertKit API for tags does not currently offer any batch processes, so removing tags alongside adding them requires two or more distinct API calls. This process can slow down a membership site where there are many level changes happening at once, specifically for sites using a Multiple Membership per User environment.

This integration will not run an update on all existing members. To do this, you will need to import member data to your ConvertKit account.

How to Import Existing Members and Tag them in ConvertKit

Before you begin the import process, please review ConvertKit’s documentation on Importing Subscribers with Tags and Custom Fields. The first step of the import process is to prepare a custom CSV of the member data from your PMPro membership site.

  1. Navigate to Memberships > Members. Export the full members list or filter your list to the correct data you’d like to import to ConvertKit.
  2. In a spreadsheet editing program, remove all unnecessary columns. By default, ConvertKit only includes two fields on your subscribers’ profiles: First Name and Email address. You must add additional fields within ConvertKit for any custom data you would like to import. Leave the membership_level column to help you populate the correct tags.
  3. Next, add a new column to your spreadsheet labeled Tags and adjust the data for each subscriber to be imported. For example, if you want to tag people in your “Bronze” membership level with the ConvertKit tag “pmpro-bronze”, add that single tag value to your Tags column. You can add multiple tags per subscriber, just separate them with a comma.
  4. You can now remove the membership_level column.
  5. Export the data as a .csv then proceed to the Subscribers page in your ConvertKit dashboard to complete the import.

How to Enable Debugging in the ConvertKit Integration

Set the CK_DEBUG constant to logs errors in the ConvertKit Integration Add On. You can refer to this comprehensive on How to enable debugging on your WordPress site for more help configuring the debug constant.

define( 'CK_DEBUG', true );

Once debugging has been enabled, run a test to subscribe a member to your list, either by proceeding through the checkout process, or hitting the ‘Save Profile’ button when editing a member’s profile through the WordPress Dashboard. 

By default, the log file is a new file named log.txt that is automatically created and stored in the ConvertKit Integration’s plugin folder. You can move the location of this file using the pmprock_logfile filter.

The majority of ConvertKit errors are returned in plain English, ensuring that you can work on a fix around this quite easily.

Action and Filter Hooks

`apply_filters( ‘pmpro_convertkit_after_all_membership_level_changes_remove_tags’, false, $unsubscribe_tags );`

`apply_filters( ‘pmpro_convertkit_subscribe_fields’, array $subscribe_fields, $user_email );`

`apply_filters( ‘pmpro_convertkit_subscribe_tags’, array $subscribe_tags, $user_email, $new_levels, $old_levels );`

`apply_filters( ‘pmpro_convertkit_unsubscribe_tags’, array $unsubscribe_tags, $user_email, $new_levels, $old_levels );`

`apply_filters( ‘pmprock_logfile’, $pmprock_log_file );`


Screenshot of the PMPro ConvertKit Settings page in the WordPress admin.

Navigate to Settings > PMPro ConvertKit in the WordPress admin: enter your API and API Secret Keys; Map Tags to Membership Levels.

Screenshot of an example ConvertKit subscriber with purchase data for their initial membership checkout order.

Example ConvertKit Subscriber with purchase data for their initial membership checkout order.

This is a Free Add On.

Create a free account or log in to gain access to downloads and documentation.