Architectural Requirements

To reliably support both sales-led and self-serve workflows, the platform must meet the following requirements, derived from first principles:

Unified CPQ and Billing

CPQ and billing functionality must be combined within a single platform and a single data model. Quotes, contracts, entitlements, usage, and billing must operate on the same underlying objects and lifecycle.

Enterprise-Grade Channel-Agnostic Product Catalog

The platform must expose a single, enterprise-grade product and pricing catalog that can support:

  • Simple yet feature-rich self-serve plans
  • Complex enterprise pricing (custom terms, ramps, credits, usage)
  • Business models like subscriptions, one-time, consumption and credits

The same catalog must be reused across all channels without duplication.

API-First

The platform must expose a fully API-first architecture in which all monetization primitives are programmatically accessible and composable. This enables direct integration not only with customer-facing surfaces such as websites and applications, but also with the broader revenue stack, including:

  • Payment processors and gateways e.g, Stripe, Adyen etc.
  • Tax calculation and compliance systems e.g., Anrok, Taxwire, Avalara etc.
  • Identity and entitlement services e.g., Auth0, Descope etc.
  • Data warehouses and analytics pipelines e.g., BigQuery, Snowflake etc. • Internal backend services

Core monetization objects—including products, prices, contracts, subscriptions, amendments, usage, and invoices—must be fully accessible via APIs to support automated provisioning, real-time updates, and reliable downstream synchronization.

Intentional CRM Integration for Sales-Led Workflows

The platform must provide robust and intentional CRM integrations that ensure self-serve customer activity is reliably reflected in the upstream CRM without data loss or manual intervention.

  • Reliable synchronization at scale Self-serve events such as sign-ups, upgrades, downgrades, renewals, and cancellations must be propagated to the CRM in a reliable and fault-tolerant manner. The integration must account for CRM-imposed constraints such as API rate limits, bulk processing limits, and object-level restrictions by employing batching, retries, backoff, and asynchronous processing where required.
  • Use of standard CRM objects Self-serve data should map cleanly onto standard CRM objects (e.g., Accounts, Contacts, Opportunities, Contracts) wherever possible to ensure compatibility with existing sales, finance, and reporting workflows.
  • Minimal reliance on custom objects Custom objects should be used sparingly and only when required, in order to reduce operational complexity and ongoing maintenance burden.
  • Consistent system of record The CRM must remain a reliable source of truth for customer and contract state, regardless of whether changes originate from sales-led or self-serve workflows.

Cross-channel Synchronization

The platform must support bidirectional synchronization between self-serve and sales-led workflows to ensure a consistent system of record across channels.

If a customer is initially acquired via a sales-led workflow, any subsequent contraction events—such as downgrades, quantity reductions, or plan changes—initiated through self-serve APIs must automatically synchronize back to the CRM (SLG → PLG).

Conversely, if a customer is initially acquired via a self-serve workflow, any expansion events—such as enterprise upgrades, contract negotiations, or sales-assisted renewals—must synchronize from the CRM back into the monetization platform (PLG → SLG).

This bidirectional model ensures that:

  • Contract state, entitlements, and billing remain consistent regardless of entry point
  • Sales, finance, and product teams operate on a shared source of truth
  • Channel transitions do not require manual reconciliation or data migration

Environment and Sandbox Management

The platform must support on-demand environment management, including:

  • Creating and destroying sandboxes programmatically
  • Instantly provisioning full product catalogs in sandbox environments via APIs

This enables safe testing, experimentation, and implementation without impacting production systems.