> For the complete documentation index, see [llms.txt](https://docs.norrnext.com/norrcompetition/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.norrnext.com/norrcompetition/best-practices/monetize-voting-contests-via-membership.md).

# Tutorial: Monetize Voting Contests via Membership

There are multiple strategies for monetizing online voting contests. **In this tutorial**, we explore **monetization via subscription and membership plans for specific durations**.

If you prefer a micro-transaction model where users spend credits/points for individual actions (e.g. pay per vote or pay per submission), refer to:

* [Tutorial: Monetize Voting Contests via Points](/norrcompetition/best-practices/monetize-voting-contests-via-points.md)

***

## Concept Overview

Joomla membership and subscription extensions automate access control by assigning paying users to specific **Joomla User Groups** upon subscription purchase and reverting them to default groups (e.g., *Registered*) when their subscription expires.

By combining membership extensions with NorrCompetition's flexible ACL permissions, you can create tiered access levels:

| Plan                | Included Actions                                 | Duration  | Purpose                                    |
| ------------------- | ------------------------------------------------ | --------- | ------------------------------------------ |
| **Basic Voter**     | Vote in contests                                 | 7 Days    | General voters supporting their candidates |
| **Active Voter**    | Vote in all contests                             | 30 Days   | Extended voting participation              |
| **Contestant Pro**  | Vote + Submit entries                            | 30 Days   | Active participants uploading works        |
| **VIP / Organizer** | Vote + Submit entries + Create frontend contests | 12 Months | Premium users and contest creators         |

You can also restrict access to specific contest categories (e.g., premium categories requiring specific user groups).

<figure><img src="https://norrnext.com/images/docs/norrcompetition/best-practices/pricing-plans-en.png" alt="Example of pricing plans for voting contest site"><figcaption><p>Example Pricing Plans Model</p></figcaption></figure>

***

## Step-by-Step Configuration

### Step 1: Create Joomla User Groups

1. In Joomla Administrator, go to **Users > Groups > Add New Group**.
2. Create dedicated user groups matching your planned subscription tiers (e.g., *NC Basic Voter*, *NC Contestant Pro*, *NC VIP Organizer*), setting their parent group to *Registered*.

### Step 2: Configure Membership & Subscription Software

Choose a Joomla membership or subscription solution (available in the [Joomla Extensions Directory: Membership & Subscriptions](https://extensions.joomla.org/category/e-commerce/membership-a-subscriptions/)).

1. Create subscription plans matching your tiers.
2. Configure automated user group assignment upon active subscription and removal on expiration.
3. Configure payment gateways (e.g., Stripe, PayPal, offline transfer).

### Step 3: Configure NorrCompetition Permissions

Configure ACL permissions either globally (**Components > NorrCompetition > Options > Permissions**) or per contest (**Contest > Permissions**):

* **Registered (Default):** Deny or restrict voting / entry creation.
* **NC Basic Voter:** Set **Vote** to *Allowed*.
* **NC Contestant Pro:** Set **Vote**, **Create**, and **Create After Contest Start** to *Allowed*.
* **NC VIP Organizer:** Set **Vote**, **Create**, and **Create Contest** to *Allowed*.

For detailed permission settings, refer to the [Permissions Configuration Guide](/norrcompetition/configuration/permissions.md).

<figure><img src="https://norrnext.com/images/docs/norrcompetition/best-practices/contest-permissions-en.png" alt="Configure permissions for selected User Group"><figcaption><p>Configuring Permissions for Selected User Groups</p></figcaption></figure>

### Step 4: Customize Calls to Action & Language Strings

1. **Guest & Restricted Prompt:** Use Joomla Language Overrides (**System > Manage > Language Overrides**) to customize the `COM_COMPETITION_VOTE_ERROR_NO_PERMISSIONS` message with a clear CTA (e.g., *"To vote in this contest, please purchase a membership pass"*).
2. **Registration / Checkout Redirection:** Direct non-subscribed visitors attempting to vote to your pricing/subscription landing page.
