How a connected quote-to-cash surface was rebuilt across Salesforce, Zuora CPQx, custom billing, and the renewal pipeline — with research, design, and engineering running on one sequence.
Zuora's own quote-to-cash lived across half a dozen connected surfaces — Salesforce for pre-sales, Clari for forecasting, Zuora CPQx for quoting, S-Docs for order forms, custom billing for Netflix-class subscriptions, and a renewal path that mostly lived in Google Sheets. The Account Executive sitting in the middle had to hold all of it in their head.
The program that followed rebuilt the Quote Record Page as a single source of truth, rationalized the approval surface, collapsed the bundle-configuration workflow into a Lightning Web Component, and set a clear rule for where behavior ships as configuration and where it ships as code. Forty-plus tickets moved through the pipeline. The inside view of that program is the rest of this document.
A subscription business runs on six connected systems, and the design of how those systems hand off to each other is — in practical terms — the product.
For the Zuora program, that meant Salesforce at the pre-sales end (with Clari layered for forecasting), Salesforce CPQ for the Quote Line Editor, custom Zuora billing for the usage-heavy subscriptions the company sells to names like Netflix and the New York Times, and a renewal pipeline that — before the program — was still half Google Sheets.
The engagement took that pipeline end-to-end, redesigned the Quote surface the Account Executive lives inside, rationalized the approval flow, consolidated bundle configuration into a stateful Lightning Web Component, and drew a clear line between what ships as configuration and what ships as code. The results are documented in Parts 3, 4, and 5.
The Quote Record Page became the single source of truth for every role that touches a deal. Approval history surfaces on the Quote itself. The Quote Lines table renders live pricing with end-date conditions inline. The Sidebar LWC replaced a stack of modal escapes. Custom Zuora APIs surfaced report data on the Salesforce tray page. S-Docs templates were rewritten to fix white-space and clause-formatting defects on signed order forms.
A month of conversations with seven Account Executives — running new-business, expansion, and renewal motions — surfaced eight themes. None of them read as taste disagreements. They were structural.
Salesforce and data-integrity gaps distorted everything upstream. AEs described outreach effort spent cleaning records, ambiguity after acquisitions, and trust problems with the SFDC hierarchy itself. Opportunity management was a second full-time job — cloning quotes, swapping products, amending subscriptions, running approval traffic. The deal desk absorbed work that should have been self-service, which stretched cycle times for everyone. Order-to-quote discrepancies meant the quote an AE showed a customer wasn't always what the order form generated. Financial modeling for complex usage deals had no first-party tool, so it lived in Google Sheets and — in at least one account — a phone calculator.
None of that shows up as one failing feature. It shows up as the pipeline taking longer than it should, every time.
Salesforce carried pre-sales. Clari layered on for forecasting. Salesforce CPQ handled quoting, including the out-of-box Quote Line Editor and the bundle-configuration path. S-Docs generated the order form and clause set from the Quote. Zuora Billing picked up the subscription at order activation — including the custom billing models Zuora itself had built for Netflix-class usage deals. Renewal was a mix of automated uplift and manual negotiation, stitched together in spreadsheets the sales team updated by hand.
The job was not to rip any of that out. It was to make the pipeline legible to the AE running inside it — and to the deal desk, renewal specialist, and billing-ops team handing off on either side.
Three months of workshops and research captured a specific picture of the then-current state. The case was not anecdotal.
The three-day design-thinking workshop — held in November 2023 in Redwood City — surfaced more than three hundred raw observations, consolidated to one hundred and seventy-six classified issues across Process, System, and Data.
Six themes carried the weight. Each came with a concrete recommendation that shaped scope.
Plain definitions for the Zuora terms used in this document.
| Term | What it means |
|---|---|
| CPQx | Zuora's newer CPQ product. A managed package on Salesforce. Add-on for Zuora Billing. |
| Zuora 360 | One-way synchronization layer from Zuora Billing into Salesforce. Syncs Accounts, Contacts, Products, and Subscriptions. Not bidirectional. |
| Z-Quote | The Quote object and Salesforce package provided by Zuora CPQ. |
| QLE | Quote Line Editor. Where line-item pricing and rate-plan configuration happens on a Quote. |
| O2O | Opportunity-to-Order. Zuora's internal Copado ticket namespace (for example). |
| LWC | Lightning Web Component. The modern Salesforce UI framework for custom components. |
| S-Docs | Salesforce document-generation add-on. Used for the Order Form and clause templates. |
| Copado | Zuora's release pipeline for deploying Salesforce code and configuration to production. |
The design half started in a three-day workshop, moved to a service blueprint, then to screens a working AE could load at four in the afternoon on the last day of the quarter. Principles came out of the work, not the other way around.
Four statements, each one testable during a screen review.
Research ran in two phases. A structured group workshop with roughly twenty cross-functional Zuora stakeholders opened the engagement. Seven one-on-one interviews with Account Managers across territories and motions followed. The two outputs — a classified pain-point library and a set of insight themes anchored in day-in-the-life evidence — carried every downstream design decision.
Three days on-site in Redwood City, November 2023. Stakeholders across Corporate Operations, Sales Operations, Pricing and Packaging, Revenue Operations, Deal Desk and Billing, Revenue Accounting, and Product. A walk-the-wall exercise on Day 3 surfaced pain points. Output: more than 300 raw pain points, consolidated to 176 classified issues.
Seven Account Managers across diverse sales territories, November 2023. Day-in-the-life interviewing covered the full funnel from lead to renewal. Output: eight insight themes, each anchored in per-interviewee evidence.
Eight themes carried the weight of the synthesis. Each one came with specific interviewees whose day-in-the-life evidence made it concrete.
Database cleanup, outdated BUs, post-acquisition drift, inconsistency between Zuora and SFDC hierarchies, Salesforce data-trust issues.
Limited market traction, data-driven decision-making challenges, post-acquisition contact-management issues.
Cumbersome opportunity management under the new process, cloning issues, non-interchangeability across product lines, manual quoting effort.
Complexity with non-standard proposals, offline work and calculation verification, limited visibility into approval status, high AE workload.
Discrepancy management between order forms and quotes, dependency on Clari for opportunity consolidation, renewal notification dependency on third-party tools.
Deal Desk dependency for PDF quote generation even for standard approvals.
Lack of a specialized financial-modeling tool; limited visibility into provisioning info; manual checking of consumption against revenue.
Decreased new attendees at marketing events; need for a structured strategic outreach approach.
Five personas anchored the work — one for each motion that touches the quote surface. The Account Manager runs the book of business on named enterprise accounts. The Partner sells through Zuora's ecosystem. Inside Sales runs the mid-market motion end-to-end. Direct Online handles self-service and digital acquisition. And the Deal Desk owns approvals for anything that breaks standard rules. The blueprint places them side-by-side and names where they hand off to each other.
The anchor is the continuous subscription lifecycle. A deal is not an Opportunity in Salesforce and a different record in Zuora Billing that happen to sync. It is one lifecycle observed from two systems. Every design decision in the program pushed the interface toward making that continuity visible — a quote carries its opportunity lineage, an amendment carries its parent subscription, a renewal carries its uplift history, an order carries its quote number.
Nothing bespoke. Three layered inheritances doing the work.
| Layer | Contents | Owner |
|---|---|---|
| Foundations & components | Color, type, spacing, forms, tables, buttons, accordions, toasts | Salesforce Lightning Design System |
| Surface overrides | Quote header, QLE, bundle configuration, sidebar utilities | Lightning Record Pages + custom LWC |
| Business-rule surface | Field visibility, read-only rules, picklist filters, layout rules | Zuora Config · Object-Level, Filters, Component Layout, Plugins |
| Guidance | Tooltips, walkthroughs, first-run checklists | UserPilot, themed to SLDS |
| Governance | Label overrides, change history, release discipline | Translation Workbench + Copado |
Seven recurring patterns carry the weight of the redesigned surface. The Quote header became the single source of truth — type, account, opportunity, auto-renew, primary flag, Total Contract Value, approval state, all legible without scrolling. The accordion detail layout collapses into About, Approval, Pricing, Uplift, Billing, Ramps, Deal Desk, and Order Information — each role opens what they own. The Quote Lines table surfaces charge type, number, quantity, end-date condition, and specific end date inline — no drill-down to confirm pricing. Approval history appears on the Quote itself, step by step. Field visibility is keyed to quote type and user profile via Zuora Config, not Apex. A sidebar LWC handles stateful operations like bundle configuration without modal stacks. And a themed UserPilot layer carries guided walkthroughs that evolve without a release.
Two flows carried most of the weight. The New Quote flow — from opportunity creation to order form — and the Amendment / Renewal flow, which branches into upsell, downsell, flat renewal, and contract amendment.
Inside the Renewal track, the program modeled four concrete scenarios — real ones AEs ran into during the research. They became the acceptance criteria for the redesigned surface.
Ninety days before expiry, the system generates a renewal quote that includes current products plus premium upsell options. Customer reviews, optionally modifies, signs. Zuora processes; billing reflects new pricing automatically.
Sales rep negotiates a 2-, 3-, or 5-year term with tiered pricing. Manually generates the quote from the renewal opportunity, sends for signature, updates the contract term and billing on acceptance.
Customer requests additional licenses or modules mid-term. AE generates an amendment quote — current products, new licenses, adjusted pricing — routes for approval, signs, updates the subscription.
CPI-keyed price increase triggers automated quote generation with the uplift already applied. Email notification explains the change; customer accepts or negotiates with the rep before signing.
The CPQ redesign was organized as twelve discrete flows. Each flow maps to a dedicated Figma file and a set of engineering stories. The structure runs: a strategic frame at the top, a core sales spine across the middle, and variant branches that inherit the same structure.
Baseline inherits from SLDS — keyboard paths, focus states, WCAG 2.1 AA-aligned tokens. The engagement added targeted fixes that the research surfaced, but the CPQ runs inside Salesforce's broader accessibility posture. Where a gap existed, the fix lived at the Lightning Record Page and component layer, not as a fork of SLDS.
No unpaired claims. The matrix is the contract between the two halves of this program.
| Design | Engineering | How they pair |
|---|---|---|
| Continuous-lifecycle model | SFDC ↔ Zuora Config ↔ Z-Quote ↔ Z-Billing | The topology mirrors the lifecycle the AE sees — one record, one lineage, one state. |
| Role-based viewpoints | Zuora Config field visibility | Role changes what's visible and editable, not which object is used. No fork per persona. |
| Config before code | Zuora Config + Translation Workbench + FieldSets | Business changes ship without a deploy cycle — labels, read-only rules, picklists. |
| Approval history on the Quote | Approval Process + Related List | The approval machinery exposes its state to the UI as a first-class relation, not a detour. |
| Quote Lines live-pricing | Quote Rate Plan Charge object + rollup + validation | The inline table renders what the data model holds — no view-layer invention. |
| Sidebar LWC · bundle configuration | LWC + Apex dependency check | Stateful sidebar uses LWC + a dependency-check class to block invalid bundles at save. |
| Walkthrough guidance | UserPilot theme, not in-app modals | Guidance evolves without engineering tickets; SLDS theme keeps it in-family. |
Part 4 is the engineering counterpart to Part 3. The shape of the stack was dictated by two constraints accepted on day one: the solution had to live inside Salesforce, and Zuora Billing had to remain the source of truth for subscription data.
The CPQ experience runs inside Salesforce Sales Cloud, using the Zuora CPQx managed package as the primary quoting surface. Zuora 360 provides one-way synchronization from Zuora Billing into Salesforce for Accounts, Contacts, Products, and Subscriptions. S-Docs generates the signed Order Form; UserPilot provides in-app guidance; Tray exposes Zuora API data for reporting dashboards.
The engineering decision most shaping delivery was treating Zuora Config — specifically Quote Studio Setting — as a first-class surface. Eleven tickets in the Handover Document shipped through Zuora Config alone, without Apex or LWC work.
| Requirement | Delivered via |
|---|---|
| Opt-Out at Quote Header for New Subscription Quotes under New Business and Amendment Upsell Opportunities | FieldSet CPQX_Quote_Information_CustomFields + FLS updates on OutClauseDate__c, OutClause__c |
| Subscription Term Type field read-only from QLE Page | New field fml_Is_LicenseOpportunity__c + Zuora Config |
| Modular Sandbox Products missing from Modular Product Add-Ons | Quick Filters for Billing and Revenue |
| Uplift fields read-only for Amendment; editable with Auto Renew enabled | Zuora Config |
| Default Superseding Language for Renewal Quotes | FieldSet zqu__CPQX_Subscription_TAndC_CustomFields |
| Quantity field editable for tier-driven products in non-ramp quotes | Zuora Object-Level Configuration |
| Remove Standalone and Zephr entries; maintain Edition / Platform / Modular in Catalog dropdown | Zuora Config dropdown entries |
| Terms & Conditions language blocks for Implementation in CPQx | FieldSet Order_Form_Formula_Fields + Is-Stubable checkbox |
| Renewal Term visibility based on Out-Clause | Formula column Is_Deal_Desk_User__c + Zuora Config |
| Custom End Date — ability to stub the charges | Zuora Config + Validation Rule Editable_if_Stubable |
| Default Auto Renew to Yes | Zuora Config · Default Settings |
Where Zuora Config could not reach the outcome, Salesforce development split across LWC, Apex, Validation Rules, and Flows. Every row below traces to a ticket in the Handover Document.
| Surface | What was built |
|---|---|
| LWC | Sidebar LWC for seller context; Quote Header rendering logic; Recall Approval button on Submitted quotes |
| Apex | Dependency-check update in CPQX_LWC_DependencyCheck.cls; error-message surgery for product-rule conflicts |
| Validation Rules | Editable_if_Stubable, No_Manual_QuoteStatus_Change, Billing_Frequency_Blank, Check_for_Pool_Usage |
| Flows | Record-Triggered Flow on the Quote object, before Save |
| Field-level work | Quote Header label renames via Translation Workbench; new fields OrderNumber__c, fml_OrderNumber_for_Zb__c, fml_CPI_Renewal_Term_in_Words__c; field-set adjustments on zqu__CustomOrderFields |
More than eight auto-sync scenarios between Opportunity and Quote were delivered. At ticket level, the quote-number and signature-date handshake and the field-copy machinery on Quote_Field_Copy_Source and Quote_Field_Copy_Target field sets carry most of the work. The goal: the Account Manager never reconciles the same fact twice between two records.
More than twenty approval scenarios were rationalized. Supporting evidence at ticket level includes the Recall Approval button on Submitted status, the No_Manual_QuoteStatus_Change validation rule with bypass custom settings, the Billing Frequency validation with profile and license-opportunity checks, and the Approval_Auto_Renew formula update.
The Order Form, generated by S-Docs, was re-templated for clause white-space and wording — both delivered through the Legal Component of the Template Editor. A bypass mechanism (BypassQuoteVRs__c.DuplicateDrawDownUOM__c) was added to let the Deal Desk handle non-standard cases cleanly.
Releases followed Zuora's Copado workflow. Configuration-driven changes ship without a code deploy; LWC, Apex, and Validation Rule changes flow through Copado stories. Configuration-driven changes flow through Copado stories referenced in the Handover Document against their corresponding validation rules and field updates. Feature flags via Custom Settings are used sparingly.
Five decisions carry the shape of this stack.
The rebuilt surface touches five external systems. Each one has a specific role, a specific direction of data flow, and a specific ticket line that proves it was delivered.
| System | Role | Direction |
|---|---|---|
| Zuora Billing | Source of truth for Accounts, Products, Subscriptions, Orders, Invoices | Zuora Billing → SFDC via Zuora 360 (one-way); SFDC → Zuora Billing via CPQx on quote submission |
| Salesforce Sales Cloud | Primary UX surface; hosts the Zuora CPQx managed package | Bidirectional |
| S-Docs | Order Form generation; legal clause library | Outbound from Salesforce |
| UserPilot | In-app guidance — themes, tooltips, step flows | Bidirectional; user and company mapping via Unique ID or Email |
| Tray | Zuora API → reporting surface | Outbound, read-only from the Zuora API |
UserPilot was installed through the native Salesforce package. Data direction was configured as bidirectional. User mapping used either the Salesforce Contact or Lead ID (matching the UserPilot identify call) or email — the Handover Document names the two as Option A and Option B. Intelligaia designed the theme, formatted tooltips, and integrated theme elements into the step flows.
Field sets — not hard-coded field lists — drive the Quote Header. Custom labels (Zuora_Quote_Status_Order, Zuora_Quote_Status_Approved, Zuora_Quote_Customer_Accept) drive status transitions without code. Bypass switches (BypassQuoteVRs__c) give the Deal Desk operational flexibility without a deploy. These are the surfaces a successor admin can reach without an engineering ticket.
Two passes of numbers. The first pass is what Intelligaia can show ticket-level evidence for. The second is the named improvements the engagement closed.
| Metric | What it counts |
|---|---|
| Engineering stories | Tickets in the O2O Copado namespace that shipped during the engagement. Traceable at ticket level in the Handover Document and the Intelligaia Salesforce Expertise record. |
| Process improvements | Named changes to the Account Manager and Deal Desk lifecycle — Quote Header redesign, approval surfacing, accordion detail layout, field-visibility rationalization. Counted at the named-change level. |
| Approval scenarios | Distinct approval paths rationalized — combinations of quote type, profile, out-clause, auto-renew, and dynamic-pricing rules that each produce a deterministic route. |
| Auto-sync scenarios | Opportunity ↔ Quote ↔ Subscription synchronization cases automated to remove manual reconciliation. |
| Research participants | Seven Zuora Account Executives interviewed across territories and motions in November 2023, plus a group workshop with approximately twenty Zuora stakeholders. |
Before the engagement, Zuora processed roughly two hundred renewal quotes per quarter with no automation. Account Managers retrieved historical pricing by hand; the Deal Desk propagated discounts manually; superseding language was pasted in from past Order Forms.
The renewal engine that shipped consolidated six ticket-level changes into one coherent path: default Auto Renew set to Yes via Zuora Config; Superseding Language templated into zqu__CPQX_Subscription_TAndC_CustomFields; Renewal Term visibility governed by Out-Clause logic; a new formula field fml_CPI_Renewal_Term_in_Words__c feeding the Order Form uplift clause; the Renewal Quote Header rebuilt; and the Renewal Uplift field recreated as a Legacy type on Zuora Billing. Six tickets, one renewal path.
The Quote Record Page was rebuilt around the accordion detail pattern, with the Related tab surfacing Quote Rate Plan Charges, Approval History, and Notes & Attachments without a click-through. Opportunity creation, bundle configuration, and renewal management moved from multi-step offline work into first-class surface interactions. The Sidebar LWC replaced a stack of modal escapes for bundle configuration. Custom Zuora APIs surfaced report data directly on the Salesforce tray page. Apex triggers automated opportunity-to-quote synchronization and order-number propagation. S-Docs templates were rewritten to fix white-space and clause-formatting defects that had been haunting customer-signed deals.
| Horizon | Window | Directional items |
|---|---|---|
| Now | Shipped | Twelve flows redesigned · ~40 O2O tickets shipped · Service Blueprint in circulation · UserPilot flows live · S-Docs Order Form re-templated |
| Next | 0–6 months | Reintroduce the descoped Reports work via Trigger Factory · expand approval-scenario coverage · extend UserPilot to Deal Desk and RevOps · self-service PDF for standard approvals |
| Later | 6–18 months | Guided selling and cross-sell recommendations · partner quoting and deal registration · attribute-based product setup as CPQx matures · pooled-usage amendment automation |
Two high-signal AI opportunities surface from the research. First, quote drafting from a plain-language Account-Manager brief, grounded against the Account and its historical purchases. Second, agentic cross-sell and upsell recommendations based on the Account's subscription shape. Both belong in the assistive bucket, not the autonomous one. The Deal Desk stays as the policy check; no quote is sent without human sign-off.
Three problems the program intentionally left open. Financial modeling for complex usage deals still lives partly in spreadsheets — a first-party capability is the right answer, but its shape is not yet determined. Cross-product opportunity interchangeability — moving an opportunity between product lines cleanly — remains a schema-level problem the amendment-cloning work only partially resolved. And outreach and event attribution sits outside the pure CPQ surface but pulls on the same data-integrity thread.