Industry
Use Case
Favorite Feature
A rapidly growing project management SaaS company provides team collaboration, task tracking, and workflow automation to organizations ranging from freelancers to enterprises. The platform includes features like project templates, team chat, time tracking, advanced analytics, and third-party integrations.
The company’s growth was constrained by a poor trial-to-paid conversion funnel: despite strong freemium interest, the 14-day trial converted at only 8% — well below the industry benchmark of 15–20%. The core problem was structural: trial users received full access to enterprise features immediately, creating confusion about core versus premium capabilities. When trials expired, users were locked out abruptly with no soft landing, generating frustration and negative app store reviews. The company lacked systematic visibility into trial engagement, automated conversion nudges, and any freemium safety net for users not ready to pay.
NetLicensing became the central entitlement system, enabling structured trial tiers with progressive feature access, automatic conversion triggers based on usage milestones, and a freemium tier that retained non-converting users while enforcing strict feature limits.
Before NetLicensing, trial management was handled by a crude timestamp-based cron job that checked expiry dates and revoked access. Three critical problems emerged:
Sales visibility was also poor: the team had no real-time way to identify which trial accounts were actively using the platform, making proactive outreach impossible.
The company implemented two NetLicensing models working in tandem:
Try & Buy (Subscription variant) — time-bounded trial licenses that automatically expire but trigger conversion workflows rather than hard lockouts. Three trial tiers were created:
Subscription — for paid tiers (Starter, Pro, Team) and the freemium tier (perpetual Subscription license with quantity limits and feature gates).
Why this fit: Try & Buy provided time-bounded enforcement without hard failures, while Subscription gave the company flexible pricing tiers and the ability to cap freemium features programmatically (e.g., max 3 team members, 100 MB storage).
Product/Module/Template hierarchy:
Product: ProjectManager
├── Module: Trial Plans (Try & Buy model)
│ ├── Template: Quick Start (7 days, core features)
│ ├── Template: Professional (14 days, standard features)
│ └── Template: Enterprise (30 days, all features)
└── Module: Paid Plans (Subscription model, monthly renewal)
├── Template: Freemium (perpetual, feature-gated)
├── Template: Starter ($9/mo, 10 projects, 5 users)
├── Template: Pro ($29/mo, unlimited projects, 25 users)
└── Template: Team ($99/mo, unlimited + integrations)
Key template parameters:
| Template | Type | Duration | Max Projects | Max Users | Feature Set |
|---|---|---|---|---|---|
| Quick Start | Try & Buy | 7 days | 5 | 1 | Core only |
| Professional | Try & Buy | 14 days | 20 | 5 | Standard |
| Enterprise | Try & Buy | 30 days | unlimited | unlimited | All |
| Freemium | Subscription | perpetual | unlimited | 3 | Basic reporting |
| Starter | Subscription | 30 days | 10 | 5 | Integrations |
Configuration snippet (conceptual):
{
"licenseTemplate": {
"number": "LT_PROFESSIONAL_TRIAL",
"name": "Professional Trial",
"licenseType": "TIMEVOLUME",
"timeVolume": "14",
"timeVolumePeriod": "DAY",
"price": "0",
"automatic": true
}
}
Automatic trial provisioning was enabled so new signups were assigned a trial license immediately without manual intervention.
Validation trigger points:
The app integrated NetLicensing validation at three critical moments:
High-level flow:
New Signup
↓
POST /licensee (create user account)
↓
Auto-assign trial license (via "automatic": true)
↓
Daily/On-demand: GET /licensee/{num}/validate
↓
Response: valid + trial_end_date + remaining_days
↓
If valid: grant access
If 50% remaining: trigger in-app upgrade prompt
If 80% remaining: send "upgrade soon" email
If expired: transition to freemium license
Validation response structure (simplified):
{
"licensee": "US00001",
"validations": {
"LT_PROFESSIONAL_TRIAL": {
"valid": true,
"expirationDate": "2026-05-03"
}
}
}
The app’s entitlement service cached this response for 1 hour to minimize API calls, then honored feature gates locally (e.g., “if license LT_PRO_TRIAL is valid and userId in this set, show advanced analytics tab”).
Each user signup in the application created one Licensee in NetLicensing, with the app’s internal user ID mapped to licenseeNumber. A lookup table stored this mapping for quick retrieval during API calls.
Auto-provisioning was enabled: when a user signed up, the app called POST /licensee with their email as the external identifier, and NetLicensing automatically assigned the configured “automatic” trial license (Professional Trial by default). This eliminated manual onboarding steps.
For partner or team accounts (where multiple users share one license), the primary account holder was the Licensee, and the app’s access control layer enforced per-user feature limits in application logic, not in NetLicensing (since NetLicensing operates at the Licensee level, not per-user).
When a trial reached 80% expiry (with 2–3 days remaining), the app displayed a prominent in-app prompt with a direct link to the NetLicensing Shop. The shop token was generated server-side:
POST /token
{
"licenseeNumber": "US00001",
"productNumber": "ProjectManager",
"successUrl": "https://app.example.com/settings/billing?status=success",
"cancelUrl": "https://app.example.com/settings/billing?canceled=true"
}
This returned a one-time shop URL. Users clicked through, selected a paid plan, and completed checkout (with Stripe as the payment processor). On successful purchase, the shop redirected to the app’s billing page, and a webhook callback updated NetLicensing’s transaction status. The app then queried the Licensee’s updated license set and activated the new Subscription license immediately.
For users who didn’t upgrade, a separate automated flow transitioned them from the expired trial license to the freemium license, preserving their data and avoiding a hard lockout.

B2B SaaS: From Stripe-Only to Licensing-as-a-Service
A compliance SaaS eliminated entitlement drift and improved trial conversion by making NetLicensing the entitlement authority alongside Stripe.

Membership Platform: Automated Access, Renewals, and Tier Management
An online community platform automated member access control, subscription renewals, and tier upgrades using NetLicensing Subscription licensing.