Membership lets you make selected pages of your Super site private and control access based on member tiers.
Your members are managed in a Notion database, where each row represents a member and their tier(s). You then choose which pages are members-only and which tiers can access them.
Members sign in using a magic link sent to their email. There are no passwords or separate member accounts to manage in Super.
In short: Notion manages your members, while Super controls access to your content.
When to use it
You want toโฆ | Use |
Give different content to different groups of people | Membership |
Protect a page with one shared secret | Password protection |
Hide a page from navigation while keeping its URL accessible | Page visibility settings |
Note: Membership and password protection cannot be used on the same page. A page can be either members-only or password-protected.
What Membership is not
- Not a signup or checkout system. Members are added to your Notion database manually or through an automation such as Stripe + Make, Zapier, or n8n.
- Not a member management system inside Super. You manage members and their tiers in Notion.
- Not a payment system. Super only checks whether a visitor's email has access to the requested content.
Before you start
You need:
- A Personal plan or higher on the Super site.
- Membership enabled on your Super account. If you don't see the Membership option in your site settings, contact Super support.
- A Notion workspace where you can create an integration and member database.
Setup Video Walk-through
Step by Step
Step 1: Create Members Page using Table Database
Create (or reuse) a Notion database with one row per member. Super only needs two properties from it.
Property | Notion type | Purpose |
Email | Email (recommended), or Text, or Title | The address the member logs in with |
Tier | Multi-select โ required, no other type works | Which tier(s) that member holds |
Anything else in the table (name, notes, purchase date, Stripe id, โฆ) is ignored by Super and is yours to use freely.
Example/template:
Tiers
Tier names are simply the options of your Multi-select property. Create as many as you need โ basic, advanced, founding-member, 2026-cohort, and so on. Super reads that option list from Notion and offers those names when you protect a page.
Super tracks tiers by their Notion option id, not by their text:
- Tiers should never be empty
- Renaming a tier in Notion is safe. Press Reload tiers in Super and the new name shows up everywhere, with your page settings intact.
- Deleting a tier option in Notion orphans it. Pages still pointing at it show a warning and drop it the next time you save that page.
Advanced options
Allow an entire domain
To give everyone at a specific company access to a tier, add a row using this format:
@yourcompany.com
For example, *@example.com gives any email address from example.com the tiers assigned to that row.
If a member has both a regular email row and a matching wildcard row, their tiers are combined.
Duplicate email addresses
If the same email appears in multiple rows, Super combines all the tiers assigned to those rows. This means the member gets access to every tier listed across their rows.
โ ๏ธ Make sure every member has a tier
A member with an email address but no tier can still log in, but they won't have access to any members-only pages.
If a member sees "You don't have access to this page," check that their row has at least one tier assigned.
Next
Once the table exists, share it with a Notion integration โ see the Notion DB connection page โ and then connect it in Super.
Step 2: Create Notion DB Connection
Once you have your Membership Access List in Notion, you need to connect it to Super. This allows Super to check your member list when someone tries to access protected content.
VIDEO
The connection requires a Notion connection and its Access Token.
Steps
- Create a new Notion connection.
- Copy your Access Token.
- Grant the connection access to your Membership Access List database.
- Click Add to Page
Go to Notion Connections and create a new connection.
Tip: Give the connection a name that identifies the website or path it will be used for, such as example.com/memberspace.
Save the Access Token somewhere secure. You'll need it in the next step.

In Notion, open the Membership Access List database and grant access to the connection you just created.

Next is Connect your Membership to Super
Step 3: Connect your Membership to Super
Connect your database
- Enter your Notion integration token and click Load databases.
- Select your Membership Access List from the database dropdown.
- Map your properties:
- Email: Email, Text, or Title
- Tier: Multi-select



Click Connect when you're done.
If you change the integration token, you'll need to repeat the database and property selection because Super will reload the databases available to the new token.
After connecting
The Membership section in Settings will show:
- Your connected database
- The Email and Tier properties
- Available tier names
- Last synced time
- Reload tiers and Disconnect buttons
- Sign-in link sent by and Login webhook
- Login log with the View login log button
- Expose member data with the Configure button (Pro, see Step 8)

Your Notion token is stored securely and is never displayed again after you enter it.
Reload tiers
Click Reload tiers whenever you add, rename, or remove tier options in Notion. It also clears every cached member check, so each signed-in member is checked against Notion again on their next page view. Use it after you remove a member or change their tier and need the change to apply right away instead of within 24 hours.
This refreshes the available tier names. Member rows are not copied into Super โ member access is checked against Notion when they log in. With Expose member data on, the signed-in member's own row is kept for up to 24 hours, and Reload tiers refreshes it too.
Disconnect
Click Disconnect to stop using Membership on your site. Gated pages will no longer be accessible to members.
- Your page-to-tier assignments are preserved, so you can reconnect the same database later without setting up your protected pages again.
- Existing member sessions are invalidated when you disconnect or reconnect.
Tip: To force all members to be checked against Notion again immediately, use Reload tiers. There is no need to disconnect and reconnect.
Next
Protect pages by tier โ connecting your database alone doesn't make any pages private. You must mark individual pages as members-only and assign the appropriate tiers.
Step 4: Protect Pages by Tier
Go to your site โ Pages โ (the page) โ Protection. In the Protect Page card:

- Choose Membership in the protection dropdown.
- In Allowed tier(s), pick one or more tiers.
- Save.


Site changes take a few minutes to reach the published site, as with every other Super setting.
How tier access works
Access is OR-based. A member can access a page if they have at least one of the tiers selected for that page.
For example, selecting basic and advanced allows members with either tier to access the page.
No tier selected = public page. If you don't select a tier, the page remains accessible to everyone.
Sub-pages inherit protection
When you protect a page, its sub-pages are protected automatically.
For example, protecting /members also protects:
/members/library/members/library/2026
Inherited pages are marked with a shield icon and show which parent page they inherit protection from.
Also protect sub-pages: under the tiers in the Protect Page card there is a checkbox, checked by default. Uncheck it when the tiers should protect only that page: its sub-pages - also pages opened by their Notion ID - are public, and a sub-page with its own tiers stays members-only. The same checkbox works for a page password.
Show page title and description to visitors without access: unchecked by default. While it is off, visitors who are not signed in, search engines and link previews get neither the page title nor its description (not even an SEO description you typed in) - only the login screen. Check it to show both in front of the login screen. You set it on the page that has the tiers and it applies to every sub-page that inherits them; an inherited sub-page has no checkbox of its own. RSS feeds leave out members-only pages unless the option is on. The page address and its cover image are not hidden. Signed-in members still see the page title in the browser tab.
Override access on a sub-page
A sub-page under a password-protected parent inherits the parent's password by default if the setting below is enabled. If you want to use a different password or make the sub-page publicly accessible, you can change its settings directly on the sub-page.

- Inherit from parent โ Use the same password as the parent page.
- Password protect โ Set a different password for the sub-page.
- No password (overrides parent) โ Allow visitors to access the sub-page without entering a password, even if the parent page is password-protected.
These settings let you control password protection for individual sub-pages without changing the password settings of the parent page.
Switching or removing protection
A page can use either Membership or Password protection, but not both.
- Switching from Password protection to Membership (or the other way around) removes the previous protection after confirmation.
- Click Remove to remove Membership protection from a page.
- If a selected tier is deleted from Notion, Super will warn you that the tier no longer exists. Save the page to remove the outdated tier, then select the current tiers.
What you may see instead of the tier picker
Message on the card | What it means |
Membership protection is a premium feature | The site is below the Personal plan. Upgrade the site. |
Membership is not set up for this site | No Notion members database connected yet. The button takes you to site settings. |
Membership protection (shield) | Everything is ready โ pick your tiers. |
Inherited from parent | This page follows its parent's protection. Pick Membership to give it its own tiers, or Public (overrides parent) to open it. |
Step 5: What your Members See
When a visitor opens a members-only page, theyโll be asked to enter their email address:
Enter your email to receive a login link.
After submitting, everyone sees the same confirmation message, whether or not the email belongs to a member:
Check your email for a login link.
This prevents visitors from using the login form to find out whether an email address is registered as a member.
The login email
The login link is sent from no-reply@links.super.site. The sender name, subject, and email text are sent in the language of the page the member signs in on. This uses your site's language or an added language if the page is under that language's home page.
The default subject in English is "Your login link to {domain}".
You can customize the sender name, subject, and email text for each language under Settings โ Membership โ Login email (see Step 6). If you leave a field empty, Super uses the built-in default text for that field.
- Valid for: 1 hour
- Uses: One
- Body: A short message with a login button
If the email goes to spam, move it to your Inbox to help prevent future messages from being filtered.

Then, click Confirm Sign In!

After signing in
Clicking the login link signs the member in and returns them to the page they originally requested.
Their session:
- Lasts 30 days
- Uses a secure browser-only cookie
- Removes the login token from the URL immediately
Signed-in members can use the Log out button shown on gated pages.
Signed in but no access
A member can be signed in but still unable to access a page if their account doesn't have any of the required tiers or not added in your members database.
They'll see:
You don't have access to this pageYour membership doesn't include the tier required to view this content.
They can log out and try a different email address.
If this happens unexpectedly, check the member's Email and Tier values in your Notion database.
Expired or used links
If a login link has expired or was already used, the member will see:
This login link has expired or was already used.
They can simply enter their email again to request a new link.
A link may also be marked as used if a corporate email security scanner opened it before the member did.
When membership is re-checked
- New logins: Super checks the member's access against Notion.
- Existing sessions: Super re-checks membership at most once every 24 hours.
- Membership changes: Updates to a member's tiers can take about 5 minutes to take effect.
- Removing a member: An existing session may remain active for up to 24 hours.
Need to revoke access immediately? Click Reload tiers in Settings โ Membership. This invalidates existing member sessions and forces a fresh check against Notion.
Advanced Settings (Optional)
Step 6: Login email, Sign-in link sent by & Login webhook
You can find these options in Settings โ Membership under Login email, Sign-in link sent by and Login webhook.
Login email
The email with the login link uses built-in texts in the language of the page the member signs in on - every language you can set for your site has them. To use your own wording, click Edit email in the Login email row.
- Language: on a site with more languages, pick the language first. Each language has its own texts.
- Fields: Sender name, Subject, Heading, Text, Button and Note under the button. An empty field keeps the built-in text of that language, shown as its placeholder.
- {domain} in any field becomes your site's address, for example "Sign in to {domain}".
- The Heading follows the subject unless you write your own.
- The sender address stays no-reply@links.super.site; only the sender name changes.
- The next login email uses your texts right after you save. No publishing is needed.


The Login email row is hidden when Sign-in link sent by is set to Webhook, because Super then sends no email.
Login webhook
You can optionally send the login link to your own webhook instead of, or in addition to, Super's email. This works with services such as Make, Zapier, n8n, or your own endpoint.
The webhook receives:
{
"email": "member@example.com",
"magicLinkUrl": "https://yoursite.com/members?membership_token=โฆ",
"expiresAt": "2026-08-15T12:00:00.000Z"
}Before saving:
- Click Test first. Super won't save an untested URL.
- Test requests include
"test": trueand a dummy link. - Changing the URL requires you to test it again.
- Leave the field empty to disable the webhook.
- Webhook requests have a 60-second timeout.
Webhook failures aren't shown to visitors. They will still see the normal neutral confirmation screen. If login links aren't being delivered, check the Login log.
โ ๏ธ Security: magicLinkUrl is a live login credential valid for one hour. Only send it to a trusted HTTPS endpoint.
You can check our guide Stripe โ Memberships (Make, n8n, Zapier). It covers Make, n8n and Zapier and the optional login webhook.
Sign-in link sent by
Set Sign-in link sent by to Webhook (instead of Super) if your webhook handles the entire delivery process.
When set to Webhook:
- Super won't send an email.
- The member sees "Your login link is on its way."
- The setting takes effect immediately.
After changing it, publish the site (or make another site change) for the updated message to appear on the public login screen.
Automate adding members
Super doesn't include a built-in checkout. For paid memberships, you can connect your payment system to Notion using an automation service:
Stripe (payment) โ Make / Zapier / n8n โ new row in your Notion members table โ Super lets them inWhen a payment is completed, the automation adds the member to your Notion database.
Important:
- Trigger your automation from one payment event to avoid creating duplicate member rows.
- Each new row must include an email and at least one tier.
- Secure your automation webhook, for example by verifying the Stripe signature or using a shared secret.
- For cancellations, remove the member's row or clear their tier.
- Existing sessions may remain active for up to 24 hours after access is removed. Click Reload tiers to end them right away.
See Stripe โ Memberships (Make, n8n, Zapier) for an example setup.
Step 7: Member login log & handing out a login link
The View login log button in Settings โ Membership โ Login log shows the site's last 100 login events, newest first. You can search by email, and times are shown in your local timezone.
Event types
Event | Meaning |
Login requested | Someone submitted an email on the login form. The detail shows the page they requested. |
Link sent | A login link was sent by Email, Webhook, or both. |
Link generated | A login link was manually generated from the login log. |
Login failed | The login failed because the address isn't a member or the link was already used. |
Login succeeded | The member successfully signed in. |
The log is useful for troubleshooting login issues:
- Login requested but no Login succeeded โ the link may not have been delivered or opened.
- Not a member โ the email isn't in your Notion database. Check for typos or whether the member used a different email address.
The dashboard shows the latest 100 events. Super keeps a longer internal record, so contact support if you need older history.
Manually generate a login link
If a member doesn't receive their email, you can generate a new login link from a Login requested event.
Click the copy icon to:
- Go to Settings โ Membership โ Login log โ View login log
- Generate a new login link for the requested page.
- Copy it to your clipboard.
- Send no email.
- Record a Link generated event in the log.


You can then send the link through another channel, such as Slack, WhatsApp, or Intercom.
Important
- Each generated link is valid for 1 hour and one use.
- A fresh link is generated every time you click the copy icon.
- Links aren't stored in your site data or Super's login logs.
- A link won't be generated if the email is no longer a member.
- Chat-app link previews don't consume the login link, but some corporate email security scanners may.
โ ๏ธ Treat login links like passwords. Anyone who receives and opens a link can sign in as that member. Only share it directly with the intended member.
Step 8: Expose member data to your custom code (Pro)
Settings โ Membership โ Expose member data โ Configure lets your custom code read the signed-in member's own row of the members table as window.superMember - on members-only pages, or on the whole site. You tick the columns it may read; your tier column is always there as tiers.
Columns you mark Encrypt go into a short-lived token (signed JWT or encrypted AES, 15 minutes to 24 hours) that your Make, n8n or Zapier automation checks with your site key. Your automation then knows which member is calling it, and you never put a secret into custom code.
window.superMemberReady.then(function (member) {
if (member) console.log(member.name, member.tiers, member.token);
});Full guide, with the checks for n8n, Make and Zapier: ๐Member data in your custom code (and a token Make, n8n or Zapier can trust).
Troubleshooting Membership Feature
Symptom | Likely cause and fix |
No Membership section in Settings | The feature is not enabled on your account. Ask Super support. |
Membership protection is a premium feature | The site is below the Personal plan. Upgrade the site. |
Membership is not set up for this site on a page | No Notion database connected yet โ do the connect flow first. |
Load databases returns nothing | The integration has not been shared with the database in Notion (โฏ โ Connections), or the token belongs to another workspace. |
Tier dropdown is empty | The tier property must be a Multi-select with at least one option. |
Member says the mail never arrived | Check the login log. Not a member โ the address is not in Notion. Link sent โ it is a delivery problem: ask them to check spam, then hand them a link with the copy icon. |
Repeated login mails to the same address stop arriving | Some providers temporarily rate-limit a mailbox after many near-identical messages. A mail delayed by more than an hour arrives already expired โ use the copy icon instead. |
This login link has expired or was already used although they just clicked it | The link is older than an hour, was already opened, or a mail-security scanner opened it first. Request a new one, or hand one over with the copy icon. |
Member gets You don't have access to this page | Their Notion row has no tier, or not one of the tiers this page requires. Fix the row in Notion โ it takes effect within about 5 minutes. |
A removed member still gets in | Sessions are re-checked at most every 24 hours. Click Reload tiers to invalidate all cached checks immediately. |
A sub-page is unexpectedly members-only | It inherits from a gated ancestor. Open its Protect Page card and choose Public (overrides parent) or its own tiers โ or press Parent settings to change the parent. |
Renamed a tier in Notion, Super still shows the old name | Press Reload tiers. |
Warning: N no longer exist in Notion | Those tier options were deleted in Notion. Save the page to drop them, then pick current tiers. |
Changed a login setting and the live site still shows the old behaviour | Publish the site, or make any other site change, so the published settings refresh. |
Expose member data ยท available on the Pro plan | The site is below Pro. Upgrade the site. |
window.superMember is null on a page | Nobody is signed in, or the page is public while Available on is Members-only pages. Switch to Whole site. |
window.superMember is undefined | Expose member data is off, or your code runs before the data arrives. Use window.superMemberReady. |
A changed column value still shows the old one | The member's row is kept for up to 24 hours. Click Reload tiers. |
Your automation rejects every token | The key in the automation is old (after Generate new key) or the method differs (JWT vs AES). Copy the key again. |
Limits worth knowing up front
Limit | Why |
No self-serve signup โ members are added in Notion, or by your automation | By design: Super is the doorman, not the box office |
No member-management UI inside Super | By design: Notion is the single source of truth |
A page cannot be both password-protected and members-only | By design: one gate per page |
Under a password-protected parent, a sub-page can't be made public or members-only | The password is checked first; give the sub-page its own password instead |
Removing a member can take up to 24 hours to end an existing session | By design: a live Notion lookup on every request would be too slow and would exhaust your Notion rate limit. Corrections still apply within ~5 minutes, and Reload tiers forces an immediate re-check. |
Login links last 1 hour and work once | By design: they are bearer credentials |
Quick reference
Thing | Value |
Minimum site plan | Personal |
Notion access | Internal integration, read access, shared with the members table |
Email property types accepted | Email, Text, Title |
Tier property type | Multi-select only |
Wildcard member row | *@domain.com |
Tier matching | OR โ any one matching tier grants access |
Sub-page behaviour | Inherits the nearest gated ancestor, unless it has its own tiers or Public (overrides parent) |
Title and description for visitors without access | Hidden by default; Show page title and description to visitors without access on the gated page shows them, sub-pages inherit it |
Login link validity | 1 hour, single use (60 s tolerance for double-clicks) |
Member session | 30 days, per site |
Notion re-check for an active session | Up to 24 hours; about 5 minutes after a correction; immediately after Reload tiers |
Sender | Login Link <no-reply@links.super.site> by default; the sender name is editable |
Subject | Your login link to your domain by default; editable per language |
Webhook payload | email, magicLinkUrl, expiresAt (plus test: true on test fires) |
Webhook timeout | 60 seconds, fire-and-forget |
Login log size | Last 100 events per site |
Expose member data | Pro; members-only pages or the whole site |
Member data in the browser | window.superMember, window.superMemberReady, event super:member |
Member token | JWT HS256 or AES-256-GCM, 15 min / 1 h / 24 h, one key per site |
Where to click
Task | Path in the dashboard |
Connect / disconnect the members database | Site โ Settings โ Membership |
Reload tier names from Notion, or end a removed member's access now | Site โ Settings โ Membership โ Reload tiers |
Login link sender, login webhook | Site โ Settings โ Membership โ Sign-in link sent by / Login webhook |
See who logged in | Site โ Settings โ Membership โ Login log โ View login log |
Hand a member a login link | Login log โ copy icon on a Login requested row |
Gate a page by tier | Site โ Pages โ page โ Protection โ Protect Page |
Find the parent that gates an inherited page | Protect Page โ Parent settings |
Give a sub-page its own access | Pages โ sub-page โ Protection โ Membership (own tiers) or Public (overrides parent) |
Choose member data for custom code, copy the key | Site โ Settings โ Membership โ Expose member data โ Configure |