SaaS Business Management
The ECOSIRE SaaS Business Management module transforms Odoo 19 into a full-featured SaaS platform management system. Provision and manage multiple tenant instances, automate subscription billing, track resource usage with metering, and monitor tenant health -- all from within your Odoo backend. With support for automated provisioning, lifecycle management, white-label tenant portals, and built-in migration tools, this module provides everything you need to run a scalable SaaS business on top of Odoo infrastructure.
Compatibility: Odoo 19 only Price: $499 (one-time) License: Up to 3 domain activations
Key Features
- Multi-tenant management with isolated environments
- Automated provisioning of new tenant instances
- Subscription billing with flexible plan management
- Usage-based metering (storage, API calls, users, bandwidth)
- Tenant lifecycle management (trial, active, suspended, archived)
- Resource allocation and quota enforcement
- Performance monitoring with health dashboards
- Automated backups with configurable retention policies
- White-label tenant portals for end customers
- Migration tools for tenant upgrades and data transfers
Prerequisites
- Odoo 19 (Community or Enterprise edition) -- this module is not compatible with earlier versions
- An active ECOSIRE license for this module
- Server infrastructure capable of supporting multiple tenant instances
- PostgreSQL with permissions to create and manage multiple databases
- Sufficient disk space for tenant data and automated backups
Installation
- Download the module ZIP from your ECOSIRE Dashboard
- Extract to your Odoo addons directory:
unzip ecosire-saas-business-management-*.zip -d /opt/odoo/addons/ - Restart the Odoo service:
sudo systemctl restart odoo - Navigate to Apps, click Update Apps List
- Search for "ECOSIRE SaaS Business Management" and click Install
- Enter your ECOSIRE license key when prompted
Configuration
Step 1: Set Up Tenant Templates
- Navigate to SaaS Management then Configuration then Tenant Templates
- Click Create Template to define a new tenant blueprint
- Configure the template settings:
- Template Name (e.g., "Starter", "Professional", "Enterprise")
- Pre-installed Modules -- select the Odoo modules included in this template
- Default Configuration -- set default settings, themes, and branding for new tenants
- Demo Data -- choose whether to include sample data for new tenants
- Set Resource Defaults for the template:
- Maximum users allowed
- Storage quota (in GB)
- API call limits per month
- Bandwidth allocation
- Click Save and optionally mark the template as Active
Step 2: Configure Billing Plans
- Navigate to SaaS Management then Configuration then Billing Plans
- Click Create Plan to define a subscription tier
- Configure the plan details:
- Plan Name and Description
- Billing Cycle (monthly, quarterly, annually)
- Base Price and Currency
- Included Resources (users, storage, API calls)
- Overage Pricing for usage beyond included resources
- Link the plan to one or more Tenant Templates
- Set up Trial Period configuration (duration, limitations, auto-conversion rules)
- Click Save and activate the plan
Step 3: Configure Resource Limits and Monitoring
- Navigate to SaaS Management then Configuration then Resource Settings
- Define global resource thresholds:
- Warning Threshold -- percentage of quota that triggers alerts (e.g., 80%)
- Hard Limit Threshold -- percentage at which access is restricted (e.g., 100%)
- Grace Period -- days allowed over limit before enforcement
- Configure Monitoring Settings:
- Health check interval (every 1/5/15 minutes)
- Alert notification channels (email, Odoo inbox, webhook)
- Performance metric collection frequency
- Set up Backup Configuration:
- Backup frequency (daily, weekly)
- Retention period (7/14/30/90 days)
- Backup storage location (local, S3, or custom)
- Enable backup encryption if required
Provisioning a New Tenant
- Go to SaaS Management then Tenants then Create Tenant
- Fill in tenant details:
- Tenant Name and Subdomain (e.g., acme.yoursaas.com)
- Admin Contact (name, email)
- Template -- select from configured tenant templates
- Billing Plan -- assign a subscription plan
- Click Provision to begin automated setup
- The system will:
- Create an isolated database for the tenant
- Install the selected modules from the template
- Apply default configuration and branding
- Set up the admin user account
- Send a welcome email with login credentials
- Monitor provisioning progress in the Operations Log
Dashboard
The OWL 2 dashboard provides:
- 6 KPI cards showing total tenants, active subscriptions, MRR, and resource utilization
- Interactive Chart.js analytics for revenue trends and tenant growth
- Tenant health overview with status indicators (healthy, warning, critical)
- Resource utilization gauges (storage, users, API calls across all tenants)
- Recent provisioning and lifecycle events feed
- Billing summary with upcoming renewals and overdue payments
- Quick action buttons for common tenant management tasks
Tenant Lifecycle Management
The module supports the following tenant states:
| State | Description |
|---|---|
| Trial | New tenant in evaluation period with limited features |
| Active | Fully operational tenant with an active subscription |
| Suspended | Temporarily disabled (payment overdue or manual suspension) |
| Archived | Deactivated tenant with data retained per policy |
| Migrating | Tenant undergoing upgrade or data transfer |
Transitions between states can be automated based on billing status, trial expiration, or triggered manually by administrators.
Troubleshooting
| Issue | Solution |
|---|---|
| Provisioning failed | Check PostgreSQL permissions and available disk space |
| Tenant not accessible | Verify DNS configuration and Odoo proxy settings |
| Billing not processing | Confirm billing plan assignment and payment method on file |
| Backup failures | Check backup storage permissions and available space |
| Resource limits not enforcing | Verify threshold configuration and cron job schedules |
| Migration stuck | Review migration log for errors and ensure target template is valid |