All Docs

How to Sync MemberPress Members to Klaviyo Automatically

Klaviyo has no native MemberPress integration. If you run a membership site on MemberPress and use Klaviyo for email marketing, your member data lives in two places that don’t talk to each other.

That usually means one of two things. Either you export members from MemberPress and upload them to Klaviyo manually, or you set up a Zapier workflow with a monthly bill that grows with your contact count. Both options break in their own way. Manual exports go stale the moment someone cancels. Zapier adds a third-party relay between your site and Klaviyo that you can’t inspect when something goes wrong.

FlowSync connects MemberPress to Klaviyo directly inside WordPress. When a membership activates, expires, or changes, the contact gets synced to the right Klaviyo list with the right profile properties, without leaving your server.

This guide covers the full setup.

What you can automate

FlowSync listens to MemberPress lifecycle events and pushes contact data to Klaviyo when they fire. The workflows you can build:

  • Add members to a Klaviyo list when their membership activates
  • Remove members from a list when their membership expires or is cancelled
  • Route members to different lists based on which MemberPress product they purchased
  • Send membership plan name, expiry dates, and custom fields as Klaviyo profile properties (Pro)
  • Back-fill your existing member base into Klaviyo with a manual bulk run

Every workflow uses the same structure: a trigger fires on your site, optional conditions filter which members qualify, and an action pushes the contact to Klaviyo.

How Klaviyo handles contacts differently

If you’re coming from Brevo or Mailchimp, it’s worth knowing how Klaviyo organizes contacts before setting up workflows.

Klaviyo has two ways to group people: lists and segments. Lists are static. You add someone to a list, and they stay there until you or an automation removes them. Segments are dynamic. They update automatically based on profile properties and behavior.

FlowSync adds and removes contacts from Klaviyo lists. That’s the right approach for membership workflows because membership status changes are discrete events (someone activated, someone expired) rather than ongoing behavioral filters.

Once contacts are on a Klaviyo list with the right profile properties, you can build Klaviyo segments on top of that data. For example, you could create a Klaviyo segment for “all profiles where membership_plan equals Gold AND membership_status equals active.” FlowSync handles getting the data into Klaviyo. Klaviyo’s segment builder handles slicing it.

What you need before starting

  • WordPress 6.0 or higher
  • MemberPress installed and active with at least one membership product configured
  • A Klaviyo account (free accounts include API access for up to 250 contacts)
  • FlowSync installed and activated (free from WordPress.org)

For mapping custom profile properties beyond email, first name, and last name, you will need FlowSync Pro.

Step 1: Connect Klaviyo

Go to FlowSync > Integrations in your WordPress admin. Find Klaviyo and click Configure.

You need a Klaviyo private API key. To get it:

  1. Log into your Klaviyo account
  2. Click Settings in the bottom left
  3. Go to Account > Settings > API keys
  4. Click Create Private API Key
  5. Give it a name (e.g. “FlowSync”) and select Full Access for Lists and Profiles, or use a custom scope with read/write on both
  6. Copy the private key

Paste the key into the FlowSync Klaviyo settings and save.

FlowSync will verify the connection and pull your existing Klaviyo lists. If the test fails, make sure you’re using a private API key, not the public site ID. Klaviyo’s public key (the shorter one starting with your account prefix) doesn’t have write access.

For developers: The private API key is stored in flowsync_integration_settings_klaviyo and encrypted through FlowSync’s Credential Vault when sodium or OpenSSL is available on the server. The connection status is cached for 5 minutes. Click “Test connection” to bypass the cache. FlowSync uses Klaviyo’s v2 Lists and Profiles APIs for contact operations. Custom fields are sent as custom profile properties, not predefined Klaviyo fields.

Step 2: Create your first workflow

Go to FlowSync > Workflows and click Add New.

Name it clearly. “MemberPress Gold to Klaviyo” is better than “Klaviyo Sync” when you’ll have multiple workflows for different plans and events.

Choose the trigger

Under the trigger source, select MemberPress.

The available MemberPress events:

  • Membership Created fires when a subscription record is created (may still be pending payment)
  • Membership Activated fires when the membership becomes active (payment confirmed or trial started)
  • Membership Expired fires when the membership term ends without renewal
  • Membership Cancelled fires when the subscription is cancelled by the member or admin
  • Membership Status Changed fires on any status transition
  • Membership Plan Changed fires when a member moves between MemberPress products

For adding active members to Klaviyo, choose Membership Activated. This only fires after payment is confirmed, so you won’t sync members who abandoned checkout.

Add a condition

If you have multiple MemberPress products, add a condition to route members to the correct list.

Click + Add condition and set:

  • Field: Membership Plan
  • Operator: equals
  • Value: Select the product (e.g. “Gold Membership”)

Without a condition, every activated member across all plans triggers the workflow. That’s fine if you’re using a single list and plan to segment inside Klaviyo using profile properties. It’s not fine if you want separate lists per plan.

Add the Klaviyo action

Under Actions, choose Add to Klaviyo List.

Select the list where active members should land.

FlowSync maps email, first name, and last name on the free plan.

If you want to send membership-specific data to Klaviyo as custom profile properties (plan name, membership status, subscription start and expiry dates, billing amount, or MemberPress custom user fields), you need FlowSync Pro. Pro resolves these from MemberPress at sync time through virtual fp_memberpress_* fields and sends them as custom profile properties on the Klaviyo profile.

This matters because Klaviyo’s strength is segmentation based on profile data. The more membership context you push into Klaviyo profiles, the more targeted your flows and campaigns become.

Save the workflow and set it to Active.

Step 3: Handle expired and cancelled members

Klaviyo doesn’t know when a membership expires. If you add members to a list but never remove them, your list drifts. Expired members keep receiving active-member campaigns. Your open rates drop. Your segmentation becomes meaningless.

Create a removal workflow:

  • Trigger: MemberPress > Membership Expired
  • Condition: Membership Plan equals “Gold Membership” (same plan as the add workflow)
  • Action: Remove from Klaviyo List > select the same list

Create another for cancellations:

  • Trigger: MemberPress > Membership Cancelled
  • Condition: Membership Plan equals “Gold Membership”
  • Action: Remove from Klaviyo List > select the same list

The remove action takes the contact off the specified list. It does not delete the Klaviyo profile. The profile stays in your Klaviyo account with its full history, so you can still target those people in win-back campaigns through Klaviyo segments.

For developers: FlowSync calls Klaviyo’s list membership removal endpoint. The profile remains in the Klaviyo account and retains its custom properties and event history. Only the list association is removed. A future workflow run (e.g. if the member reactivates) can add them back to the same list.

Step 4: Segment by membership plan

If you sell multiple MemberPress products, you have two options for organizing contacts in Klaviyo.

Option A: Separate lists per plan.

Create an add and remove workflow for each plan:

  • Gold Activated > Add to “Gold Members” list
  • Gold Expired > Remove from “Gold Members” list
  • Silver Activated > Add to “Silver Members” list
  • Silver Expired > Remove from “Silver Members” list

This is simple and works well for small numbers of plans. The downside: each pair uses one of your workflow slots (free plan allows 3 active workflows).

Option B: One list, segment by profile property (Pro).

Add all members to a single “All Members” list. With FlowSync Pro, push the membership plan name as a custom profile property on each contact. Then create Klaviyo segments based on that property.

This approach uses fewer workflows (one add, one remove, no per-plan duplication) and takes advantage of Klaviyo’s dynamic segments. The trade-off is that it requires Pro for the custom property mapping.

Which option fits depends on how many MemberPress products you have and whether you’re on the free or Pro plan.

Step 5: Sync existing members

Workflows only catch events going forward. If you already have MemberPress members when you set up FlowSync, they won’t appear in Klaviyo until their next membership event.

Use FlowSync’s manual run to back-fill them. Open the workflow, click Run manually from the workflow menu, and FlowSync processes your existing members in batches of 50 through Action Scheduler.

Before committing, use the dry run option. It shows you how many members are eligible, how many would be skipped, and a sample of the first five, without actually syncing anything.

Manual runs respect your workflow conditions. If the workflow has a “Plan equals Gold” condition, only Gold members get synced during the manual run. Silver and Bronze members are skipped automatically.

For developers: Manual runs use event = manual_run with empty data. MemberPress condition resolvers fall back to the member’s most recent subscription via the MemberPress API instead of relying on event context. Delay actions are stripped from manual batch processing.

Pushing membership data as Klaviyo profile properties

This is where FlowSync Pro makes the biggest difference for Klaviyo specifically.

Klaviyo’s real value is behavioral segmentation. But it can only segment on data it has. If all you send is email, first name, and last name, your Klaviyo segments are limited to list membership alone.

With Pro, you can push MemberPress data as custom profile properties:

  • membership_plan (the MemberPress product name)
  • membership_status (active, expired, cancelled)
  • membership_start_date
  • membership_expiry_date
  • membership_billing_amount
  • Custom user fields configured in MemberPress Settings > Fields

Once these properties exist on Klaviyo profiles, you can build segments and flows in Klaviyo that reference them directly. A “trial ending in 7 days” segment. A “Gold members who joined in the last 30 days” flow. A win-back campaign targeting expired members with a specific billing amount threshold.

None of that works if Klaviyo only knows their email address.

One-way sync: what to expect

Klaviyo integration in FlowSync is push-only. Data flows from WordPress to Klaviyo, not back the other way.

If someone updates their email address in Klaviyo directly, that change won’t appear in WordPress. If you update a member’s email in WordPress (or they update it themselves through MemberPress), FlowSync will push the new data to Klaviyo on the next workflow trigger.

For most membership sites, this is the right direction. MemberPress is where the membership lives. Klaviyo is where the marketing happens. Member data originates in WordPress and gets pushed out.

Common mistakes

Using “Membership Created” instead of “Membership Activated.” Created fires before payment clears. If your MemberPress checkout has a payment step (which it usually does), syncing on Created means you’ll add people to Klaviyo who started checkout but never paid. Use Activated.

Syncing without removal workflows. Adding members to a list and never removing them is worse than not syncing at all. Your Klaviyo list slowly fills with expired members, your campaign metrics degrade, and you can’t trust your segment counts. Always pair an add workflow with a remove workflow.

Forgetting the free plan workflow limit. Three active workflows on the free plan. If you’re segmenting two MemberPress products (Gold add + Gold remove + Silver add), that’s already three. The Silver remove workflow would need Pro. Plan your workflow allocation before building.

Not verifying the API key type. Klaviyo has both public and private API keys. FlowSync needs the private key. The public key (used for client-side tracking) will fail silently or return authentication errors. If the connection test fails, check which key you pasted.

FAQ

Can I use Klaviyo’s built-in flows with FlowSync contacts?

Yes. Once a contact is on a Klaviyo list, they’re a regular Klaviyo profile. You can trigger any Klaviyo flow based on list membership, profile properties, or segment inclusion. FlowSync handles the WordPress-to-Klaviyo sync. Klaviyo handles everything after.

Does FlowSync create duplicate profiles in Klaviyo?

No. Klaviyo identifies profiles by email. If a profile with that email already exists, it gets updated rather than duplicated. If you push profile properties via Pro, existing property values get overwritten with the latest data.

Can I sync MemberPress members to multiple Klaviyo lists?

Yes. Add multiple “Add to Klaviyo List” actions in a single workflow, each targeting a different list. Or create separate workflows with different conditions.

What happens if Klaviyo is temporarily down?

FlowSync queues CRM actions through Action Scheduler. If Klaviyo’s API is unavailable, the action retries automatically after a short backoff. The sync doesn’t block the WordPress request that triggered it (like a MemberPress checkout), so your members won’t see errors on the frontend.

Does this work alongside Klaviyo’s WooCommerce integration?

If you also have WooCommerce and use Klaviyo’s official WooCommerce plugin for order tracking, FlowSync won’t conflict with it. FlowSync handles MemberPress membership events, which the Klaviyo WooCommerce plugin doesn’t cover. They operate on different triggers and different data.

Next steps

Once your MemberPress-to-Klaviyo sync is running:

  • Build a Klaviyo welcome flow triggered by list addition for new members
  • Create a win-back flow targeting profiles removed from your active members list
  • Add WooCommerce order triggers if your members also purchase products separately
  • Use FlowSync’s form source triggers to sync leads from Contact Form 7, WPForms, or Gravity Forms into a separate Klaviyo list for non-member prospects

Install FlowSync free to start with up to 3 workflows, or upgrade to Pro for unlimited workflows and custom profile property mapping.