How Userflow Tracks and Bills Monthly Active Users (MAUs)

Prev Next

What Is a Monthly Active User (MAU)?

A Monthly Active User (MAU) is any unique user who has been identified in your Userflow environment within a rolling 30-day window. Your MAU count determines your billing tier and whether you incur overage charges.

What Counts as an MAU?

An MAU is counted when Userflow's identify() or identifyAnonymous() method is called for a user, regardless of whether that user ever sees or interacts with any Userflow content.

Important: MAU tracking is based on user identification, not flow engagement. A user counts toward your MAU total even if:

  • They never see any flow, checklist, banner, or other Userflow content

  • No flows are published or active in your account

  • Targeting rules exclude them from all content

  • They're in a staging or testing environment

What Does NOT Count as an MAU?

Users who visit your application but are never identified do not count as MAUs. If you only call userflow.init() without calling identify() or identifyAnonymous(), those visitors will not be counted.

Common Causes of Unexpected MAU Overages

1. Using identifyAnonymous() on Public or Unauthenticated Pages

If you call identifyAnonymous() on pages accessible to the public or unauthenticated users (such as marketing pages, sign-up flows, or respondent-facing pages), every visitor will be counted as an MAU.

Solution: Only call identifyAnonymous() for authenticated users, or use conditional logic to avoid identifying users who shouldn't count toward your MAU limit.

2. Identifying All Users Instead of a Specific Role

If your application serves multiple user types (e.g., teachers and students, or admins and end-users), identifying everyone will count all users as MAUs even if you only want to show Userflow content to one group.

Solution: Add conditional logic to only identify the users you want to engage. For example:

if (user.role === 'teacher') {
  userflow.identify(user.id, {
    name: user.name,
    email: user.email,
    role: user.role
  });
}

3. Installing Userflow in Staging or Testing Environments

If your staging or testing environment mirrors production traffic, every user identified there counts as an MAU. Deleted environments continue to count toward your MAU total for 30 days after deletion.

Solution: Use separate Userflow environments for production and staging, or conditionally initialize Userflow only in production:

if (window.location.hostname === 'app.yourproduct.com') {
  userflow.init('YOUR_TOKEN');
  userflow.identify(user.id);
}

4. Deleted Environments Still Counting

When you delete an environment, users identified in that environment continue to count toward your MAU total on a rolling 30-day basis. It can take up to 30 days for those MAUs to fully clear.

How to Check Your Current MAU Usage

Important: Your MAU count includes users across ALL environments in your account. Checking MAU in just one environment will not show you the full picture.

To see your current MAU count:

  1. Go to Users in your Userflow dashboard

  2. Filter by Last seen < 30 days ago

  3. The total count shown represents your current MAU usage across all environments

Remember that this count reflects all environments combined, so if you have multiple environments (production, staging, testing), all identified users across these environments contribute to your total.

How Does MAU Reset?

MAU counts are calculated on a rolling 30-day basis, not on a monthly billing cycle. A user only stops counting as an MAU once they have not been identified for a full 30 days.

If you remove or conditionally disable Userflow identification, it will take up to 30 days to see your MAU count fully reflect the change.

Plan Limits and Overage Pricing

  • Starter: 3,000 MAUs included

  • Pro: 10,000 MAUs included

  • Enterprise: Custom MAU limits

If you exceed your plan's MAU limit, you'll be charged $100 per month for each additional 5,000 MAU pack (or portion thereof).

How to Reduce Your MAU Count

To bring your MAU count down:

  1. Remove identifyAnonymous() calls from public or unauthenticated pages

  2. Add conditional logic to only identify users you want to engage with Userflow

  3. Remove Userflow initialization from staging/testing environments, or use environment-specific logic

  4. Wait 30 days for users who are no longer being identified to age out of the rolling window

Note that manually deleting users from the Users page does not immediately reduce your MAU count—the rolling 30-day window still applies.