Wasting $297K on Manual Subscriptions? Close & Reopen in Odoo 18
By Braincuber Team
Published on December 23, 2025
SaaS company has 1,247 subscription customers. Customer #487 calls: "Cancel my subscription." Support rep manually changes subscription status in database. Forgets to stop auto-billing. Customer charged $147 next month. Dispute. Refund. Chargeback fee: $25. Customer #723: "I paused service 3 months ago, want to restart." Support searches database. No record of paused subscription (rep deleted it instead of closing). Creates new subscription. Loses historical data (original start date, lifetime revenue, payment history). Customer #892 cancels due to billing issue. Issue resolved 2 weeks later. Customer wants to restart. Support: "Create new account." Customer: "But I lose my settings, preferences, history?" Support: "Yes, sorry." Customer switches to competitor. Lost customer = $1,764 lifetime value. Happens 47 times yearly. Manual subscription management = 847 hours yearly (finding records, updating databases, handling disputes). Annual cost: $127K support time + $87K billing disputes + $82,908 lost customers (47 × $1,764) = $296,908 subscription chaos.
Odoo 18 Subscriptions fixes this: Close subscription = one-click (customer or admin). Select close reason (Contract ended, Customer request, Billing issue, Service pause). Auto-stops billing (no manual database edits). Preserves all data (history, settings, revenue tracking). Reopen subscription = one-click (restores everything). Customer self-service (customer portal lets them close/reopen). No new subscription needed (same record, continuous history). Close reasons tracked (analytics: why customers leave). Here's how to close and reopen subscriptions in Odoo 18 so you stop losing $297K annually to manual subscription chaos.
You're Losing Money If:
What Subscription Close/Reopen Does
Flexible subscription lifecycle: Close subscription (stop billing, preserve data) → Select reason (analytics) → Customer can reopen (restore service instantly) → No data loss, no new account needed.
Step 1: Enable Subscription Closing
- Go to Subscriptions → Configuration → Recurring Plans
- Select existing recurring plan or create new
- In Self-Service section, enable Closable option
- This allows:
- Customers to close subscriptions via customer portal
- Admins to close subscriptions from backend
- Billing to auto-stop when closed
- Save recurring plan
Step 2: Create Close Reasons
- Go to Subscriptions → Configuration → Close Reasons
- Click New
- Configure close reason:
- Reason: Name of close reason
- "Contract Ended"
- "Customer Request"
- "Billing Issue"
- "Service Pause (Temporary)"
- "Price Too High"
- "Switching to Competitor"
- "Technical Issues"
- Message: Optional message shown to customer
- "Sorry to see you go! We'd love to have you back."
- "Your account is paused. Reactivate anytime from your portal."
- Button Text: Call-to-action button text (e.g., "Reactivate Now")
- Button Link: URL for CTA (e.g., customer portal reopen link)
- Reason: Name of close reason
- Save close reason
- Repeat to create multiple close reasons (for analytics)
Example Close Reasons
Reason: Service Pause (Temporary)
Message: "Your subscription is paused. No charges will occur. Reactivate anytime from your account dashboard."
Button Text: "Reactivate Subscription"
Button Link: https://yoursite.com/my/subscriptions
Reason: Price Too High
Message: "We're sorry to lose you. Check out our new pricing plans with discounts."
Button Text: "View Discount Offers"
Button Link: https://yoursite.com/pricing
Step 3: Close a Subscription (Admin)
- Go to Subscriptions → Subscriptions
- Select subscription to close (or create new for testing)
- Subscription must be in one of these stages:
- In Progress
- Waiting Customer Payment
- Click Close button (top of form)
- Popup appears:
- Select Reason from dropdown (created in Step 2)
- Optionally add internal notes
- Click Submit
- Subscription status changes to Closed
- Effects:
- Billing auto-stopped (no future invoices)
- Subscription appears in "Closed" stage
- All historical data preserved (orders, invoices, payments)
- Close reason tracked (for analytics)
Step 4: Close a Subscription (Customer Self-Service)
- Customer logs into Customer Portal
- Goes to My Account → Subscriptions
- Selects active subscription
- Clicks Close Subscription button
- Selects close reason from dropdown
- Confirms closure
- Subscription immediately closed (billing stopped)
- Customer sees confirmation message (configured in close reason)
Step 5: Reopen a Closed Subscription
- Go to Subscriptions → Subscriptions
- Filter to show Closed subscriptions
- Select closed subscription to reopen
- Click Reopen button
- Subscription status changes back to In Progress
- Effects:
- Billing resumes (next invoice generated on schedule)
- All settings, preferences, history preserved
- No new subscription created (same record continues)
- Customer portal access restored
- Original start date maintained (lifetime value tracking accurate)
Step 6: Customer Self-Service Reopen
- Customer receives email with reopen link (from close reason config)
- Or customer logs into portal → Closed Subscriptions
- Clicks Reactivate or Reopen
- Subscription instantly reactivated
- Customer continues service (no setup, no data loss)
Subscription Lifecycle States
| State | Description | Billing |
|---|---|---|
| Draft | Subscription created, not confirmed | No billing |
| In Progress | Active subscription, service running | Billing active |
| Waiting Payment | Invoice sent, awaiting payment | Invoice pending |
| Closed | Subscription closed (temporarily or permanently) | Billing stopped |
Why Close Reasons Matter
Close reasons provide critical business intelligence:
- Churn Analytics: Track why customers leave
- "Price Too High" = 37% of closures → Consider pricing adjustment
- "Technical Issues" = 12% → Improve product quality
- "Service Pause" = 23% → High reopen rate (win-back opportunity)
- Win-Back Campaigns: Target closed subscriptions by reason
- "Price Too High" → Send discount offer
- "Service Pause" → Remind after 30 days
- Product Improvements: Fix issues causing churn
- Revenue Recovery: Reopen rate tracked per reason
Real-World Use Cases
Temporary Service Pause
- Customer going on vacation (3 months)
- Closes subscription with reason "Service Pause"
- No charges for 3 months
- Returns from vacation → Reopens subscription
- All settings, history preserved
- Customer happy (didn't pay for unused service)
Billing Issue Resolution
- Credit card declined (expired)
- Customer closes subscription (reason: "Billing Issue")
- Customer updates payment method
- Reopens subscription within 5 minutes
- Service continues (no interruption)
Win-Back Campaign
- Customer closes (reason: "Price Too High")
- Marketing runs campaign after 30 days: "20% discount for returning customers"
- Customer clicks reopen link from email
- Subscription reactivated with discount applied
- Revenue recovered
Real-World Impact
SaaS Company Example:
Before Odoo: 1,247 subscriptions. Manual cancellations: 847 hrs yearly. Billing disputes (forgot to stop): $87K. Lost customers (can't reopen): 47 × $1,764 = $82,908. Support time: $127K. Total: $297K yearly.
After Odoo Subscriptions: One-click close/reopen. Auto-stop billing. Disputes: $87K → $3K (97% reduction). Lost customers: 47 → 8 (83% reduction, reopen feature = win-back). Support time: 847 hrs → 47 hrs (94% reduction). Close reasons analytics: Discovered 37% left due to price → Introduced tiered pricing → Churn reduced 23%.
Total Year 1 impact: $284,000 (saved $297K costs - $13K new tiered pricing setup)
Pro Tip: SaaS company had 1,247 subscriptions. Customer called: "Cancel subscription." Support manually updated database. Forgot to stop auto-billing. Customer charged next month. Dispute. Refund + $25 chargeback. Another customer: "Paused 3 months ago, want to restart." Support couldn't find record (rep deleted instead of closing). Created new subscription. Lost all history (original start date, lifetime revenue). Customer frustrated. Another customer canceled due to billing issue. Resolved 2 weeks later. Support: "Create new account to restart." Customer: "Lose my settings?" Switched to competitor. $1,764 lifetime value lost. Happened 47 times yearly = $82,908. Manual work: 847 hrs. Switched to Odoo: Close subscription = one-click. Select reason (Contract ended, Billing issue, Service pause). Billing auto-stops. Data preserved. Reopen = one-click. Customer portal self-service. Close reasons tracked: 37% left for price (introduced tiered pricing). Billing disputes: $87K → $3K. Lost customers: 47 → 8 (reopen feature = 83% win-back). Support: 847 hrs → 47 hrs. CFO: "We've been losing $297K managing subscriptions manually when Odoo does it automatically." ROI: $284K Year 1.
FAQs
Wasting $297K on Manual Subscription Management?
We configure Odoo 18 Subscriptions: close/reopen workflows, customer self-service, close reason analytics, automated billing control. Turn 847 hours into 47 hours yearly. Stop billing disputes and lost customers.
