Losing $8,400 Monthly in Upgrades? Enable Odoo 18 Subscription Self-Service
By Braincuber Team
Published on December 20, 2025
Customer wants to cancel SaaS subscription. Your process: They email support → Support forwards to billing → Billing creates ticket → Takes 3-5 business days. Customer gets frustrated, posts negative review: "Took a week to cancel. Still got charged. Had to dispute with credit card."
47 cancellation requests last month. Each one: 22 minutes of support time (email back-and-forth, billing confirmation, system update). That's 17.2 hours monthly just processing cancellations = $482 in labor. Plus the chargebacks: 8 customers disputed charges because cancellation took too long = $2,400 in fees.
Customer wants to upgrade plan? Same problem. They email, wait 2 days for response, credit card on file expired, more emails. Friction kills upgrades. You're losing $8,400/month in upgrade revenue because process takes 4 days and customers give up.
Odoo 18 lets customers manage subscriptions themselves from portal. Upgrade, downgrade, cancel—all self-service. No support tickets, instant changes, automatic billing adjustments. Here's how to set it up so you stop losing money to subscription friction.
You're Losing Money If:
What Odoo 18 Customer Portal Does for Subscriptions
Self-service subscription management. Customers log into portal, see their subscriptions, click button to upgrade/downgrade/cancel. Instant processing, automatic billing adjustments, no support tickets needed.
| Action | Manual Process | Self-Service Portal |
|---|---|---|
| Cancel subscription | Email support, wait 3-5 days | Click button, instant |
| Upgrade plan | Email, quote, payment (4 days avg) | Select plan, confirm (30 sec) |
| Support time per request | 22 minutes | 0 minutes |
| Chargeback risk | High (8/month) | Low (instant cancellation) |
Prerequisites
- Odoo 18 Enterprise (Subscriptions module)
- Customer portal enabled
- Recurring plans configured
- Active subscriptions assigned to customers
Step 1: Configure Self-Service Options
Tell Odoo which actions customers can perform themselves.
Access Recurring Plans
- Go to Subscriptions → Configuration → Recurring Plans
- Open existing plan (e.g., "Monthly Plan")
- Find Self-Service Options section
Enable Self-Service Features
Available Options:
- ☑ Closable: Customers can cancel subscription themselves
- ☑ Add Products: Customers can add items to existing subscription
- ☑ Renew: Customers can request renewal quotation
- ☑ Optional Plans: Customers can switch between plans (upgrade/downgrade)
- Check all 4 boxes to enable full self-service
- In Optional Plans field, add alternative plans:
- If current plan is "Monthly": Add "Quarterly" and "Yearly"
- If current plan is "Basic": Add "Pro" and "Enterprise"
- Click Save
Strategic Tip: Always offer upgrade options. If customer on Monthly, show Quarterly (save 10%) and Yearly (save 20%). Upsells happen automatically.
Step 2: Create Subscription with Self-Service Enabled
- Go to Subscriptions → New
- Select Customer
- Choose Recurring Plan (the one you just configured)
- Add subscription lines:
- Product: "SaaS Pro Plan"
- Quantity: 5 users
- Unit Price: $50/user/month
- Click Confirm
- Subscription status: "In Progress"
Step 3: Customer Portal Experience
What customers see when they log into portal.
Preview Portal View
- In subscription form, click Preview button
- See portal view as customer would see it
Portal Layout
Left Sidebar Actions:
- 🔄 Automate Payment - Set up auto-billing
- 📝 Renew - Generate renewal quotation
- ⬆️ Change Plan - Switch to different plan
- ❌ Close Subscription - Cancel subscription
- 📥 Download - Get subscription documents
Main Content Area:
- • Subscription reference number
- • Current plan details
- • Billing amount and frequency
- • Next invoice date
- • Product/service details
Use Case 1: Customer Upgrades Plan
Customer Action
- Customer logs into portal
- Sees subscription: "SaaS Pro Plan - $250/month"
- Clicks Change Plan
- Popup shows available options:
- ☐ Quarterly Plan (Save 10% - $675/quarter)
- ☐ Yearly Plan (Save 20% - $2,400/year)
- Selects Yearly Plan
- Clicks Confirm
What Happens in Odoo
- System auto-creates renewal quotation
- New quotation shows:
- Plan: Yearly (was Monthly)
- Price: $2,400/year (was $250/month)
- Pro-rated adjustment for current period
- Customer confirms quotation
- Subscription updates to Yearly plan
- Billing schedule changes to annual
Result: Upsell completed in 30 seconds. No support involvement. Customer locked in for year instead of month. Annual recurring revenue secured.
Use Case 2: Customer Cancels Subscription
Customer Action
- Customer clicks Close Subscription
- Popup appears: "Why are you canceling?"
- Dropdown options:
- Too expensive
- Not using enough
- Missing features
- Switching to competitor
- Business closed
- Other (text field)
- Customer selects reason: "Too expensive"
- Two buttons:
- Submit: Confirm cancellation
- Discard, I want to stay: Cancel the cancellation
- Clicks Submit
What Happens in Odoo
- Subscription status: "Closed"
- Cancellation reason recorded
- Billing stops immediately (or at period end, configurable)
- Customer no longer charged
- Access revoked (or at period end)
Configure Cancellation Reasons
Track why customers cancel to improve retention.
- Go to Subscriptions → Configuration → Close Reasons
- Click Create
- Add reasons relevant to your business:
- "Price too high"
- "Lack of features"
- "Competitor offers better value"
- "Technical issues"
- "No longer need service"
- Save each reason
Analyze Cancellation Data
- Go to Subscriptions → Reporting
- Filter by: Status = Closed
- Group by: Close Reason
- See breakdown:
- 47% "Too expensive"
- 23% "Missing features"
- 18% "Not using enough"
- 12% Other
If 47% cancel due to price, consider: Introduce cheaper tier, offer discounts, or improve value perception.
Retention Strategies Using Self-Service
1. Offer Downgrade Before Cancellation
Configure Optional Plans to include cheaper alternatives.
Example Structure:
- Pro Plan ($250/month) → Optional Plans: Basic ($99), Starter ($49)
- Customer about to cancel sees downgrade option
- Clicks "Change Plan" → Sees cheaper tiers
- Switches to Basic instead of canceling
- Result: Retained $99/month instead of losing $250
2. Annual Plans Reduce Churn
Always offer annual option with 20% discount. Customers who pay annually churn 67% less than monthly subscribers.
Real-World Example: SaaS Company
Scenario: 400 Active Subscribers
Before Self-Service Portal:
- Cancellations: 47/month, avg 3-5 days to process
- Support time: 22 min/request × 47 = 17.2 hours/month
- Chargebacks: 8/month @ $300 = $2,400/month
- Lost upgrades: 12 customers wanted annual but gave up = $8,400/month
- Monthly cost: $482 support + $2,400 chargebacks = $2,882
- Lost revenue: $8,400/month in abandoned upgrades
After Self-Service Portal:
- Cancellations: 38/month (9 saved via downgrade offers)
- Support time: 0 hours (fully automated)
- Chargebacks: 1/month @ $300 = $300/month (instant cancellation)
- Upgrades: 28/month completed @ avg $300 increase = $8,400/month new revenue
- Monthly cost: $300 chargebacks only
- New revenue: $8,400/month from easy upgrades
Impact: $2,582/month saved + $8,400/month new revenue = $10,982/month
Annual impact: $131,784 in savings + revenue
Common Mistakes That Hurt Retention
1. Only Offering Cancellation, No Downgrades
Customer on $250 plan sees only "Cancel." No cheaper options. They cancel.
Fix: Add Basic/Starter plans to Optional Plans. Offer downgrade before exit.
2. Not Tracking Cancellation Reasons
Customers cancel but you don't know why. Can't improve.
Fix: Configure 5-7 specific close reasons. Review monthly. Act on top 3.
3. Making It Hard to Cancel
Disabled "Closable" option. Force customers to email. They get angry, post bad reviews.
Fix: Always enable self-service cancellation. Friction creates enemies.
4. No Annual Option
Only monthly plans. High churn. No long-term commitment options.
Fix: Always offer annual with 15-20% discount. Locks in revenue, reduces churn.
Quick Implementation Checklist
- Enable all self-service options in recurring plans
- Configure Optional Plans: Offer 2-3 alternatives (upgrades + downgrades)
- Create 5-7 close reasons to track why customers cancel
- Test portal flow: Log in as customer, try changing plan + canceling
- Set up annual plans with 20% discount as optional upgrade
- Enable downgrade options to retain customers before they cancel
- Monitor retention metrics: Track churn rate before/after self-service
- Review close reasons monthly and address top 3 issues
Retention Tip: When customer clicks "Cancel," show popup: "Before you go, would you like to try our Basic plan at 60% off for 3 months?" Win-back offers save 30-40% of cancellations.
Losing $8,400 Monthly in Upgrade Revenue Because Process Takes 4 Days?
We configure Odoo subscription self-service with smart upgrade paths, downgrade retention strategies, and instant cancellation. Stop bleeding customers to friction.
