Mango CS App Overview
The installed-base side of the MangoApps revenue stack — onboarding, renewals, expansion, and account health on the same Crm::Account record that Mango GTM closes.
What is the Mango CS App?
Mango CS is the post-close customer success surface for the MangoApps revenue stack. Accounts handed off from Mango GTM at closed-won flow through onboarding (Implementation Projects), adoption, renewal, and expansion in a single app. CSMs work a unified book — health snapshots refresh nightly, renewals surface in 90/60/30-day windows, and an Ask AI agent answers natural-language questions like “which accounts are at risk?” without leaving the app.
Core Value Proposition:
- 🎯 No Cold Handoffs — A handoff checklist must be completed by the AE before an account enters the CSM’s queue, capturing promised outcomes, champion, pain points, implementation scope, and special terms.
- ❤️🩹 Composite Health Score — A 0–100 score per account computed nightly from usage, support, sentiment, and contract-risk signals — denormalized onto the account row so dashboards stay fast.
- 🔄 Renewal Pipeline — Subscriptions renewing in the next 90 days are bucketed into On Track / At Risk / Expanding / Churning, with a one-click “Generate Renewal Proposal” that reuses the Mango GTM proposal pipeline.
- 🤖 Read-Only AI Agent — Eight tools for the CS team: at-risk accounts, upcoming renewals, pending handoffs, expansion candidates, full health breakdown, my accounts, active onboarding, pipeline summary.
At a Glance
| 🔌 Integrations | 🤖 AI Agent | 📱 Mobile Ready | 🏷️ Availability |
|---|---|---|---|
| Mango GTM · Billing · Contracts · Implementation Hub | ✅ Read-only | ✅ Yes | Internal (MangoApps-licensed) |
Perfect For:
- 👥 Customer Success Managers — Open Monday morning, see at-risk accounts, pending handoffs, and 60-day renewal queue on one dashboard.
- 🤝 Account Executives — Complete the handoff checklist on closed-won deals so the CSM inherits full context.
- 📊 CS Leadership / Admins — Analytics view with health distribution, churn count, current-book ARR, and renewal pipeline by stage.
How It Works
Closed-Won → CSM Lifecycle
┌──────────────────────────────────────────────────────────────────────────────┐
│ MANGO CS LIFECYCLE │
├──────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
│ │ MANGO GTM │──────▶│ HANDOFF │──────▶│ ONBOARDING │ │
│ │ Proposal │ │ CHECKLIST │ │ (Impl. │ │
│ │ Won │ │ (AE fills) │ │ Project) │ │
│ └────────────┘ └─────┬──────┘ └─────┬──────┘ │
│ │ │ │
│ │ mark_complete! │ stage = live │
│ ▼ ▼ │
│ ┌──────────────────────────────────┐ │
│ │ ACTIVE BOOK (CSM-owned) │ │
│ │ Daily HealthSnapshot 0–100 │ │
│ └────────────────┬─────────────────┘ │
│ │ │
│ ┌────────────────────────────┼────────────────────────────┐ │
│ ▼ ▼ ▼ │
│ ┌────────────┐ ┌────────────────┐ ┌──────────────┐ │
│ │ RENEWAL │ │ EXPANSION │ │ AT-RISK │ │
│ │ PIPELINE │ │ SIGNALS │ │ / SAVE PLAY │ │
│ │ 90/60/30d │ │ (healthy + │ │ (health<50) │ │
│ │ │ │ renewing, │ │ │ │
│ │ │ │ dormant │ │ │ │
│ │ │ │ champion) │ │ │ │
│ └─────┬──────┘ └────────┬───────┘ └──────┬───────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ RENEWAL PROPOSAL (uplift %) → MANGO GTM SEND FLOW │ │
│ └──────────────────────────────────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────────────────┘
Integration Ecosystem
┌─────────────────┐
│ MANGO CS │
└────────┬────────┘
│
┌──────────────┬───────────────┼───────────────┬──────────────┐
▼ ▼ ▼ ▼ ▼
┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐
│ Mango GTM │ │ Billing │ │ Contracts │ │ Impl. │ │ Ask AI │
│ (Crm:: │ │ (Bundle │ │ (renewal │ │ Hub │ │ (CS agent │
│ Account, │ │ Sub, Cust,│ │ activity, │ │ (Project, │ │ read- │
│ Proposal) │ │ Proposal) │ │ docs) │ │ Milestone)│ │ only) │
└───────────┘ └───────────┘ └───────────┘ └───────────┘ └───────────┘
Key Features
🏢 Shared CRM Account Model
Crm::Account is the single source of truth for the customer record — the same row Mango GTM closes a deal against and Mango CS works post-close.
| Feature | Description |
|---|---|
| Lifecycle stages | prospect → onboarding → active → renewal → expanding / at_risk / churned |
| Account links | Originating DemoRequest + closing Billing::Proposal + active Billing::BundleSubscription |
| Contacts | Per-account contacts with champion and detractor boolean flags that feed health scoring |
| Activity timeline | Emails, calls, meetings, notes, and system events (handoff initiated, renewal reminder sent) on one feed |
| CSV import / export | Bulk import accounts via the in-app uploader (/apps/mango-cs/accounts/import) with a preview-then-commit flow |
💡 Pro Tip: Tag every key contact with the right role flag — the health score’s support and sentiment components weight champions at +20 and detractors at –25 each, so getting these right materially moves the score.
🤝 AE → CSM Handoff Checklist
One handoff checklist per account. Created in pending state automatically when a Mango GTM proposal is marked won (via MangoCs::AccountHandoffService). The AE fills in three required fields before they can mark it complete:
| Required Field | Purpose |
|---|---|
| Promised outcomes | What the AE committed the customer would achieve |
| Pain points | The original problems driving the purchase |
| Implementation scope | What’s in / out of the initial deployment |
Optional captured context: champion contact, special terms. The view surfaces missing_required_fields so the AE knows exactly what’s left before mark_complete! is allowed.
💡 Pro Tip: The
pending_handoffscount is exposed on the dashboard and via the AI agent. Make pending handoff zero-out part of the AE close-out routine.
🔄 Renewal Pipeline
CSM-facing pipeline over the installed base. Every Billing::BundleSubscription linked to a Crm::Account whose current_period_end falls inside the lookahead window is pulled in, classified, and sorted by days-to-renewal ascending.
| Window | Purpose |
|---|---|
| 30 days | Final-stretch list — closing the renewal in the current cycle |
| 60 days | Active outreach — proposal review, uplift conversation |
| 90 days (default) | Quarter view — primary CSM working set |
Stage classification (auto):
- 🟢 On Track — In window, no risk signals
- 🟡 At Risk —
past_duepayment, account flagged at_risk, OR health score < 50 - 🟢 Expanding — Account stage is
expanding(open expansion opportunity) - 🔴 Churning — Subscription cancelled, account churned, OR cancel-at-period-end set within the window
One-click renewal proposal: From the pipeline, “Generate Renewal Proposal” creates a draft Billing::Proposal with the configured uplift % applied, then redirects the CSM to the Mango GTM proposal edit page so they can refine and send through the existing flow. Same contract pipeline, two entry points.
CSV export mirrors the on-screen filter (window + stage).
💡 Pro Tip: The default uplift is 5% and the reminder cadence is 90/60/30/14 days — both are configurable in Settings (
renewal_uplift_percentage,renewal_reminder_days).
❤️🩹 Composite Health Score
A 0–100 score per non-churned account, refreshed nightly by MangoCs::HealthSnapshotJob (07:30 UTC) and denormalized onto accounts.health_score so the dashboard, at-risk queries, and renewal classification don’t need to cross-join the snapshots table.
Component breakdown (weighted average of non-nil components):
| Component | Weight | What It Measures |
|---|---|---|
| Usage | 35% | Days since last activity. ≤ 7 days = 100, ≥ 60 days = 0, linear in between |
| Support | 15% | Champion vs. detractor ratio on contacts. +20 per champion, –25 per detractor, clamped 0–100 |
| Sentiment | 15% | Champion / (champion + detractor) ratio. Same inputs as Support today; separate column so NPS / CSAT can land later without a schema change |
| Contract risk | 35% | Days until current subscription period end. ≥ 180 = 100, ≤ 0 = 0, ≤ 30 days = 20 |
MangoCs::HealthSnapshot rows are unique per (account, snapshot_date) so re-runs in the same day update rather than duplicate. The breakdown JSONB stores the raw inputs (last activity, champion count, detractor count, billing customer link) for debugging.
💡 Pro Tip: A new account with no activity yet still gets a neutral score (50) instead of an error or null — components that have nothing to score are dropped, and the weighted average uses only the components that ran.
📈 Expansion Signals
MangoCs::ExpansionSignalDetector returns a relation of Crm::Account rows showing expansion potential. Two signals OR’d together:
| Signal | Logic | Why |
|---|---|---|
| Expansion-ready renewal | health_score >= 75 AND a subscription renewing 30–90 days out |
High-health accounts near renewal often accept uplift |
| Dormant champion | At least one contact flagged champion AND no activity in 30+ days |
Champions go quiet when disengaged or about to leave — either way a touchpoint is due |
The detector returns a relation (not an array) so the dashboard counts it cheaply and the agent paginates the top candidates.
🚀 Implementation Projects (Onboarding)
Implementation Projects ported from the legacy sysadmin Implementation Hub, surfaced inside Mango CS as the onboarding workflow. Tenant-scoped to the GTM business running Mango CS.
| Capability | Notes |
|---|---|
| Milestones, items, comments | Nested resource tree under each project |
| Updates feed | Updates with toggle reactions on each post |
| Stage / health updates | update_stage, update_health member endpoints |
| Customer portal toggle | Project-level toggle to expose the project to the customer |
| Form assignments | Clone form templates into a project, edit questions, publish, mark reviewed |
| Documents | Upload and remove project documents |
| Welcome / Go-live / Feedback emails | Triggered as POST member actions on the project |
| Sample data import | One-click import sample milestones for testing |
The portfolio view (/apps/mango-cs/implementation_projects/portfolio) gives leadership a roll-up across all active projects.
🔔 Renewal Reminder Automation
MangoCs::RenewalReminderJob runs daily at 08:00 UTC. For every Mango CS-enabled tenant with renewals_enabled on, it walks the configured threshold list (default [90, 60, 30, 14] days) and emails the CSM (or AE if no CSM) for each subscription renewing exactly that many days from today.
Reliability and respect for preferences:
- Idempotent per (subscription, threshold) via a
Crm::Activitysystem_eventwithmetadata.event = 'renewal_reminder_sent'— single-day re-runs and post-outage backfills don’t double-send. - Honors notification preferences via
NotificationSettingsIntegrationService(businesscategory,emailchannel,renewal_remindertype). Skips silently and does not log the activity, so the next eligible threshold can still fire. - Sentry monitor check-ins on the cron itself, so a missed run is observable.
🤖 Mango CS Agent (Ask AI)
Read-only LLM-with-tools agent surfaced inside Ask AI. All eight tools are thin wrappers around canonical services — never duplicates business logic.
| Tool | What It Returns |
|---|---|
| list_at_risk_accounts | Health score < 50 OR stage = at_risk, sorted by score ascending |
| list_upcoming_renewals | Pipeline entries in a 30/60/90-day window with stage and days-to-renewal |
| list_pending_handoffs | Pending handoffs with the missing required fields per checklist |
| list_expansion_candidates | Healthy + renewing OR dormant-champion accounts |
| get_account_health | Full breakdown for one account — components, weights, raw inputs |
| list_active_onboarding | Onboarding projects not yet live or closed |
| list_my_accounts | Accounts assigned to the current CSM |
| get_renewal_pipeline_summary | Counts by stage in the renewal window |
State changes happen in the app, not via the agent — the agent points the user to /apps/mango-cs for actions like assigning a CSM, marking a handoff complete, or drafting a renewal proposal.
📊 Analytics (Admin Only)
The Analytics tab is gated to admin users (CSMs work the main dashboard). MangoCs::AnalyticsService powers it with a configurable window of 30 / 60 / 90 / 180 / 365 days.
| Metric | Definition |
|---|---|
| Account totals | Total / active / churned counts |
| Health distribution | Bucket counts: Healthy (75+), OK (50–74), At Risk (25–49), Critical (<25), Unknown (no snapshot yet) |
| Churn | Accounts moved to churned in the window + churn rate % |
| Current-book ARR | Sum of monthly_equivalent_price × 12 × quantity across active + trial subscriptions |
| Stage distribution | Account count by lifecycle stage |
| Renewal pipeline | Stage counts (on_track / at_risk / expanding / churning) over the window (capped at 90 days) |
| Onboarding stage distribution | Active implementation projects grouped by stage |
💡 Pro Tip: NRR / GRR / time-to-renewal are intentionally not computed yet — they require historical MRR snapshots, and computing them point-in-time produces misleading numbers. The current set is everything that can be computed honestly today.
🔗 Integrations
| Integration | Capability |
|---|---|
| Mango GTM | Shared Crm::Account; closed-won proposals trigger AccountHandoffService to create the account + pending handoff. Renewal proposals open in the Mango GTM proposal editor. |
| Billing | Billing::BundleSubscription drives the renewal pipeline; Billing::Proposal is the renewal quote artifact; Billing::Customer is the join key from accounts to subscriptions. |
| Contracts | Renewal reminders log a Crm::Activity system event on the account timeline; the renewal proposal flows into the existing Order Form / e-sign pipeline. |
| Implementation Hub | ImplementationHub::Project is the onboarding model — same data, surfaced inside Mango CS instead of sysadmin. |
| Ask AI | MangoCsAgent registered as a domain agent; surfaces in the global Ask AI sidebar. |
User Roles & Permissions
| Role | Capabilities |
|---|---|
| Member | Not in the default allowed-roles list — disabled out of the box. |
| Manager | Full app access by default — accounts, contacts, activities, handoff checklist, renewal pipeline, implementation projects. |
| Admin / Super Admin | All Manager capabilities plus Settings (feature toggles, uplift %, reminder cadence) and Analytics. |
The allowed-roles list is configurable per business in Settings.
How We Compare
Mango CS targets the post-close motion — onboarding, adoption, renewals, expansion, and account health. It overlaps with dedicated customer success platforms but with a sharper integration into the same revenue stack that closed the deal:
| Capability | MangoApps Mango CS | Standalone CS Platforms (Gainsight, ChurnZero, Totango, Catalyst) |
|---|---|---|
| Composite account health score | ✅ | ✅ |
| AE → CSM handoff enforcement | ✅ | ⚡ Varies |
| Renewal pipeline (90/60/30 windows) | ✅ | ✅ |
| One-click renewal proposal → e-sign | ✅ Native | ❌ Requires CRM/CPQ stack |
| Onboarding (Implementation Projects) | ✅ Built-in | 💰 Add-on or separate tool |
| Read-only natural-language CS agent | ✅ | ⚡ Varies |
| Shared CRM account record with the GTM motion | ✅ | ❌ Separate system, sync jobs |
| Tenant-isolated / multi-business | ✅ | ⚡ Varies |
| Legend: ✅ Included | ❌ Not Available | 💰 Paid Add-on | ⚡ Limited / Varies |
Why MangoApps Workforce?
- 🔗 One Customer Record, Pre- and Post-Close — Mango GTM and Mango CS share
Crm::Account. No CRM-to-CS sync job, no drift between the deal that closed and the customer being managed. - 🔄 One Contract Pipeline — Renewal proposals reuse the Mango GTM proposal editor, Order Form generator, and native e-sign. New-business and renewals run on the same rails.
- 🤖 AI Agent Built on Canonical Services —
MangoCsAgentcallsRenewalPipelineService,HealthScoreCalculator, andExpansionSignalDetectordirectly. Numbers in the agent always match numbers in the app.
Getting Started
For Account Executives
- When a Mango GTM proposal is marked won, open the new Mango CS account from your dashboard.
- Fill in the handoff checklist: promised outcomes, pain points, implementation scope. Add the champion contact and any special terms.
- Click Mark Complete — the account moves into the CSM’s queue.
For Customer Success Managers
- Open
/apps/mango-cs— the dashboard surfaces at-risk accounts, pending handoffs, 90-day renewals, active onboarding, and expansion candidates. - Click into the Renewals tab; filter by stage (On Track / At Risk / Expanding / Churning) or by 30/60/90-day window.
- Use Ask AI for “which accounts renew in the next 60 days?” or “what changed on Acme this week?”.
- Generate a renewal proposal directly from the pipeline — review and send through the Mango GTM proposal flow.
For Administrators
- Enable the app under Apps Marketplace → Mango CS.
- Open Settings to toggle features (handoff, renewals, expansion, health score, implementation projects, agent), set the default uplift %, and configure the reminder cadence.
- Use Generate Sample Data to seed accounts and projects for training; Destroy Sample Data removes it cleanly.
- Review the Analytics tab for health distribution, churn, current-book ARR, and pipeline stage rollups.
Best Practices
- ✅ Make handoff completion an AE close-out ritual. A pending handoff means the CSM inherits an account without context. Track
pending_handoffscount to zero each week. - ✅ Tag champions and detractors honestly. They drive the support and sentiment health components — guessing here makes the score lie.
- ✅ Review the at-risk list every Monday. Sort by health score ascending; the lowest-scoring accounts are your save-play candidates.
- ✅ Start the renewal conversation at 90 days, not 30. The reminder cadence default is 90/60/30/14 — the early reminders exist to catch problems while there’s still time to fix them.
- ✅ Tune renewal uplift % in Settings to match your pricing strategy. The default 5% is a starting point, not a mandate.
Frequently Asked Questions
Q: How is Mango CS different from Mango GTM?
A: Mango GTM owns the pre-close motion — prospecting, demos, proposals, contracts. Mango CS owns everything after close — onboarding, adoption, renewals, expansion. They share the Crm::Account record so the handoff is clean and there’s no CRM-to-CS sync to maintain.
Q: Do I need Mango GTM to run Mango CS?
A: No. Mango CS can manage customers imported from any source — there’s a CSV import flow on the Accounts list. The Mango GTM integration adds the closed-won-triggered handoff workflow and the demo-request → account bridge, but is not required.
Q: Where do Implementation Projects live?
A: Implementation Projects moved from the legacy sysadmin Implementation Hub into Mango CS as the onboarding module. The data model is the same (ImplementationHub::Project); the UI is rep-facing inside the app instead of admin-facing in sysadmin.
Q: How does the renewal quote get generated?
A: From the Renewals tab, “Generate Renewal Proposal” creates a draft Billing::Proposal with the configured uplift % applied. The CSM is redirected to the Mango GTM proposal edit page where they can refine the quote and push it through the existing send + e-sign flow. One contract pipeline, two entry points.
Q: What drives the health score?
A: A weighted composite of usage (35%), support (15%), sentiment (15%), and contract risk (35%). Inputs are last-activity-date, champion / detractor counts on contacts, and days-to-renewal on the linked subscription. The score is recomputed nightly by HealthSnapshotJob and persisted on the account row for fast dashboard reads.
Q: Can the AI agent change anything?
A: No. All eight tools on the Mango CS agent are read-only by design. State changes — assigning a CSM, marking a handoff complete, drafting a renewal proposal — happen in the app surface so they’re auditable and consistent. The agent will point you to the right path.
Related Resources
- Mango IQ — GTM intelligence layer; shares the broader revenue-stack context.
- Implementation Hub — The original onboarding surface; Implementation Projects are now embedded inside Mango CS.
- Contracts — Renewal proposals and Order Forms flow through the Contracts pipeline.
- E-Signature — Native e-sign for renewal Order Forms.
- Apps Overview — Browse the full MangoApps marketplace.
The post-close motion, on the same record that closed the deal.