WITHMIA v1.0.9 — Business differentiation + AI analytics
Real differentiation between the Pro/Business/Enterprise plans in the frontend. An AI usage dashboard exclusive to Business+, CSV export of metrics, plan badges and the API channel enabled for Business.
WITHMIA Team
WITHMIA
Note (July 2026): the Business and Enterprise plans are now called Team and Max. Prices are unchanged.
v1.0.8 closed the enforcement gaps across every endpoint. v1.0.9 tackles the next problem: there was no visible differentiation between plans in the frontend. A Business customer paying $44.990 CLP/month saw exactly the same thing as a Pro customer paying $24.990 CLP.
The problem: a binary frontend
Up to v1.0.8, the frontend only knew the difference between “has a subscription” (isPro = true) and “doesn’t” (isPro = false). There was nothing to visibly separate a Pro, Business or Enterprise user:
- No plan badge in the sidebar
- No metrics exclusive to the higher tiers
- No data export
- The API channel was advertised on the landing page but missing from
billing.phpfor Business
What did that mean?
That the Business plan didn’t justify its price. A customer paying twice as much as Pro got no extra visible value inside the platform.
The fix: tier detection and gated features
planLevel: knowing exactly which plan is active
The binary isPro was replaced with a four-level system:
const planLevel = useMemo(() => {
if (isSuperAdminResolved) return 'enterprise';
if (!isPro) return 'free';
const name = (planInfo?.name || '').toLowerCase();
if (name.includes('enterprise')) return 'enterprise';
if (name.includes('business')) return 'business';
return 'pro';
}, [isSuperAdminResolved, isPro, planInfo?.name]);
const isBusinessPlus = planLevel === 'business' || planLevel === 'enterprise';
Every component can now gate features by the exact tier.
Plan badges in the sidebar
Business users see a violet badge with a Building2 icon, and Enterprise users a purple one with a Crown, right next to the version number in the sidebar. Pro and Free users see no badge (their plan is already implicit).
AI usage dashboard: Business+ only
The Artificial Intelligence section only appears for Business and Enterprise users. It queries /api/subscription/usage and shows four live cards:
| Card | What it shows |
|---|---|
| AI messages | Progress bar with dynamic colors (green → amber → red by percentage), plus messages left in the allowance |
| Tokens used | Total in K, broken down into input/output |
| Estimated AI cost | In USD, for the current billing period |
| Overages | Overage packs used + cost in CLP, or “Within plan” when there are none |
Progress bar colors
- Green (
< 70%): normal usage - Amber (
70-90%): heavy consumption warning - Red (
> 90%): close to the limit
Upsell for Pro
Pro users don’t see the AI section, but they do get a banner with a Crown icon inviting them to move up to Business and unlock advanced analytics, token tracking, estimated costs and CSV export.
CSV export of metrics
Business+ users can export every dashboard metric with one click on the “Export CSV” button (violet). The file includes:
- Overview: total/open/resolved conversations, messages, average response time
- AI usage: messages used/allowance, percentage, input/output tokens, estimated cost in USD
- Sales: total revenue, orders, conversion rate
- Top 10 contacts by message volume
The button is gated by plan:
- Business+ → working violet “Export CSV” button
- Pro → greyed-out “Export” indicator with a padlock
- Free → hidden
API channel enabled for Business
We spotted an inconsistency: both the landing page and SubscriptionPage promised “All channels + API” for Business, yet the 'api' channel wasn’t in the Business plan’s channel array in billing.php.
// Before
'business' => ['whatsapp', 'instagram', 'facebook', 'email', 'web'],
// Now
'business' => ['whatsapp', 'instagram', 'facebook', 'email', 'web', 'api'],
PlanEnforcementService.canUseChannel() now grants API access to Business and Enterprise.
Enterprise plan audit
We audited the Enterprise plan ($149.990 CLP/month) across every layer of the system:
✅ Well aligned (95%)
- billing.php: $149.990 CLP/month, 25,000 AI messages, 10 seats included, unlimited docs/workflows, 5 AI models
- PlanEnforcementService: the
-1value (unlimited) works correctly for documents and workflows - AiUsageService: smart model routing with GPT-4o + Claude Sonnet, overage billing active
- Frontend:
planLevel='enterprise', purple badge,isBusinessPlusincludes Enterprise - SubscriptionPage + Pricing.tsx: correct pricing, 8 features listed, “Contact sales” as the CTA
🔄 Roadmap gaps (Q2-Q3 2026)
The following items are described on the landing/subscription pages but aren’t implemented as features yet:
- Fine-tuning of AI models
- Custom channels (only 6 hardcoded channels)
- Dedicated CSM (label only, no assignment workflow)
- API keys management UI
- SLA monitoring and status page
These are development work, not configuration errors. They’ll ship in upcoming sprints.
Technical summary
Files changed
Backend:
config/billing.php—'api'added to the Business channel array
APP frontend:
resources/js/pages/MainDashboard.tsx—planLeveldetection,isBusinessPlus, plan badges,planLevelprop passed to MetricsDashboard, version 1.0.9resources/js/components/MetricsDashboard.tsx—AiUsageDatainterface,aiUsage+exportingCsvstate, fetch from/api/subscription/usage,handleExportCsvfunction, export button with gating, “Artificial Intelligence” section (4 cards), upsell banner for Pro
Landing page (WEBPAGE):
- v1.0.9 blog post
- DocumentationPage.tsx — v1.0.9 changelog
v1.0.9 turns the Business plan from an invisible upgrade into a differentiated experience with exclusive metrics, data export and visibility into AI consumption. The Enterprise plan comes out audited and ready to sell, with 95% of its configuration already correct.
Labels
Comments
Be respectful. Your email will not be published.