---
url: https://docs.corbitaltech.dev/products/whatsmark-saas/admin/plan-management.md
description: >-
  Build subscription plans for your WhatsMark SaaS tenants: set pricing tiers,
  monthly/yearly billing, feature limits, message quotas, contact caps, addon
  access, and trial periods to monetize your WhatsApp SaaS.
---

# Plan Management

\[\[toc]]

## Introduction

Plan management is crucial for structuring your SaaS offering, allowing you to create subscription plans with distinct feature sets, pricing, and limits to target various customer segments effectively.

**Permissions Required**:

| Permission Key | Action |
|------------------------|--------------------------------|
| `admin.plans.view` | View all tenant records |
| `admin.plans.create` | Add a new tenant |
| `admin.plans.edit` | Update tenant details/status |
| `admin.plans.delete` | Remove tenant (rare use) |

These permissions ensure that only authorized administrators can modify subscription plans.

## Accessing Plan Management

### Navigation Path

**Location:** Admin Panel → Plans → Plans

![Plan List](../images/plan-management/plan-list.png)

To access the plan management interface:

1. Log in to the **Admin Panel**
2. Navigate to **Plans** → **Plan List**
3. Use **Create New Plan** to add new subscriptions or click any existing plan to edit

## Plan Structure & Components

### Core Plan Properties

![Plan Structure](../images/plan-management/admin-create-plan.png)
Each subscription plan includes the following key properties:

| Property           | Description                                              |
| ------------------ | -------------------------------------------------------- |
| **Plan Name**      | Display name shown to customers on pricing pages         |
| **Plan Slug**      | URL-friendly unique identifier (auto-generated if empty) |
| **Description**    | A detailed explanation of what the plan offers           |
| **Price**          | Cost for the subscription (monthly/yearly)               |
| **Billing Period** | Defines if billing recurs monthly or yearly              |
| **Trial Days**     | Number of free trial days before billing starts (only for free plan)          |
| **Color**          | Brand color used in UI elements for plan differentiation |
| **Status**         | Active or inactive, controls visibility and availability |

### Plan Types

* **Free Plans**: Marked with `is_free = true`, automatically priced at zero (only for edit free plan)
* **Paid Plans**: Regular subscription plans with defined pricing
* **Featured Plans**: Highlighted on pricing pages as "most popular"

### Billing Periods

::: warning Extended License Required
The billing periods described below, are available with an [Extended License](https://codecanyon.net/item/whatsmarksaas-whatsapp-marketing-automation-saas-platform-with-bots-chats-bulk-sender-ai/58714968/support) only.
:::

Each plan can have one of the following billing periods:

| Billing Period | Description | Example |
| -------------- | ----------- | ------- |
| **Monthly** | Client is billed every month. Best for clients who want flexibility with no long-term commitment. | ₹200 / month — renews on the same date each month |
| **Quarterly** | Client is billed every 3 months. A great middle ground between flexibility and commitment. | ₹550 / 3 months — billed 4 times a year |
| **6 Months (Half-Yearly)** | Client is billed every 6 months. Often offered at a small discount vs monthly. | ₹500 / 6 months — billed twice a year |
| **Yearly** | Client is billed once per year. Best value option for long-term committed clients. | ₹1,200 / year — renews annually |
| **Lifetime** | Client pays once and gets access forever. No renewal, no expiry date — ever. | ₹400 — pay once, use forever |

![Billing Period](../images/plan-management/admin-create-plan.png)

::: tip
Each plan can only have one billing period. To offer the same features at different billing intervals, create separate plans — for example *Pro Monthly* and *Pro Yearly*.
:::

### Public vs Private Plans

Every plan has an **Active** switch that controls whether clients can see the plan on the public pricing page.

| State | Visibility | Self-Subscribe | Use For |
| ----- | ---------- | -------------- | ------- |
| **Active = ON** (Public) | Visible on the public pricing page | Yes — clients can self-subscribe | Standard monthly / yearly / lifetime offers |
| **Active = OFF** (Private) | Hidden from the public pricing page | No — admin must assign it | Custom enterprise deals, legacy plans, or test plans |

::: warning
Making a plan private does **not** cancel existing subscriptions. Clients who are already on the plan keep their access — it only stops new clients from signing up to it.
:::

::: tip
You can assign a private plan to any client directly from the admin panel, even if it is not publicly visible. See [Assign Plan to Tenant](#assign-plan-to-tenant) below.
:::

**How to toggle:** Go to **Admin → Plans**, find the plan card, and switch the Active toggle ON or OFF.

### Feature Management

Setting feature limits per plan enables tier differentiation:

* Use numeric values to define usage limits (e.g., 1000 contacts)
* Use `-1` for unlimited access to a feature
* Use `0` to disable a feature entirely
* Categories include Contacts, Campaigns, Bots, Templates, Team Members, etc.

## Creating a New Plan

### Step 1: Basic Plan Information

Fill in essential details:

| Field          | Example                        | Notes                             |
| -------------- | ------------------------------ | --------------------------------- |
| Plan Name      | Professional Plan              | Required                          |
| Description    | Perfect for growing businesses | Optional but recommended          |
| Color          | #3B82F6 (blue)                 | Brand identity                    |
| Billing Period | Monthly or Yearly              | Required                          |
| Custom Slug    | pro-plan                       | Optional, auto-generated if blank |
| Featured       | true/false                     | Mark as "Most Popular" or not     |

### Step 2: Pricing & Billing Period

Set the **Price** and choose a **Billing Period** from the dropdown — Monthly, Quarterly, 6 Months, Yearly, or Lifetime. The UI automatically formats the price with the currency symbol.

### Step 3: Feature Limits Assignment

![Feature Limits](../images/plan-management/admin-plan-feature.png)
Assign limits to features:

| Feature        | Description                         | Limit Example         |
| -------------- | ----------------------------------- | --------------------- |
| Contacts       | Max contacts stored                 | 1000 / -1 (unlimited) |
| Template Bots  | Automated bot usage                 | 5 / 0 (disabled)      |
| Message Bots   | Chat bot usage                      | 10 / -1               |
| Campaigns      | Campaign creation limits            | 20 / -1               |
| AI Prompts     | AI-powered assistance limits        | 50 / -1               |
| Canned Replies | Quick response templates            | 100 / -1              |
| Team Members   | Number of users allowed on the team | 10 / -1               |
| Conversations  | Chat/message limits                 | 1000 / -1             |
| Templates      | WhatsApp template limits            | 50 / -1               |

## Managing Existing Plans

### Editing Plans

* Changes apply immediately to **new subscriptions**.
* Existing subscribers retain their current plan benefits until their renewal.
* You may choose to force update existing subscribers, but this is optional and requires caution.
* Price changes should be handled carefully to avoid customer confusion or billing issues.

Editable fields include:

* Plan Name & Description
* Pricing & Billing Period
* Feature Limits
* Plan Status (Active/Inactive)

### Deactivating Plans

If a plan is discontinued:

1. Set its **Active** toggle to **OFF** (Private).
2. The plan will no longer appear on your public pricing page.
3. Existing subscribers keep their current plan benefits — deactivating does not cancel active subscriptions.
4. Decide on renewal behavior — cancel subscription or move to a different plan.

## Assign Plan to Tenant&#x20;

Admins can skip the self-service checkout and assign any plan (public or private) directly to a client.

### When to Use

* Manually onboarding a client
* Giving a client a private or custom deal plan

### Steps

1. In the left sidebar, click **Tenant → Tenants**. You will see the full list of your clients.
2. Click **Edit** on the client you want to manage (or create a new tenant).
3. Scroll down to the **Assign Plan to Tenant** section.
4. Click the dropdown and choose a plan — both **public and private** plans are listed. The dropdown shows the plan name, price, billing period, and Public/Private status.

![Assign Plan to Tenant](../images/plan-management/assign-plan.png)

5. Click **Add** (new tenant) or **Save** (existing tenant).

::: info
In the dropdown you can see plans marked as *Public* (visible on the pricing page) and *Private*. You can assign either type to a client from here.
:::

::: warning Already subscribed?
If the client already has an active subscription, the plan dropdown is disabled. You must cancel or end their current subscription before reassigning a new plan.
:::

## Displaying Plans to Customers

### Pricing Page Configuration

![Pricing Page](../images/plan-management/landing-page-4.png)
Configure how plans appear publicly:

* **Plan Order**: Arrange plans logically to guide buyers
* **Feature Highlights**: Emphasize key benefits per plan
* **Compare Button**: Allow customers to compare plans side-by-side
* **CTA Buttons**: Customize call-to-action text like "Subscribe" or "Get Started"
* **Toggle Billing Cycle**: Enable monthly/yearly pricing toggle for customer preference

### Pricing Strategy

* Use **Value-Based Pricing** focusing on the value delivered to customers rather than just costs.
* Conduct **Competitive Analysis** to ensure pricing is market-appropriate.
* Implement a **Tiered Approach** so customers can scale up as their needs grow.
* Offer an **Annual Discount** (15-20%) to incentivize yearly subscriptions.
* Design a clear **Upsell Path** with higher plans offering additional value.

### Feature Distribution

* **Free Plan**: Limited, but useful to hook new users
* **Starter Plan**: Core features with reasonable usage limits
* **Professional Plan**: Higher limits, additional advanced features
* **Business Plan**: Enhanced capabilities and support
* **Enterprise Plan**: Custom features, premium support and SLAs

### Trial Configuration

* Recommend **7-14 day** free trials (free plan only).
* Decide whether to require credit card upfront.
* Send **trial expiration notifications** automatically.
* Allow **trial extensions** for qualified prospects.

## Frequently Asked Questions

**Can I offer the same features at different billing periods?**

Yes. Create multiple plans with the same feature limits but different billing periods — for example *Pro Monthly* at ₹200/month and *Pro Yearly* at ₹1,200/year. Clients choose whichever suits them on the pricing page.

***

**What happens to existing subscribers if I make a plan private?**

Nothing changes for existing subscribers — they keep their subscription and access. Making a plan private (Active = OFF) only stops *new* clients from signing up through the public pricing page.

***

**Can I assign a private plan to a client without them knowing it is private?**

Yes. Private plans are invisible on the public pricing page. When you assign one from the admin panel, the client simply sees their plan name in their dashboard — there is no indication of whether it is public or private.

***

**What is the difference between a Lifetime plan and other plans?**

A Lifetime plan is a one-time payment with no renewal and no expiry. The client pays once and retains access forever. All other billing periods (Monthly, Quarterly, 6 Months, Yearly) renew automatically on their respective cycle.

***

**Can a client on a Lifetime plan be moved to a different plan later?**

Yes. Go to their tenant profile, cancel or end the existing subscription, then assign the new plan from the Assign Plan section.

***

**Can I assign a plan when creating a new tenant?**

Yes. The **Assign Plan to Tenant** section appears on both the *Create Tenant* and *Edit Tenant* forms. You can assign the plan at the same time you create the tenant account.

## Troubleshooting

**Common Issues & Solutions:**

| Issue                    | Possible Cause                             | Solution                                    |
| ------------------------ | ------------------------------------------ | ------------------------------------------- |
| Price Display Issues     | Currency settings incorrect                | Verify currency configuration in Admin      |
| Feature Limit Problems   | Incorrect DB entries or missing data       | Check and update feature limits in DB       |
| Trial Period Errors      | Expiration miscalculation                  | Verify trial start/end dates logic          |
| Plan Not Visible         | Plan status set to inactive or permissions | Reactivate plan or update permissions       |
| Upgrade/Downgrade Issues | Middleware permission or logic errors      | Check permissions and subscription workflow |

***

::: info Extended License Required
This feature requires an [Extended License](https://codecanyon.net/item/whatsmarksaas-whatsapp-marketing-automation-saas-platform-with-bots-chats-bulk-sender-ai/58714968/support). Please ensure you have the appropriate license before using these admin features.
:::
