Membership & Gating Content: Overview
This guide is designed to help you understand and implement the three types of content locking available on our platform:
- Password Protection
- Email Verification Access
- Segment-Specific Content Restriction
Each method offers unique advantages tailored to different needs, ensuring your content is accessible to the right audience.
Password Protection
Password Protection is the simplest form of content locking, where content is secured with a password. This method doesn't require user sign-up or segmentation, making it ideal for quickly sharing protected content with a select audience who have the password.
Use Cases:
- Internal Documentation: Secure company wikis, policies, or internal reports that are meant for employee access only.
- Draft pages: While you are building your site, you can lock specific pages from audience but still visible to your internal team who knows the password.
- Private Communities: Lock access to community resources or forums that are meant for members' eyes only, enhancing privacy and exclusivity.
Email Verification Access
Email Verification Access is a secure method to gate content behind an email sign-in process. Users are required to enter their email address, receive a magic link, and upon clicking, gain access to the protected content. This method is straightforward and enhances user engagement by making exclusive content accessible after a simple verification process.
Use Cases:
- Lead Generation: Ideal for collecting emails before seeing premium content.
- Newsletter Signups: Sign them up for a newsletter automatically when they sign in to see your premium content.
- Upsell paid products: Nurture the website visitors and later enroll them in a community, offer paid content, etc.
Segment-Specific Content Restriction
This method allows creators to restrict access to content based on specific user segments. It requires the manual addition of users to different segments through the dashboard, enabling the delivery of tailored content to various groups based on their interests, behavior, or subscription level.
Use Cases:
- Membership Tiers: Differentiate content access by membership levels (e.g., free, premium, VIP) to provide exclusive benefits.
- Personalized Learning Paths: For educational platforms, offer specialized content to students based on their learning progress or interests.
- Client Portals: Offer a personalized space for each client to access project updates, resources, and communications tailored to their specific needs and engagement with your services.
Password Protection for Notion pages
With Bullet, you have the ability to employ the password protection feature, preventing users from accessing designated pages on your website. This feature is ideal for securing internal documentation or safeguarding exclusive content reserved for members on your company or community.
How to secure your website content using a password?
- Enable "Content gating & Membership" in Settings under "Membership" in the sidebar from the Bullet dashboard. Here, you need to provide your Password and click on "Save."
- Select "Protected pages" to select specific page that needs to be locked and select "Password Protected."
- Customize the content displayed on the lock screen, then click "Save."
- Hit the "Publish" button to render on your website
Team Members or Visitors’ Experience
- When a team member or new visitor enters your web page, they will be presented with a dialog box to enter the "Password."
- The user needs to enter the respective password to access the website content.
- The user will have to enter the password again if they visit via a different browser or incognito window.
Email Confirmation Access
Email confirmation access enables you to gate content behind an email sign-in process. Users enter their email, receive a magic link, and gain access to your exclusive content. This method is ideal for broadening your audience while keeping content exclusive.
How to require an email address to access content?
- Select the specific parent or child page that needs to be locked, click on the drop-down menu, and choose "Email Confirmation Access."
- Customize the content displayed on the lock screen according to your requirements, then click "Save."
- Hit the “Publish” button to render on your website
Visitor’s Experience
- When a new user’s land on your site, they will be presented with a dialog box to enter “ Email address”. If your user is new to your site,their name will be collected additionally.
- The user needs to enter their email address and name (for new users) in the provided field.
- After entering the Email address, the user will receive a magic link via email.
- The magic link allows the user to log into the site and grants permission to access your content.
- The user will have to log in again if they visit via a different browser or incognito window.
Manage your Member
You can easily manage your members using the Bullet dashboard:
- Navigate to “Members” from the Bullet’s sidebar to view the list of all members who have signed up for your site
- You can see the list of members who signed up for your site with the date.
- You can also add bulk users from CSV files and can also change their segment into a premium or password-protected user.
Segment-Specific Content Restriction
This feature allows you to restrict content to specific user segments. Create segments in the dashboard, add users, and assign content to those segments. It's perfect for tailoring content to different audience groups, such as VIPs, specific interest groups, or internal teams.
How to establish a paid membership site?
- Enable "Content gating & Membership" in settings under "Membership" in the sidebar from the Bullet dashboard.
- Navigate to Protected Pages and click Lock a Page or Folder. You'll see a list of your site's pages.
- Select the folder or page that needs to be locked, click on the drop-down menu, and choose "Segments-specific Restrictions."
- Now, choose the segments you want to grant access to your users. Only users of this segment will be able to access it.
- Now you can customize the content to be displayed on the lock screen according to your requirements, then click "Save."
- Hit the "Publish" button to render on your website.
Manage your Members
You can easily manage your members using the Bullet dashboard:
- Navigate to "Members" from the Bullet's sidebar to view the list of all paid members who have signed up for your site with their dates and segments.
- You can see the list of members who signed up for your site, their dates, and their segments.
- You can also add members to your segments by clicking on "Add Users" in the "Members" section.
- You can also add bulk users from csv files and can also change their segment from default to paid users.
- If you wish to convert your default user to a paid user, select the specific user, click on "Edit," switch the segment from default to paid, and then click "Update Member."
Visitor's Experience
- When a new user's land on your page which is restricted, they will be presented with a dialog box to enter "Email address" to sign in. User will get a magic link via email.
- If the user's segment has access to that page, clicking on the magic link will get them access to the restricted page.
- If your user is not in the selected segment for that page, they will not gain access to your site content even upon clicking the magic link.
- The user will have to log in again if they visit via a different browser or an incognito window.
How to Restrict Pages by Stripe Plan Using Zapier
This guide shows you how to restrict access to your Bullet.so pages based on a customer’s Stripe subscription plan. By integrating Stripe with Bullet.so via Zapier, you can automatically update user access when they subscribe, upgrade, downgrade, or cancel a plan.
For example, you might have three Stripe plans—Personal, Pro, and Premium—each unlocking different content sections on your Bullet site.
End Result
When a user buys, upgrades, downgrades, or cancels a Stripe subscription, their access to content on your Bullet site updates automatically and instantly.
What You'll Build
Here's the flow you'll set up:
- User pays via Stripe
- Stripe fires a subscription event
- Zapier listens to the event
- Zapier updates the user’s segment in Bullet.so
- Pages unlock or lock instantly based on the segment
Prerequisites
To follow this guide, you will need:
- A Bullet.so site with Premium Content enabled.
- A Stripe account with active products/plans.
- A Zapier account.
Step 1: Create Pricing in Stripe and Add It to Your Bullet Site
First, set up how your users will pay and define your subscription plans in Stripe.
In Stripe, you can use either:
- A Pricing Table
- Payment Links
Create plans that correspond to your desired access levels, such as:
- Personal
- Pro
- Premium
Important: Ensure each plan collects the customer’s email address. This email must be pushed to your Bullet dashboard for user identification (more on this in Step 4).
Step 2: Create Segments in Bullet.so
In Bullet.so, Segments control access to your content.
- Navigate to Site > Settings > Memberships in your Bullet.so dashboard.
2. Create one segment for each Stripe plan you defined:
personal
pro
premium
- Assign these segments to the relevant pages or folders. It's advisable to structure your pages logically, for example:
/personal/content-1
/personal/content-2
/pro/pro-content-1
- And so on.
- Under Protected pages, restrict access. For instance, you might restrict
/premium/content to thePremiumsegment. IfProusers should access bothPersonalandProcontent, select bothPersonalandProsegments for the/prodirectory.
- Customize the lock screen under protected pages. This is what users see when they try to access restricted content. Update the copy and add your Stripe payment link or pricing table if needed.
Step 3: Get Your Bullet API Key
Zapier will use your Bullet API Key to manage user access.
- Go to Dashboard → My Profile in your Bullet.so dashboard.
- Copy your API key. You will paste this into Zapier later.
Step 4: Create a Zap (Stripe → Bullet)
Zapier has Bullet integration published. Also checkout some pre-built templates here https://zapier.com/apps/bulletso/integrations
You will create a new Zap in Zapier to link Stripe subscription events to Bullet.so segments.
Trigger (Stripe):
Customer Subscription CreatedThis Zap runs when a user successfully subscribes to a plan in Stripe.
In Zapier:
- Configure the Stripe trigger to listen for
Customer Subscription Createdevents.
- Read the Stripe Price ID or Plan Name from the trigger event.
- Use an action step to assign the user (identified by their email collected in Stripe) to the corresponding segment in Bullet.so.
- Example mapping:
Personal(Stripe plan) →personal(Bullet segment)Pro(Stripe plan) →pro(Bullet segment)Premium(Stripe plan) →premium(Bullet segment)
If your Stripe plan names differ from your Bullet segments, ensure you map them correctly within Zapier.
Step 5: Handle Upgrades and Cancellations
To ensure continuous and correct access control, create two additional Zaps for subscription updates and cancellations. Do not skip these steps, as canceled users should lose access.
Zap 2: Subscription Updated → Switch Segment
- Trigger (Stripe):
Customer Subscription Updated
- Action (Bullet):
- Remove the user from their old segment.
- Add the user to their new segment based on the updated subscription plan.
Zap 3: Subscription Deleted → Remove Segment
- *Trigger (Stripe): **
Customer Subscription Deleted
- Action (Bullet):
- Remove the user from all premium segments they were previously assigned to.
Minimal Zap Setup Summary
For a robust and easily debuggable setup, you will have three Zaps:
- Zap 1:
Subscription Created→ Add Segment
- Zap 2:
Subscription Updated→ Switch Segment
- Zap 3:
Subscription Deleted→ Remove Segment
Quick Test
Before deploying your setup to live users, perform a quick test:
- Buy a plan: Verify that content associated with that plan unlocks. (Tip: You can create a 100% discount coupon to test purchases.)
- Upgrade a plan: Confirm that more content (for the upgraded plan) unlocks, and old content remains accessible if applicable.
- Cancel a plan: Ensure that the previously accessible content locks.
If any of these tests fail, troubleshoot and fix the Zap configuration before making it live.
Webhook Setup
Membership webhooks notify your server in real time whenever a new member is created. Use this to sync membership data with your own systems automatically.
How to add a webhook endpoint
- Go to Site Settings→Membership→ Webhooks in your Bullet dashboard.
2. Click "+ Add an endpoint" A dialog will appear where you can enter your endpoint URL and an optional description.
3. Enter your HTTPS endpoint URL Your server must be publicly accessible over HTTPS. HTTP URLs are not accepted.
4. Click "Verify" Bullet will send a test request to your endpoint to confirm it is reachable and responding correctly.
5. Select events to listen to Check User Created to receive a notification each time a new member registers.
6. Save your endpoint Your endpoint will appear in the webhooks list and begin receiving events immediately.
5. Select events to listen to Check User Created to receive a notification each time a new member registers.
6. Save your endpoint Your endpoint will appear in the webhooks list and begin receiving events immediately.
How endpoint verification works
When you click Verify, Bullet sends a real POST request to your endpoint containing a sample member payload. Your server must process this request and return HTTP 200 for verification to succeed.
The verification payload looks like this:
{ event: 'userCreated', data: { allowedSegments: ['default'], createdAt: Date.now(), email: 'test@test.com', name: 'testURL', }
Verification rules:
- Request method: POST
- Required response: HTTP 200
- On non-200 response: verification fails
- On timeout or network error: verification fails
Note: The verification payload includes an email field. If your endpoint integrates with an external service, it will attempt to process this test data. We recommend detecting test requests by checking that data.name equals "testURL" and returning 200 immediately without forwarding to any external API.
What a live event looks like
When a real member registers, Bullet sends the same payload structure with their actual details and any segments they belong to:
{ event: 'userCreated', data: { allowedSegments: ['default'], createdAt: Date.now(), email: 'test@test.com', name: 'testURL', }
Testing your endpoint
Before clicking Verify in Bullet, test your endpoint using Postman to make sure it responds correctly.
Postman setup:
- Method: POST
- Content-Type: application/json
- Body: use the payload structure above
If your endpoint returns HTTP 200 in Postman and your integration processes the data correctly, Bullet verification will succeed. Always test with Postman first before attempting verification in the dashboard.