FlowRunner
PricingContact
Theme
Start Free

FAPI Member

Education & LMS

FAPI Member is the WordPress plugin that turns FAPI orders into member sections, drip-fed courses, and paid membership areas. Agents grant and update memberships, manage sections and unlock rules, create users, and read churn and activity statistics.

Verified 48 actions API key available
FAPI Member website Platform Documentation Capability data verified 2026-08-25
A FAPI invoice is paid and the order reaches the workflow
Get User By Email looks for an existing WordPress user, because the plugin has no upsert
Grant Membership gives access to the purchased levels, identified by the paid invoice
Get User Memberships reads back what the member now holds rather than assuming it
Get Level Unlock Date resolves when each drip-fed module actually opens for them
The welcome message goes out carrying the real unlock dates instead of generic wording
Any grant where the identity is ambiguous waits for the membership owner to confirm the person

What This Integration Enables

FAPI Member is the WordPress plugin that turns FAPI orders into access: member sections, drip-fed courses and paid membership areas, all running on the course creator's own site rather than on a vendor's platform. That is the whole point of it, and it shapes what automation against it looks like. There is no hosted control plane. Every call goes to the site itself, so the plugin's reachability is part of the workflow, which is why Check Connection exists and why an agent runs it before anything else.

FlowRunner agents grant and replace memberships, create WordPress users, manage the section and level tree along with its drip-feed unlock rules, set which pages a level protects, configure the login and no-access pages a member without entitlement is sent to, and read the plugin's own statistics: member counts, joins and leaves, active counts, churn and acquisition rates, and per-member activity. The interesting half is not the granting. It is that the plugin exposes the retention picture and the entitlement picture through the same API, so an agent can notice a paying member who has stopped showing up and act before the renewal decides it for them.

Without FlowRunner

Access granted by hand Somebody opens WordPress after each sale and ticks the right level
Churn seen in arrears The first sign a member stopped showing up is the failed renewal
Protection edited blind Nobody is certain which pages a level actually protects until a member complains

With FlowRunner

Access granted on payment A paid invoice becomes a membership without anyone opening the admin screen
Churn seen while it forms Last activity and active counts are read on a schedule, ahead of the renewal date
Protection read before it is written The current protected page set is retrieved and diffed before any change is applied

Use Case Scenarios

  • Purchase to access, without an admin sitting in the middle

    A FAPI invoice is paid. The agent calls Get User By Email first, because this plugin has no upsert and creating a duplicate WordPress account is worse than the extra call. If there is no user, Create User seeds the account; if there is, the existing one is reused. Grant Membership then adds the purchased levels, identified by the paid invoice rather than by an email typed into a form. Get Level Unlock Date resolves when each drip-fed module opens for that registration date, and the welcome email carries the real dates. A record of the sale posts to Slack and the order line lands in Google Sheets for the finance reconciliation.

  • A retention signal that arrives before the renewal

    On a schedule the agent calls Get Active Counts and Get Member Counts and compares them, because the gap between how many members hold access and how many are actually using it is the churn that has not happened yet. It then drills in: Get Users By Level gives the cohort, Get User Last Activity says who has gone quiet, and Get User Membership Changes explains anyone whose access has already lapsed. Quiet members go into a re-engagement sequence in ActiveCampaign or Brevo. Nothing about their access changes; the agent's job here is to notice, not to act.

  • Launching a new cohort level without touching the live one

    A new course module needs its own level. The agent calls Create Section with a parent id, since a level in this plugin is simply a section with a parent, then Update Section Unlocking to set the drip rules so module three releases two weeks after enrollment without anybody scheduling it. Add Pages To Level attaches the new lesson pages, using List Pages With Custom Post Types rather than the plain page list, because a site whose lessons are a custom post type will otherwise look as though those lessons cannot be protected at all. Set Service Pages For Level points members without access at a sales page rather than a bare error.

Human-in-Loop Highlight

Two operations in this connector replace rather than merge, and they fail in opposite directions. Update User Memberships replaces a member's whole membership set, so a level left out of the array is revoked, and a paying customer loses a course. Set Pages For Level replaces the set of pages a level protects, so a page left out of the array stops being protected, and paid content becomes publicly readable. The second one is the quieter failure and the one this page's gate is built on, because nothing reports it. WordPress does not raise an error when a page stops being gated. The lesson simply loads for anybody with the URL, and the first person to notice is usually a member asking why they paid.

So the agent never calls Set Pages For Level unattended. It uses Add Pages To Level for the ordinary case, which is additive and cannot unprotect anything. When a page genuinely has to come out of a level's protected set, the agent reads Get Page IDs By Level, computes the difference, and posts it: "This change protects nine pages and removes protection from two, including the module four lesson. Those two become publicly readable when applied. Confirm?" The membership owner answers. That single confirmation is the difference between an entitlement system and a paywall with a hole in it.

Agent processes routinely
Detects exception requiring judgment
Clear match Continues automatically
Ambiguous Routes to human via preferred channel
Human decides
Agent resumes with decision

Agent Capabilities

48 actions

Sections and Levels

7
  • List Sections Lists the member sections with their levels nested inside. A level is a section with a parent, which is why one call returns the whole tree.
  • List Sections As Levels Returns the sections flattened into a single level list, one row per grantable thing, without walking the tree.
  • Get Section Retrieves one section or level.
  • Create Section Creates a section, or a level inside one by supplying a parent id. A name that already exists is refused rather than duplicated.
  • Update Section Renames or otherwise edits a section.
  • Delete Section Permanently deletes a section or level. Deleting a section takes its levels with it, and every membership on them.
  • Reorder Section Moves a section or level one place in the menu. The direction is a step added to the current index rather than a position.

Drip Feed

3
  • Get Section Unlocking Reads a level's drip-feed rules, meaning when its content becomes available to a member after they join.
  • Update Section Unlocking Sets a level's drip-feed rules, which is how a course releases a later module a set period after enrollment without anything being scheduled.
  • Get Level Unlock Date Returns when a level's drip-fed content unlocks for a member, given a registration date.

Memberships

5
  • List Memberships Lists every membership on the site: who has access to what, from when, and until when.
  • Get User Memberships Lists one user's memberships. The entitlement read, answering what this person may see without working it out from orders.
  • Update User Memberships Replaces a user's whole membership set with the list supplied. It is not a merge, so a level left out is revoked, and the current set is read first.
  • Grant Membership Grants access to one or more levels, identifying the member by a paid FAPI invoice, an applied voucher, or a token plus an email address.
  • Grant Memberships (Batch) Grants many memberships in one call, each row shaped like a single grant. The right operation for importing an existing member list.

Users and Members

5
  • List Users Lists the WordPress users on the site.
  • Get User By Email Finds a user by email address, returning nothing when there is none. Called before Create User, because the plugin has no upsert.
  • Create User Creates a WordPress user for a member. Granting a membership creates one on its own when the email is new, so this is for seeding an account ahead of any purchase.
  • List Members Lists the users who hold at least one membership, with their levels. Narrower than the full user list, which includes every WordPress account.
  • Get Users By Level Lists the users holding a membership on one level, which is the mailing list for a course cohort.

Protected Pages

10
  • List Pages Lists the site's WordPress pages, which are what a level protects.
  • List Pages With Custom Post Types Lists pages and custom post types together. Required on a site whose lessons are a custom post type, because the plain page list will not see them.
  • Get Page IDs By All Levels Returns the protected page ids grouped by level for the whole site in one call.
  • Get Page IDs By Level Returns the page ids one level protects. The read that precedes any change to a level's protected set.
  • Set Pages For Level Replaces the set of pages a level protects. A page left out stops being protected, which is the operation this page's human gate is built on.
  • Add Pages To Level Adds pages to what a level protects, keeping the ones already there. The additive counterpart to the replace, and the default an agent uses unattended.
  • Get Service Pages For Level Returns a level's service pages: the login, no-access and after-login pages a member is sent to.
  • Set Service Pages For Level Sets a level's login, no-access and after-login pages, which decide what a member without access actually sees.
  • Get Common Pages For Level Returns the pages a level shares with its siblings.
  • Set Common Pages For Level Sets the pages a level shares with its siblings.

Level Emails

2
  • Get Level Emails Returns the emails a level sends, including the welcome letter a new member receives.
  • Set Level Emails Sets the emails a level sends.

API Connections

5
  • List API Connections Lists the FAPI accounts this site is connected to.
  • Get Plugin API Token Returns the site's own FAPI Member token. Treat the result as a credential, because anyone holding it can grant memberships on this site.
  • Get API Connection Status Reports whether each connected FAPI account is still reachable. A membership site whose grants have quietly stopped usually fails here first.
  • Create API Connection Connects the site to a FAPI account using that account's username and API key.
  • Delete API Connection Disconnects a FAPI account. It is keyed on the API key rather than a username or an id.

Statistics

8
  • Get Member Counts Returns how many members existed over a period, either as one series for the whole site or one per level.
  • Get Member Count Changes Returns the joins and leaves over a period rather than the running total.
  • Get Active Counts Returns how many members were active over a period, which is not the same as how many held a membership. The gap between the two is the churn that has not arrived yet.
  • Get Churn Rate Returns the proportion of members lost over a period.
  • Get Acquisition Rate Returns the proportion of members gained over a period, the counterpart to churn.
  • Get Average Churn Rate Periods Returns the average churn rate across the plugin's standard comparison periods.
  • Get User Membership Changes Returns one member's access history: every grant, extension and expiry. The answer to why a person can no longer see a course.
  • Get User Last Activity Returns when a member was last active on the site, or nothing if they never were. Paired with the entitlement read, it finds a paying member who has stopped showing up.

Connection and Legacy Routes

3
  • Check Connection Checks the plugin is installed, reachable and answering. The cheapest way to confirm a site URL before anything else runs, over an older route that needs no token.
  • List Sections (Legacy) Lists sections through the older route, which needs no token. Useful when a workflow has a site URL but no token yet.
  • List Sections Simple (Legacy) Returns sections and levels flattened to id and name only, through the older route. Its limit counts sections rather than rows, and each section still brings all of its levels.

Frequently Asked Questions

What can FlowRunner do with FAPI Member?

FlowRunner agents can run List Sections, List Sections As Levels, and Get Section in FAPI Member, plus 45 more actions.

Does connecting FAPI Member to FlowRunner require OAuth?

No. FAPI Member connects to FlowRunner with an API key, no OAuth flow required.

Can FAPI Member trigger a FlowRunner workflow automatically?

FAPI Member doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.

Start building with FAPI Member

Free plan, no card required. Connect in minutes.