MemberFlow
Data attributes
Every attribute the MemberFlow script reads on your published Webflow site. Tag elements in the Designer, publish, and the script wires them up at page load—you write no JavaScript.
ℹ️ The prefix is
data-flowappz-membership-. It is kept as-is for backwards compatibility with sites already built against it.
Forms
Put this on the <form> element. The script intercepts the submit and calls the right endpoint.
| Attribute | Value | What it does |
|---|---|---|
data-flowappz-membership-form |
login |
Email and password sign-in. |
data-flowappz-membership-form |
signup |
Create an account. Add a tierId input, or arrive with ?tier=<id>, to pre-select a tier. |
data-flowappz-membership-form |
reset-password |
Request a reset email. |
data-flowappz-membership-form |
reset-password-confirm |
Set a new password using the token from the email link. |
data-flowappz-membership-form |
profile |
Update name, email, password, or custom fields for the signed-in member. |
data-flowappz-membership-form |
delete-account |
Password-confirmed account deletion. |
Form inputs
Put these on the inputs inside a form above.
| Attribute | Value | Used on |
|---|---|---|
data-flowappz-membership-input |
email |
login, signup, reset-password, profile |
data-flowappz-membership-input |
password |
login, signup, reset-password-confirm |
data-flowappz-membership-input |
firstName |
signup, profile (optional) |
data-flowappz-membership-input |
lastName |
signup, profile (optional) |
data-flowappz-membership-input |
currentPassword |
profile (when changing password), delete-account |
data-flowappz-membership-input |
newPassword |
profile, reset-password-confirm |
data-flowappz-membership-input |
tierId |
signup — hidden input locking the member to a tier. Honoured only if the tier belongs to this site. |
data-flowappz-membership-input |
<custom-field-key> |
Any key from Custom fields, e.g. company. |
Form feedback
| Attribute | Value | What it does |
|---|---|---|
data-flowappz-membership-error |
— | On an element inside a form. Filled with the server's error message; cleared on the next submit. |
data-flowappz-membership-success |
— | On an element inside a form. Shown when the action succeeds. |
data-flowappz-membership-redirect |
/some/path |
On the <form>. Overrides the site-wide post-action redirect. |
data-flowappz-membership-confirm |
Are you sure? |
On a delete-account form. Runs a browser confirmation with this text before submitting. |
Action buttons
Stand-alone buttons and links, no form required.
| Attribute | Value | What it does |
|---|---|---|
data-flowappz-membership-action |
logout |
Clears the session and reloads. |
data-flowappz-membership-action |
checkout |
Starts Stripe Checkout for the paired tier on your connected Stripe account. Access is granted once Stripe confirms payment. |
data-flowappz-membership-action |
switch |
Moves an existing subscriber to a different paid tier on their current subscription. Stripe handles proration. |
data-flowappz-membership-action |
upgrade |
Sends the member into the upgrade flow for the paired tier. |
data-flowappz-membership-action |
cancel |
Cancels at the end of the current period; the member keeps access until then. |
data-flowappz-membership-action |
resume |
Undoes a pending cancellation. |
data-flowappz-membership-action |
billing-portal |
Opens the Stripe Customer Portal to update a card, view invoices, or cancel. |
data-flowappz-membership-tier |
<tierId> |
Required alongside checkout, switch, and upgrade. The numeric id from Tiers. |
Content gating
Applied at page load, before paint.
| Attribute | Value | Visible when |
|---|---|---|
data-flowappz-membership-content |
private |
A member is signed in. |
data-flowappz-membership-content |
public |
No member is signed in. |
data-flowappz-membership-content |
tier:<name> |
The member's tier name matches, case-insensitively. |
Member fields
| Attribute | Value | What it does |
|---|---|---|
data-flowappz-membership-field |
email, firstName, lastName, fullName, tier, currentPeriodEnd, cancelAtPeriodEnd, or a custom field key |
Renders that field as the element's text. |
data-flowappz-membership-prefill |
— | On an input that already has data-flowappz-membership-input. Fills it with the member's current value on load. |
Pricing display
| Attribute | Value | What it does |
|---|---|---|
data-flowappz-membership-price |
<tierId> |
Renders the tier's price as currency, or Free. |
data-flowappz-membership-interval |
<tierId> |
Renders the tier's billing interval. |
Example: a login page
<form data-flowappz-membership-form="login" data-flowappz-membership-redirect="/account">
<input type="email" data-flowappz-membership-input="email" required />
<input type="password" data-flowappz-membership-input="password" required />
<div data-flowappz-membership-error></div>
<button type="submit">Sign in</button>
</form>
Example: a member-aware navbar
<a href="/login" data-flowappz-membership-content="public">Sign in</a>
<span data-flowappz-membership-content="private"
data-flowappz-membership-field="firstName"></span>
<a href="#" data-flowappz-membership-content="private"
data-flowappz-membership-action="logout">Log out</a>
💡 The Designer app ships pre-wired clipboard payloads for every form here. Paste one onto the canvas, then restyle it—only the attributes need to survive.