ERPCrystal Lite (Free Version)

ERPCrystal Lite (Free Version)

PRD: ERPCrystal Lite (Free Version)

Version: 1.1
Date: April 25, 2026
Owner: Product / Engineering / ERP Crew

1. Product Summary

ERPCrystal Lite is a low-friction ERP onboarding and trial product designed for small manufacturers. It leverages a shared Azure Entra identity for initial authentication, then establishes unique user identity and tenant isolation through mobile-number-based verification over Telegram. Each verified user is provisioned into a dedicated database clone with free-plan restrictions and Pro upgrade triggers.


๐Ÿ—๏ธ System Architecture & Core Flows

๐ŸŽฏ Objective

Create a seamless, friction-free onboarding experience while keeping infrastructure costs and management overhead low.

๐Ÿ†• Onboarding Sequence (Phase 1)

The authentication mechanism uses a single shared Azure account for bootstrap, followed by mandatory Telegram OTP verification tied to a unique Mobile Number.

sequenceDiagram
    participant U as User
    participant A as "Web App (Blazor)"
    participant B as "Backend (API)"
    participant T as Telegram Bot
    participant D as Identity DB

    U->>A: Click "Sign up for Free"
    A->>B: "Shared Azure Login (Silent)"
    B-->>A: "Logged In (Bootstrap)"
    A->>U: Show User Detail Form
    U->>A: "Submit (Mobile, Industry, etc.)"
    A->>B: Create Onboarding Session
    B->>B: "Generate Deep Link (Token)"
    B-->>A: Deep Link URL
    A->>U: Show Telegram Consent & "Open Bot" Button
    U->>T: "Click Button (Deep Link opens Telegram)"
    U->>T: Tap /start 
    T->>B: Webhook: /start with Token
    B->>B: "Validate Token & Match Session"
    B->>T: Send OTP Message
    T->>U: Delivers OTP
    U->>A: Enter OTP
    A->>B: Verify OTP
    B->>D: Create/Update FreeUserIdentity
    B-->>A: Verification Successful
    A->>U: "Show Processing / Welcome Screen"

๐Ÿ”„ Tenant Provisioning Flow (Phase 2)

Provisioning happens asynchronously to ensure a responsive UI.

graph TD
    A[OTP Verified] --> B{Existing User?}
    B -- Yes --> C[Route to Existing DB]
    B -- No --> D[Create Provisioning Job]
    D --> E[Clone Template DB]
    E --> F[Create Tenant Mapping]
    F --> G[Notify User via Telegram]
    G --> H[Send One-Click Login Link]
    H --> I[User Logs In]

๐Ÿ” Identity & Isolation Model

  • Shared Auth: Uses one Azure account (capped at 100 users) for initial portal entry.
  • True Identity: Verified Mobile Number + Telegram Chat ID linkage.
  • Tenant Isolation: Separate physical database per user.
  • Access Control: App-level routing blocks access until OTP verification succeeds.

High-Level Scope by Phase

  • Phase 1: Identity & Verification (Mobile capture, Telegram handshake, OTP)
  • Phase 2: Provisioning & Routing (DB cloning, Tenant mapping, One-click links)
  • Phase 3: Plan Controls & Growth (Feature caps, Upgrade triggers, Analytics)

Phase 1: Core Onboarding and Identity Verification

Phase 1 Objective

Launch a working onboarding and login flow for new and returning free users using:

  • shared Azure login
  • mobile number as unique identity
  • Telegram consent and handshake
  • OTP verification

This phase should prove that users can reliably enter the system without requiring individual Azure provisioning.

In-Scope

  • โ€œSign up for Free Versionโ€ entry point
  • Pre-onboarding disclosure (Limitations, T&C, and explicit acceptance)
  • Shared Azure Entra login flow
  • Expanded user detail capture (Names, Email, Org details, Industry, Purpose)
  • Telegram consent gate with Email OTP fallback option
  • Telegram deep link generation
  • /start <token> handshake processing
  • Dual-channel OTP verification (Telegram or Email)
  • New user vs returning user detection
  • Basic processing screen after verification

Out of Scope

  • Actual tenant DB cloning
  • Personalized one-click login link delivery
  • /link and /status bot commands
  • Free Version feature restriction enforcement
  • Upgrade prompts and monetization layers

User Stories

  • As a new user, I want to sign up quickly without creating a full enterprise identity.
  • As a user, I want to verify myself using a channel that is fast and simple.
  • As a returning user, I want to log in using my mobile number and Telegram OTP.
  • As the business, I want one mobile number to map to only one free tenant identity.

Functional Requirements

1. Pre-Onboarding Disclosure

  • Before allowing access to the sign-in page, the system shall display a comprehensive list of:
    • Limitations of the Free Version.
    • Terms and Conditions of service.
  • The user must explicitly accept these terms before being redirected to the authentication/sign-in page.

2. Entry and Authentication

  • The system shall provide a โ€œSign up for Free Versionโ€ CTA on the website/app.
  • The system shall authenticate free users through a shared Azure Entra ID account.
  • The shared Azure account session shall not grant app access until the secondary identity verification (Telegram/Email OTP) succeeds.

3. User Detail Capture

  • The sign-in page shall require the following mandatory fields:
    • First Name & Last Name
    • Email Address
    • Phone Number (Mobile)
    • Organisation Name
    • Organisation Type (Selectable: Proprietorship, Partnership, Company, Societies, NGOs)
    • Number of Users
    • Type of Industry
    • Purpose (Why they want to use ERPCrystal Free Version)
  • The mobile number shall be normalized into a standard format before storage and comparison.
  • The system shall validate email and mobile formats.

4. Consent and Telegram Handshake

  • The app shall display a mandatory Telegram consent notice.
  • After consent, the app shall show instructions to install/open Telegram and start the bot with a unique deep link: https://t.me/<BotUsername>?start=<token>
  • Email Fallback: A clear link/option shall be provided for users who are “not convenient” with Telegram: “Use Email Verification instead.”
  • If the user chooses Email Fallback, the Telegram handshake step is skipped in favor of direct email OTP.

5. OTP Verification

  • The system shall send OTP after either:
    • Telegram handshake is confirmed (for Telegram flow).
    • User selects the Email Fallback link (for Email flow).
  • OTP shall be:
    • 6 digits
    • Valid for 5 minutes
    • Single use
  • Failed OTP attempts shall be rate-limited.

6. Existing vs New User Detection

  • After successful OTP validation, the system shall check whether the mobile number already exists.
  • If existing:
    • mark flow as returning user
  • If not existing:
    • mark flow as new user pending provisioning

Data Requirements

Create or prepare these entities:

Table Separation Strategy: Session vs. Identity

The system employs two distinct tables to manage the onboarding lifecycle:

  1. FreeUserSession:

    • Purpose: Acts as a transient buffer for “in-flight” onboarding attempts.
    • Usage: Captures raw user input, manages the Telegram handshake token, and stores temporary OTP hashes during the verification process.
    • Rationale: Keeps the primary identity table clean from abandoned, partial, or failed sign-up attempts.
  2. FreeUserIdentity:

    • Purpose: Represents the “Golden Record” of a verified user.
    • Usage: Once a user successfully verifies their mobile number, a permanent record is created (or updated) here.
    • Rationale: This is the authoritative source for returning-user detection and tenant access control.
  • FreeUserSession
    • session_id
    • first_name
    • last_name
    • email
    • mobile_number
    • normalized_mobile
    • organisation_name
    • organisation_type
    • no_of_users
    • industry_type
    • purpose
    • verification_channel (Telegram or Email)
    • consent_status
    • telegram_token
    • telegram_user_id
    • telegram_chat_id
    • handshake_status
    • otp_hash
    • otp_expiry
    • otp_attempt_count
    • created_at
    • updated_at
  • FreeUserIdentity
    • identity_id
    • first_name
    • last_name
    • email
    • normalized_mobile
    • organisation_name
    • organisation_type
    • telegram_user_id
    • first_seen_at
    • last_login_at
    • status

UX Requirements

  • Show clear step-by-step progression:
    • sign-up
    • mobile details
    • consent
    • open bot
    • verification
  • If handshake is pending, the UI shall keep polling or allow manual refresh.
  • If OTP expires, the user shall be able to request a resend.
  • If Telegram is not installed, show fallback instructions.

Security Requirements

  • Shared Azure login must not expose shared-state access across users.
  • OTP values must never be stored in plain text.
  • Deep-link tokens must be random, time-limited, and single-session scoped.
  • Rate limiting required on:
    • OTP send
    • OTP verify
    • handshake retries
    • mobile number attempts
  • Audit log required for:
    • consent accepted/declined
    • handshake success/failure
    • OTP sent/verified/expired

Admin/Ops Requirements

  • Support team needs a simple dashboard or query view showing:
    • pending handshakes
    • OTP failures
    • duplicate mobile attempts
    • blocked/rate-limited sessions

Dependencies

  • Azure Entra shared free-tier identity setup
  • Telegram bot registration
  • BotFather /setdomain
  • Secure secret/token storage
  • Webhook endpoint for Telegram bot events

Acceptance Criteria

  • A new user can complete consent, handshake, and OTP verification end-to-end.
  • A returning user can authenticate using mobile number + Telegram OTP.
  • No OTP is sent before Telegram /start handshake.
  • A declined-consent user cannot continue.
  • Duplicate mobile detection works reliably.
  • All events are logged for traceability.

Phase 2: Tenant Provisioning, Routing, and Free Workspace Access

Phase 2 Objective

Convert verified users into actual tenant workspaces by provisioning dedicated databases, mapping users to tenants, and enabling one-click return access through Telegram-delivered login links.

In-Scope

  • New tenant creation after Phase 1 verification
  • Template DB cloning
  • Tenant mapping table
  • Provisioning queue and worker
  • Processing/status screen
  • Telegram notification when DB is ready
  • One-click unique login link
  • Returning-user routing into correct DB
  • /link and /status Telegram bot commands

Out of Scope

  • Advanced monetization controls
  • Soft caps and usage warnings
  • AI trial prompts
  • Verticalized starter data packs unless needed for provisioning baseline

User Stories

  • As a new user, I want my workspace created automatically after verification.
  • As a returning user, I want to land directly in my own tenant environment.
  • As a user, I want to recover my login link without contacting support.
  • As operations, I want provisioning failures and retries to be visible.

Functional Requirements

1. Tenant Provisioning

  • After Phase 1 verification, if the mobile number does not exist in tenant mapping, the system shall:
    • create a provisioning job
    • clone a template database
    • assign a unique tenant identifier
    • save tenant mapping
  • Provisioning shall be asynchronous.
  • The user shall see a โ€œprocessingโ€ screen after verification if provisioning is not complete.

2. Tenant Mapping

  • The system shall maintain a mapping between normalized mobile number and:
    • tenant_id
    • database_name / connection reference
    • provisioning state
    • login status
  • Only one active free tenant shall exist per normalized mobile number.

3. Login Link Delivery

  • When provisioning completes, the Telegram bot shall send:
    • confirmation message
    • personalized one-click login link
  • Login links shall be signed, time-bound, and revocable.
  • Login links shall route the user into the correct tenant after validating the mobile-linked identity context.

4. Returning User Access

  • Returning users entering from:
    • portal login
    • Telegram unique link shall be routed to their tenant after OTP verification or signed-link validation.
  • If a DB is still provisioning, /status shall show progress.

5. Telegram Bot Commands

  • /start
    • initiates or refreshes handshake
  • /link
    • sends active login link if tenant exists
  • /status
    • returns provisioning state for new users

Data Requirements

Add these entities:

  • TenantMapping
    • tenant_id
    • normalized_mobile
    • database_name
    • db_server_ref
    • provisioning_status
    • provisioning_started_at
    • provisioning_completed_at
    • created_at
  • ProvisioningJob
    • job_id
    • tenant_id
    • source_template
    • job_status
    • retry_count
    • last_error
    • created_at
    • updated_at
  • LoginLink
    • link_id
    • tenant_id
    • normalized_mobile
    • token_hash
    • expires_at
    • last_used_at
    • revoked_at

Backend Requirements

  • Create a provisioning service/worker to clone DBs concurrently and safely.
  • Add retry logic and dead-letter/error handling for failed provisioning.
  • Ensure tenant connection resolution happens only after identity verification.
  • Add cleanup jobs for expired sessions, OTPs, and stale tokens.

Frontend Requirements

  • Add a โ€œYour database is being preparedโ€ screen with:
    • estimated status
    • Telegram notification explanation
    • retry/open Telegram guidance
  • Add returning-user login portal for mobile number entry and OTP.
  • Add link-validation landing route for personalized deep links.

Security Requirements

  • No tenant should ever be resolved without verified mobile identity or valid signed link.
  • Login links must not expose raw tenant identifiers in insecure form.
  • Signed links should support revocation if abuse is suspected.
  • Provisioning logs must not leak secrets or DB credentials.

Admin/Ops Requirements

Need operational visibility for:

  • total free tenants created
  • provisioning queue depth
  • provisioning failure rate
  • DB readiness time
  • repeated /link requests
  • suspicious repeated login attempts

Dependencies

  • Template database snapshot strategy
  • Background job infrastructure
  • Tenant-aware connection management
  • Telegram outbound messaging setup
  • Signed token/link service

Acceptance Criteria

  • A newly verified user gets a dedicated tenant DB provisioned automatically.
  • Tenant mapping is created and can route users correctly.
  • A Telegram message is sent once DB provisioning completes.
  • /link successfully re-sends access link for existing users.
  • /status shows accurate provisioning state.
  • Returning users reach only their own isolated workspace.

Phase 3: Plan Controls, Upgrade System, and Growth

Phase 3 Objective

Turn ERPCrystal Lite into a scalable growth channel by enforcing plan limits, exposing Pro value, and adding frictionless upgrade paths.

โš–๏ธ Entitlement Logic Flow

The system centrally evaluates entitlements for every sensitive action.

graph TD
    A[User Action Request] --> B[Identify Tenant Plan]
    B --> C{Is Pro?}
    C -- Yes --> D[Allow Action]
    C -- No --> E[Check Usage vs Limit]
    E --> F{Limit Reached?}
    F -- No --> G[Check Warning Threshold]
    G -- No --> D
    G -- Yes --> H[Show Warning + Allow Action]
    F -- Yes --> I{Grace Period Active?}
    I -- Yes --> J["Show Warning + Allow Action (Limited Features)"]
    I -- No --> K[Block Action + Show Upgrade Prompt]

In-Scope

  • Free Version plan limits by module
  • Usage counters and entitlement engine
  • Contextual upgrade nudges and persistent “Upgrade” button
  • Stripe/Razorpay integration for self-service conversion
  • Vertical onboarding starter profiles
  • “Export My Data” trust feature

User Stories

  • As a Lite user, I want to see clear indicators of my remaining usage.
  • As a user hitting a limit, I want an immediate, self-service way to upgrade to Pro.
  • As a Lite user, I want to trust that my data is portable and migratable to Pro.

Functional Requirements

1. Self-Service Upgrade & Payment

  • The system shall provide a self-service upgrade path, allowing users to convert from Free to Pro without manual support intervention.
  • Integration with a payment gateway (e.g., Stripe or Razorpay) shall be implemented to handle direct payments.
  • Successful payment shall trigger an automatic tenant entitlement update from Free to Pro.

2. Persistent Navigation Visibility

  • A prominent “Upgrade to Pro” or “Upgrade” button shall be consistently visible in the application’s top navigation bar for all users on the Free Version.

3. Entitlement and Usage Engine

  • The system shall enforce feature limits based on plan type: Free Version or Pro.
  • Limits shall be configurable per feature and per period:
    • yearly
    • monthly
    • active-count based
    • concurrent-user based
  • Usage shall be tracked per tenant.

2. Free Version Restriction Types

Support these restriction models:

  • hard cap
  • soft cap with warning
  • feature visible but disabled
  • watermark output
  • manual-only mode
  • view-only mode
  • AI prompt quota
  • import/upload/email disabled
  • limited history window

3. Module-Level Limits

Implement Free Version restrictions for:

  • Sales
  • Supply Chain
  • Manufacturing
  • HR & Payroll
  • Finance
  • System Tools
  • AI features
  • Integrations
  • Audit tracking
  • global org-level restrictions

The product team should configure exact limits from your strategy matrix into a centralized entitlement table.

4. Upgrade Trigger Design

  • Show warnings before thresholds, for example at 80%.
  • Optionally allow grace usage beyond nominal cap where configured.
  • Display contextual nudges at moments of friction:
    • repeated manual entry
    • blocked upload
    • AI quota reached
    • third user attempt
    • transaction limit near exhaustion
  • Premium features shall remain visible with clear upsell messaging.

5. Trust and Conversion Features

  • Add โ€œExport All My Dataโ€ capability.
  • Show โ€œYour data is migratable to Pro with one click.โ€
  • Add branded/watermarked PDF footer for Free Version outputs.
  • Add product-branded shareable outputs where applicable.

6. Verticalized Starter Setup

  • During onboarding or post-provisioning, use industry type to initialize sample masters or starter configuration.
  • Example: Fabricator profile can preload relevant items/processes.

7. Milestone-Based Rewards

  • Support milestone unlocks such as:
    • โ€œfirst 10 sales ordersโ€
    • โ€œ5 AI tries usedโ€
  • These should be configurable and tied to specific promotional unlocks if desired.

Data Requirements

Add:

  • PlanEntitlement
    • plan_type
    • feature_code
    • limit_type
    • limit_value
    • period_type
    • grace_value
    • warning_threshold
    • restriction_mode
  • FeatureUsage
    • tenant_id
    • feature_code
    • usage_value
    • usage_period_start
    • usage_period_end
    • last_updated_at
  • UpgradeEvent
    • tenant_id
    • feature_code
    • event_type
    • trigger_context
    • shown_at
    • clicked_at
    • converted_at
  • IndustryProfile
    • profile_code
    • setup_payloadh
    • active_status

UX Requirements

  • Free Version/pro gating must be understandable and not feel broken.
  • Disabled features should explain:
    • what the user tried to do
    • why it is unavailable in Free Version
    • what Pro unlocks
  • Usage meters should be visible on relevant pages.
  • Warning banners should appear before users hit a hard stop.
  • Upgrade CTAs should be contextual and not spammy.

Reporting and Analytics Requirements

Track:

  • sign-up completion rate
  • consent acceptance rate
  • Telegram handshake completion rate
  • OTP success rate
  • provisioning completion rate
  • time to first meaningful action
  • feature usage by module
  • limit-hit events
  • upgrade CTA impressions
  • upgrade CTA clicks
  • Pro conversion rate
  • conversion by industry profile
  • churn or inactivity after first login

Security and Compliance Requirements

  • Enforcing Free Version restrictions must happen server-side, not only in UI.
  • All entitlement checks should be auditable.
  • Export features must respect tenant isolation.
  • Usage counting must be tamper-resistant.

Admin/Ops Requirements

Internal tools should allow:

  • modifying plan limits
  • reviewing tenant usage
  • reviewing upgrade events
  • enabling/disabling promotional unlocks
  • manually retrying failed entitlement sync or usage recalculation

Dependencies

  • Central feature flag or entitlement engine
  • Usage metering framework
  • Analytics/event pipeline
  • PDF/report rendering hooks
  • configurable pricing/upgrade destination

Acceptance Criteria

  • Free Version restrictions match approved business rules per module.
  • Usage limits are measured correctly per tenant and per period.
  • Upgrade prompts appear at intended points.
  • Premium features remain visible where defined.
  • Data export works for Free Version users.
  • Analytics dashboard can identify top conversion triggers.

๐Ÿงฎ 3. Sales Module Strategy

๐Ÿ”น Key Design Pattern

  • Hard limits on transactions
  • Watermarks + manual workflows
  • AI throttling

๐Ÿ“Š Sales Feature Matrix

Feature Lite Restriction Pro Capability
Sales Order 25/year + watermark PDF, Disable Email, Disable Upload Feature Unlimited + Branded PDF + Email Sending + S3 Document Upload
Sales Enquiry 25/year, Unlimited
Invoice 25/year, disable import, disable email, disable E-Invoicing, Disable Upload Unlimited + AI creation + Bulk Excel import + E-Invoicing + S3 Upload
Export Invoice View only Full export documentation + Multi-currency support
Sales Rejection 25/year Unlimited
Short Close Manual only Unlimited manual short-closing
Marketing Activity 100 logs max Full CRM tracking (Calls/Visits)
Collection Status Last 30 days Full historical collection status
AI Invoice 5 prompts/year Unlimited AI-powered invoice generation
Sales Officer 10/Year Unlimited
Sales Order Status 10/Year Unlimited
Transfer Price Master 25/ year, Import Disable Unlimited + Bulk Excel Import

โœ… Reports: Fully Enabled


๐Ÿšš 4. Supply Chain Module Strategy

๐Ÿ”น Key Design Pattern

  • Inventory movement throttling
  • Manual procurement workflows
  • Restricted stock visibility

๐Ÿ“Š Supply Chain Feature Matrix

Feature Lite Restriction Pro Capability
Purchase Indent 25/year, No Upload, No Import Unlimited + Bulk Excel Import + S3 Upload
GRN (Goods Received) 25/year, watermark PDF AI-Powered GRN creation, Unlimited records
Purchase Bill 25/year, No upload, No email Unlimited + Email Sending + S3 Document Upload
DNCN (Debit/Credit) 25/year, No email, Watermark Unlimited + E-DNCN generation + Print
Inventory Adjustment 25/year Unlimited warehouse reconciliation entries
MRN / IIRS 50/year Unlimited material issue/receipt entries
Advance License View only Full tracking and statutory reporting
Import Document View only Full landed cost calculation and document tracking
Masters
Item Master 50 Active items, Single UOM Unlimited Items + Bulk Excel Import
Store Master 2 Max Unlimited locations (Store/Unit)
UOM / HSN Master System defaults only Custom Units and HSN definitions
Price/Cost Master 25/ year Manual entry only Bulk Excel Import
Lead Time Master 25/year Manual entry Manual tracking per Party/Item/Mode

โœ… Reports: Fully Enabled


๐Ÿญ 5. Manufacturing Module Strategy

๐Ÿ”น Key Design Pattern

  • Complexity limits for BOM
  • Capacity planning throttling
  • Single-stream production flow

๐Ÿ“Š Manufacturing Feature Matrix

Feature Lite Restriction Pro Capability
BOM 10 max, 2 levels deep Multi-level BOM (verified up to 4+ levels)
Production Plan 1 active plan, Manual entry Unlimited plans + Bulk Excel Import
Job Work 25/year, manual challan Unlimited Job Work tracking
Production Entry Single shift selection Multi-shift support (Day/Night)
QA Protocol 25 Rejected lines allowed Full Test Plan management and QA logs
Masters
Process Master 5 max Unlimited manufacturing processes
Machine Master 5 max Unlimited machines with machine specifications
Quality Parameters System defaults only Custom quality parameter definitions
Stage/Machine Map 10 max Unlimited mapping across production stages

โœ… Reports: Fully Enabled


๐Ÿ‘ฅ 6. HR & Payroll Strategy

๐Ÿ”น Key Design Pattern

  • Headcount-based scaling
  • Manual calculation overhead
  • Limited attendance automation

๐Ÿ“Š HR Feature Matrix

Feature Lite Restriction Pro Capability
Employees 10 Max active Unlimited Employee Master and historical data
Payroll Manual month-wise computation Computation for entire crew + PDF Payslips
Leave Management 5/month, No carry-forward Full Leave policy tracking
Attendance Manual entry only Daily In-Out register tracking
Loan / Advance 5/year Employee Loan tracking and repayment
Crew Task Log 100 entries max Detailed worker task logs
Masters
Dept/Desig Master 5 each Unlimited Departments and Designations
Shift Master 2 max (Day/Night) Multiple shifts and timing rules
Holiday Master 1 Global list Unlimited Holiday and Weekly-off lists

โœ… Reports: Fully Enabled


๐Ÿ’ฐ 7. Finance Module Strategy

๐Ÿ”น Key Design Pattern

  • Transaction volume caps
  • Single-currency focus
  • Manual reconciliation friction

๐Ÿ“Š Finance Feature Matrix

Feature Lite Restriction Pro Capability
Vouchers 50/month (Receipt/Payment/Journal) Unlimited transactions + Bulk Excel Import
Bank Recon Manual entry comparison Bulk reconciliation via Excel Import
Fixed Assets 10 max, Manual tracking Unlimited Assets + Cost/Life tracking
Letter of Credit View only Complete LC / BOE lifecycle tracking
Investments 5 max Full bank/code based investment tracking
Masters
Account Ledger 100 max Unlimited Ledgers + Bulk Excel Import
Currency Master INR Only Multi-currency (Global) transactions
Cost Center 5 max Unlimited cost center definitions
TCS / TDS Master Standard rates only Full TCS/TDS master data management

โœ… Reports: Fully Enabled


๐Ÿ› ๏ธ 8. System Tools Strategy

๐Ÿ”น Key Design Pattern

  • Multi-user throttling
  • Security audit window
  • Restricted automation tasks

๐Ÿ“Š System Tools Matrix

Feature Lite Restriction Pro Capability
Users 2 Max concurrent Unlimited staff logins
Access Roles Basic (Admin/User) Detailed Group-to-Role permissions
Audit Trail 48 hours history only Full historical change tracking
Task Scheduler 2 active tasks Unlimited background task scheduling
Notifications In-app alerts only Auto-Email notifications
PDF Layouts Standard fixed headers Managed Branded Headers/Footers
Two-Factor Auth Disabled Two-Factor Authentication via Email

โœ… Reports: Fully Enabled Across All Modules


โš™๏ธ 9. Cross-Feature Restrictions

๐Ÿ”’ Global Limits

  • Single Business Unit Only
  • Single Branch Only

๐Ÿค– AI Restrictions

Feature Lite Pro
AI Insights Sample / Top 3 trends Full AI-driven trend analytics
AI Invoice 5 prompts/year Unlimited generative invoice creation
AI GRN 5 prompts/year Unlimited generative GRN creation

โ˜๏ธ Integrations

Feature Lite Pro
S3 Upload Disabled (UI visible) Enabled via AWS S3
Email Send Disabled (UI visible) Enabled via SMTP

๐Ÿ” Audit & Tracking

Feature Lite Pro
Audit Trail 48 hours Full history

๐Ÿš€ 10. Upgrade Triggers

๐Ÿ“ˆ Natural Conversion Points

  • Transaction limits reached
  • Need for automation (AI, bulk ops)
  • Multi-unit expansion
  • Compliance requirements
  • Team scaling (users/roles)

๐Ÿ’ก High Impact Suggestions

1. In-App “Upgrade” Triggers (Visual Psychology)

Instead of just hiding features, keep the “Premium” features visible but “Tease” the value:

  • The “Mock” Dashboard: Show a blurred or sample-data version of the Dashboard with a badge: “Upgrade to Pro to see your real-time analytics.”
  • Contextual Upsells: If a user manually enters 10 line items in a GRN, show a small pop-up: “Tired of manual entry? Try AI OCR to scan this bill and create GRN in 2 seconds. [Try 5 Free Scans]”

2. Branding as a Marketing Asset

The Free Version can act as a billboard for your main product:

  • Watermarked Documents: Any Invoice or Report generated in the Free version should have a subtle footer: “Generated by ERPCrystal Lite โ€” Get the Full Version at [URL]”.
  • Public Share Links: Allow free users to share a “Live View” of an invoice with their clients (with your branding). This creates viral exposure to other businesses that might need an ERP.

3. “Soft Cap” vs. “Hard Cap” Strategy

Instead of cutting the user off abruptly at 25 records (which can be frustrating):

  • The Warning Phase: At 20 records, change the top bar color to Amber with a message: “You are 80% through your free transaction limit. Don’t let your business stopโ€”Upgrade now!”
  • The Grace Period: Allow them to go up to 30 records, but disable “Advanced Printing” or “Emailing” for those extra 5. This gives them time to pay without halting critical operations.

4. Data “Portability” (Building Trust)

One of the biggest fears for ERP users is “Vendor Lock-in”:

  • Single-Click CSV Export: Explicitly offer a “Export All My Data” button. Paradoxically, showing users they can leave whenever they want makes them feel safer staying and upgrading.
  • Trust Badge: Prominently state: “Your data is 100% migratable to the Pro version with one click.”

5. Multi-User “Collaboration Tease”

The Free version allows 2 users. Use this to encourage team expansion:

  • The “Request Role” Notification: If a third person tries to log in, send an email to the owner: “Staff member ‘John’ tried to join your workspace. Upgrade to Pro to add unlimited team members.”

6. Vertical-Specific “Lite” Profiles

Different industries use different parts of your ERP. When they sign up for the Free version, ask: “What is your business type?” (e.g., Fabricator, Retailer, Trader).

  • Pre-Configured Masters: If they select “Fabricator,” pre-load the system with a few sample “Sheet Metal” items and “Cutting” processes.
  • Immediate Value: This reduces “Blank Page Syndrome” where users don’t know where to start, leading to higher trial completion rates.

Implementation Quick-Win: The “Power User” Milestone

Reward users for using the system.

  • Example: “You’ve just completed your first 10 Sales Orders! We’ve unlocked the ‘Print’ feature for your invoices as a gift.” Small wins make the software feel “alive” and responsive to their growth.

๐Ÿ›๏ธ Final Recommendation

Develop ERPCrystal Lite as a “Single-Instance, Multi-Tenant” deployment where:

  1. Users sign up for a Free Lifetime Trial.
  2. The UI is stripped down to Core Masters + Sales + Sourcing.
  3. Revenue Drive: The most visible “Paywall” should be the AI OCR Extraction. Once users realize manual entry is tedious, the AI-powered AIGrnCreate.razor acts as the primary conversion hook.

Tip

Key Conversion Hook: Allow the user to try 5 “AI Extractions” for free. This demonstrates the “WOW” factor of your product before requiring a subscription.


๐Ÿ› ๏ธ Technical Strategy & Security

1. Identity & Access Model

  • Shared Authentication: Uses a shared Azure account for initial entry to reduce management overhead.
  • Verification Hook: Final identity is established only after a successful Telegram OTP handshake.
  • Tenant Isolation: Every user is mapped to a dedicated physical database.

Why Mobile Verification via Telegram?

Factor Benefit
Uniqueness SIM-based identity is harder to spoof than email.
Delivery Instant delivery over the internet; bypasses email spam filters.
Cost Telegram Bot API is free for high-volume OTP delivery.
UX Deep-links open Telegram directly for a seamless “handshake.”

2. Centralized Implementation Strategy

To enforce limits without modifying every page:

  1. Module Mapping: Link API Controllers to business modules (e.g., Sales, HR).
  2. Global Action Filter: A middleware to intercept requests and block actions if limits are exceeded (402 Payment Required).
  3. Cascading Plan State: Provide the tenant’s plan (Lite/Pro) as a CascadingValue in Blazor for instant UI updates.
  4. Smart UI Guards: Use an EntitlementGuard component to wrap restricted features with a padlock icon/upgrade nudge.

3. Risks & Mitigations

  • Telegram Dependency: Mitigated by clear UI instructions and a “Request /link” fallback bot command.
  • Provisioning Latency: Mitigated by an async queue and a “Processing” status screen.
  • Hard Limit Friction: Mitigated by “Soft Caps” and “Grace Periods” where users are warned before being blocked.

๐Ÿš€ Delivery Roadmap & Readiness

๐Ÿ—“๏ธ Phase-wise Roadmap

  1. Phase 1 (Identity): Validate the acquisition funnel (Azure login, Telegram handshake, OTP).
  2. Phase 2 (Provisioning): Enable usable product access (DB cloning, tenant mapping).
  3. Phase 3 (Growth): Monetize usage (Entitlement engine, module caps, upgrade triggers).

โœ… Release Readiness Checklist

  • Telegram Bot registered and /setdomain configured.
  • Azure shared login tested for concurrency (max 100).
  • DB cloning benchmarked and error-handling verified.
  • Entitlement matrix approved by business stakeholders.
  • Analytics pipeline active for conversion tracking.

๐ŸŽฏ Final Product Outcome

ERPCrystal Lite serves as a low-friction, secure, and isolated multi-tenant entry point that converts free users into Pro customers through value-driven friction and seamless upgrade paths.