Industry
Use Case
Favorite Feature
A white-label AI chatbot infrastructure startup provides conversational AI platforms to SMEs for customer service automation, FAQ handling, and lead qualification. The company maintains a solid multi-tenant SaaS architecture serving hundreds of customers, from small businesses running a single bot to enterprise customers operating dozens of advanced conversational agents across multiple departments.
Initially, the startup monetized through a single flat monthly subscription. As the customer base grew, usage patterns diverged dramatically: some customers ran simple FAQ bots with minimal traffic, while others deployed multiple advanced bots with high message volumes and required premium NLP features like retrieval-augmented generation (RAG), voice transcription, and analytics dashboards. This one-size-fits-all model left significant revenue on the table, created pricing friction with larger customers, and made it impossible to meter actual usage fairly.
NetLicensing was chosen to replace the homegrown entitlement layer, enabling tiered feature-based pricing across three dimensions (bot count, message volume, and premium features) while eliminating engineering effort spent on custom metering logic.
The startup’s original system had no mechanism to differentiate pricing by actual usage. A customer running one simple FAQ bot with 100 monthly messages paid the same fee as a customer running five advanced RAG-powered bots handling 500,000 monthly conversations. This created three critical problems: lost revenue from under-pricing high-volume customers, pricing friction preventing larger deals from closing, and persistent feature entitlement drift where customers accessed premium features without paying for them because enforcement was scattered across the codebase and never validated against a single source of truth.
The engineering team spent significant time building and maintaining custom quota logic, metering APIs, and feature flag conditionals. Adding new pricing tiers or features required code changes and careful deployment coordination. Self-service upgrades were impossible — customers had to contact sales to change plans, creating friction and increasing time-to-revenue.
NetLicensing’s Multi-Feature and Quantity-Based licensing models were the natural fit. Each pricing tier (Starter, Pro, Enterprise) was implemented as a composite License Template bundling three independent entitlements:
This model allows customers to purchase exactly what they need: a startup might buy a 5-bot license with 50,000 monthly messages and no premium features, while an enterprise customer buys 25 bots with unlimited messages and all feature modules enabled.
Product and Module Structure:
Product: WhiteLabel Chatbot Platform
└── Module: Tiered Entitlements (Multi-Feature model)
├── Template: Starter (bot_count=3, message_volume=10000, features=none)
├── Template: Pro (bot_count=10, message_volume=100000, features=RAG)
└── Template: Enterprise (bot_count=unlimited, message_volume=unlimited, features=all)
Key Configuration Steps:
Key API Parameters:
quantity = bot count or message limit per tenanttimeVolume=1, timeVolumePeriod=MONTH for monthly quota resetsactive=true/false per tier to gate RAG and analytics modulesValidation Flow at Key Lifecycle Points:
When a customer attempts to create a new bot, the platform calls:
GET /licensee/{licenseeNumber}/validate
NetLicensing responds with the current active licenses. The app checks:
license.botCount.quantity — is current bot count < limit?license.messageVolume.quantity — will monthly usage exceed quota?license.rag.active — are premium features enabled?If the tenant has already deployed max bots, creation fails with an upgrade prompt. If message volume will exceed the monthly limit, the platform warns the customer or suggests an upgrade.
On Bot Conversation:
App receives user message → GET /licensee/{licenseeNumber}/validate
↓ Check: message_volume_used < message_volume_limit?
↓ Valid: route to bot, increment usage counter
↓ Expired/Invalid: return 402 "Quota Exceeded" → show upgrade CTA
Self-Service Upgrades: When a customer wants to upgrade from Pro to Enterprise, they click “Upgrade Plan” in settings. This initiates:
POST /token/{tokenNumber} (fetch shop token for customer)
Redirect to NetLicensing Shop → select new template → pay via Stripe
Webhook callback: create new composite license → invalidate old license → immediate access
Integration Points:
Each tenant (customer account) is registered as a Licensee in NetLicensing with licenseeNumber mapped to the tenant’s internal ID. When a customer signs up, the platform automatically calls:
POST /licensee
{
"licenseeNumber": "tenant-12345",
"productNumber": "chatbot-platform",
"active": true
}
This creates the Licensee and immediately assigns default License Templates for the customer’s chosen plan. Subsequent validations use the same licenseeNumber throughout the customer lifecycle.
For self-service upgrades, the platform generates a one-time shop token scoped to the Licensee:
POST /token
{
"licenseeNumber": "tenant-12345",
"type": "SHOP"
}
The returned shop URL allows the customer to browse and purchase upgrades without involving sales, and upgrades take effect immediately upon successful payment.
Self-service upgrades are central to the business model. When a customer wants to add more bots or messages or unlock premium features, they access the “Manage Plan” page in the product. The backend generates a NetLicensing Shop token scoped to their Licensee and embeds the shop iframe (or redirects to a modal).
The customer browses available upgrade templates, selects one, and completes payment via Stripe. NetLicensing sends a webhook to the platform’s backend confirming the new license creation. The backend uses the webhook payload to fetch the new entitlements and immediately apply them to the user session.
Customer clicks "Upgrade" → POST /token → embed shop iframe
↓ Customer selects new tier → Stripe payment
↓ Payment approved → NetLicensing creates license
↓ Webhook: POST /webhooks/license-created
↓ Backend fetches new entitlements → update session
↓ User sees new limits reflected in UI immediately
No manual provisioning needed; the entire flow is automated and transparent to the customer.
timeVolume=1, timeVolumePeriod=MONTH. Ensure webhook handlers reset usage counters at this boundary.
OEM & Embedded Software Licensing
Distribute your software inside a hardware partner's product with device-bound entitlements and per-unit usage reporting

Physical Security: Feature-Based Access Control with Time-Limited Permissions
A building management company implemented feature-based access control with time-limited permissions to manage resource gating and dynamic authorization across facilities.