Gate free trial access behind a waitlist to filter applicants and build urgency. Use OperatorStack's joinWaitlist() to collect signups, submitForm() to capture qualification data, and getShareLinks() to add a referral loop. All three land in one unified contact list you batch-invite when you open access.

Why Gate Free Trial Access

An open free trial accepts everyone. That sounds good until your support queue is full of users who signed up out of curiosity rather than need, and your churn data is dominated by people who never intended to pay.

A waitlist for your free trial fixes three things:

  • Qualification. You collect intent data before granting access. Users who bother to fill out two fields want access more than users who clicked a link.
  • Pacing. You onboard cohorts instead of a flood. Each cohort gets real attention, producing better retention data and case studies.
  • Demand signal. A growing waitlist tells you whether the market wants your product before you build the full onboarding experience.

The tradeoff is friction. Some users will not sign up if they have to wait. That friction is usually worth it during beta -- you want the users with enough intent to wait.

Step 1: Set Up the Waitlist

If you do not have an OperatorStack account, sign up and add the script tag to your landing page:

<script src="https://operatorstack.dev/os.js" data-project="your-project-id" defer></script>

Then add the waitlist widget where you want the signup form:

<div data-os-widget="waitlist"></div>

That is the whole installation. Signups, referral tracking, and analytics start working immediately.

Set the success message to something that reinforces scarcity: "You're on the list. We're inviting people in batches -- we'll email you when it's your turn." A specific message converts better than a generic "thanks for signing up."

Step 2: Add a Qualification Layer

The waitlist widget collects an email address. You also want to know who is signing up and why. Use a short form immediately after signup to gather that data.

Create a form in your OperatorStack dashboard with 2-3 qualification fields:

  • What will you use Product for? (dropdown or short text)
  • Team size (dropdown: solo, 2-10, 11-50, 50+)
  • How did you hear about us? (short text)

Then call submitForm() with the form key right after joinWaitlist():

const emailInput = document.querySelector("#email");
const useCaseInput = document.querySelector("#use-case");
const teamSizeInput = document.querySelector("#team-size");

document.querySelector("#waitlist-btn").addEventListener("click", async () => {
  await OperatorStack.ready;

  const result = await OperatorStack.joinWaitlist({
    email: emailInput.value,
  });

  await OperatorStack.submitForm("frm_your_form_key", {
    use_case: useCaseInput.value,
    team_size: teamSizeInput.value,
    waitlist_position: result.position,
  });
});

Both the waitlist entry and the form submission land in the same unified contact list. When you filter contacts by form field values, you can see immediately which use cases are most common and which applicants fit your ideal beta profile.

Keep it to two or three fields. Every additional field reduces conversion. If you want deeper data, ask it after you have already accepted them into the beta -- they have more reason to answer once they are in.

Step 3: Add a Referral Incentive

Queue position is a natural referral incentive. Every person they refer moves them up the access list. You do not need to build a leaderboard -- just display the share links right after signup and state the incentive clearly.

const result = await OperatorStack.joinWaitlist({ email: emailInput.value });

const links = OperatorStack.getShareLinks(result.referral_code);

document.querySelector("#share-twitter").href = links.twitter;
document.querySelector("#share-linkedin").href = links.linkedin;
document.querySelector("#share-email").href = links.email;

document.querySelector("#referral-msg").textContent =
  "Refer 3 people and jump to the front of the list.";

The referral source is captured automatically. When you review your contact list, you can see which applicants came through referrals and who referred them -- useful for identifying your highest-intent early users.

Step 4: Invite Your First Cohort

When you are ready to open access, export your contact list from the dashboard. Filter by the qualification fields you collected to identify your best-fit users.

Send one email. Keep it short:

  1. One sentence: what access you are granting and when
  2. A direct link to sign up for the free trial
  3. A specific call to action: "Click here to claim your free trial spot"

Send to 20-50 users for your first cohort. Get them onboarded, collect feedback, fix the critical issues, then invite the next cohort. A controlled rollout produces better product data than opening the gates to everyone at once.

Do not let the waitlist grow indefinitely without inviting anyone. After 4-6 weeks, unsatisfied wait times erode intent. Set a target cohort date when you start collecting signups and communicate it in your confirmation message.

What the Unified Contact List Gives You

Every person on your free trial waitlist appears in your contact list with:

  • Their waitlist position and referral code
  • Their qualification form responses
  • The referral source that brought them to your page
  • Pages they viewed and when

When it is time to select who gets into the beta, you are not working from a flat email list. You are working from a filtered, segmented view of who your most qualified applicants are.

Frequently Asked Questions

Should I gate my free trial behind a waitlist?

How do I qualify users who sign up for a free trial waitlist?

How do I invite people from the waitlist to my free trial?

Can I use a referral loop on a free trial waitlist?