Skip to main content

Cotiza CPQ — Solution Architecture and Usage

Document version: 1.0
Product: Cotiza CPQ (Salesforce AppExchange managed package)
Audience: Salesforce security review and technical evaluators
Online documentation: https://cpq.cotiza.dev


1. Executive Summary

Cotiza CPQ is a native Salesforce Sales Cloud application delivered as a managed package. All application logic, user interface, configuration, and customer data reside within the customer's Salesforce org. The solution does not operate external application servers or Cotiza-operated databases. During normal operation, customer quote, pricing, approval, and proposal data is not transmitted to external Cotiza systems.

This document describes solution architecture, information flow, authentication, encryption, data touchpoints, and basic usage instructions.


2. Solution Architecture

2.1 High-Level Architecture

Cotiza CPQ follows a three-layer model inside a single Salesforce org:

LayerPurposePrimary records
ConfigurationDeclarative setup by adminsSystem Settings, Playbook, Questions, Rules, Scenarios, Approvals, View Sections, Pricing Sets
Runtime / TransactionRecords created during quotingQuote, Quote Line Item, Playbook Answer, Quote Approval records, Quote Proposal
Sync / ContractDownstream Salesforce recordsOpportunity, Opportunity Product, Contract, Contract Entitlement, Contract Playbook Answer, ContentVersion

Lightning Experience components provide the user interface. Apex executes business logic (rules engine, sync, approvals, contract creation, proposal rendering) within Salesforce governor limits.

2.2 Architecture Diagram

┌─────────────────────────────────────────────────────────────────────────┐
│ Customer Salesforce Org │
│ │
│ ┌────────────────────── Admin Configuration ──────────────────────┐ │
│ │ System Settings │ Playbooks │ Questions │ Rules │ Approvals │ │
│ │ View Sections │ Pricing Sets │ Custom Metadata (field maps) │ │
│ └────────────────────────────┬────────────────────────────────────┘ │
│ │ drives │
│ ┌────────────────────────────▼────────────────────────────────────┐ │
│ │ Lightning UI (App tabs & record components) │ │
│ │ cpqByOpportunity │ approvalsHub │ contractsByAccount │ etc. │ │
│ └────────────────────────────┬────────────────────────────────────┘ │
│ │ read/write │
│ ┌────────────────────────────▼────────────────────────────────────┐ │
│ │ Apex (in-org processing) │ │
│ │ Rules engine │ Sync │ Approvals │ Proposals │ Contract create │ │
│ └────────────────────────────┬────────────────────────────────────┘ │
│ │ │
│ ┌────────────────────────────▼────────────────────────────────────┐ │
│ │ Standard & Custom Salesforce Objects (all data at rest in org) │ │
│ │ Quote, Opportunity, Contract, ContentVersion, Cotiza custom... │ │
│ └──────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘

External Cotiza servers: NOT used during normal operation

2.3 Salesforce Platform Components

TechnologyRole in Cotiza CPQ
Lightning ExperienceRequired UI platform; app tabs and record page components
ApexServer-side rules, sync, approvals, contracts, proposals; with sharing, bulkified
Custom objectsPlaybook configuration and transaction records (namespaced)
Custom Metadata TypesQuote/Opportunity/Entitlement field mappings
Standard objectsQuote, Opportunity, Contract, Product, Price Book, ContentVersion, User
VisualforceWord proposal output; optional custom proposal sections
Permission setsCotiza CPQ User, Cotiza CPQ Admin
SOQLRecord lookup questions; proposal record tables

3. Information Flow

3.1 End-to-End Business Flow

  1. Opportunity — User opens Cotiza CPQ from the app or Opportunity record page.
  2. Quote creation — User creates a Quote and configures it through an active Playbook.
  3. Playbook configuration — User answers questions; Playbook Rules evaluate Scenarios and update questions, products, and pricing in real time. Answers persist as Playbook Answer records and may stamp Quote fields.
  4. Approval (conditional) — If Playbook Approvals are triggered, user submits the Quote. Apex creates Quote Approval, Step, and Approver records. Approvers act in the Approvals hub. Optional approval emails use Salesforce email delivery.
  5. Proposal (optional) — User generates a proposal PDF (or Word for Proposal Power Users). Output is stored as ContentVersion linked to a Quote Proposal record.
  6. Sync — User syncs the Quote. Apex maps Quote and Quote Line Item fields to Opportunity and Opportunity Products via Custom Metadata mappings and package defaults.
  7. Contract — When Create Contract on Opportunity changes from false to true, Apex creates Contract, Contract Entitlement, and Contract Playbook Answer records.
  8. Renewals / amendments — User launches Amend, Replace, or Renew from the Contracts UI to create contract-sourced Quotes.

3.2 Data Flow Diagram

User (Browser)

│ HTTPS/TLS (Salesforce platform)

Salesforce Lightning UI ──► Apex Controller / Service Layer

┌───────────────────────┼───────────────────────┐
▼ ▼ ▼
Custom Objects Standard Objects ContentVersion
(Playbook config, (Quote, Opportunity, (Proposal PDFs)
Answers, Approvals) Contract, Products)
│ │
└───────────┬───────────┘

All data at rest in
customer Salesforce org

3.3 Configuration-to-Runtime Flow

StepSourceTargetMechanism
Quote UI renderingPlaybook, Questions, System SettingsLightning componentsSOQL/DML in Apex; client reads config
Rule executionPlaybook Rule + ScenarioQuote, Answers, Line ItemsApex rules engine on configured triggers
Approval enforcementPlaybook ApprovalQuote Approval recordsApex on submit
Proposal renderingPlaybook View SectionContentVersion / Quote ProposalApex + Visualforce (PDF/Word)
Quote syncQuote, Quote Line ItemOpportunity, Opportunity ProductApex + Opportunity/OppLineItem Field Mapping CMDT
Contract creationOpportunity Product, Quote answersContract, Entitlement, Contract Playbook AnswerApex trigger on Create Contract flag + Entitlement Field Mapping CMDT

4. Authentication

Cotiza CPQ does not implement a separate identity provider or authentication system.

TopicImplementation
User authenticationStandard Salesforce login (username/password, SSO, MFA as configured by the customer)
Session managementSalesforce platform session tokens and timeout policies
AuthorizationSalesforce profiles, permission sets, sharing rules, field-level security, role hierarchy
Cotiza access controlCotiza CPQ User and Cotiza CPQ Admin permission sets; optional Power User field on User
API accessLightning components require the standard Salesforce API Enabled user permission
Approver resolutionNamed User references and/or Opportunity Owner manager chain (role hierarchy)
External credentialsNone stored by the Cotiza managed package

Users must be authenticated to Salesforce before any Cotiza CPQ UI or Apex logic is accessible. All access checks occur within the customer's org security model.


5. Encryption and Data Transfer

5.1 Data in Transit

PathEncryption
User browser ↔ Salesforce (Lightning UI)TLS/HTTPS (Salesforce platform standard)
Apex executionIn-platform; no external HTTP callouts during normal Cotiza operation
Approval notification emailsDelivered via Salesforce email infrastructure (TLS per Salesforce configuration)
Proposal download linksSalesforce ContentVersion / content delivery (platform-controlled)

Cotiza CPQ does not initiate outbound connections to external Cotiza-operated endpoints during normal quoting, approval, sync, or proposal operations.

5.2 Data at Rest

All Cotiza CPQ data is stored on Salesforce objects within the customer's org. Encryption at rest follows the customer's Salesforce edition and configuration:

  • Platform encryption (if enabled by the customer)
  • Salesforce data center protections and certifications inherited by the org

The managed package does not store customer data outside Salesforce.

5.3 External Transmission

External data transmission may occur only when the customer explicitly configures Salesforce platform features or customizations, for example:

  • Email notifications to approvers or submitters
  • Content distribution or file sharing links
  • Custom Apex, Flow, or integration built by the customer

These transmissions are governed by the customer's Salesforce org settings, not by Cotiza-operated infrastructure.


6. Data Touchpoints

6.1 Systems and Services

System / ServiceRoleCustomer data stored?Normal operation connection?
Customer Salesforce orgApplication host, database, UI, logicYes — all Cotiza dataYes — sole runtime environment
Cotiza external serversNoneNoNo
Salesforce emailApproval notifications (optional)Email content in transitOptional — customer-configured
Customer custom integrationsOptional extensionsDepends on customerOptional — customer-built

6.2 Salesforce Object Touchpoints

Standard objects read or written:

ObjectTypical operations
QuoteCreate, read, update (primary output record)
Quote Line ItemCreate, read, update, delete
OpportunityRead; update on sync
Opportunity Line ItemCreate, update on sync
Product2, Pricebook2, PricebookEntryRead (catalog)
ContractCreate, read, update
UserRead (approvers, owners, submitters)
AccountRead (context)
ContentVersionCreate (proposal files)

Custom objects (Cotiza namespace) — configuration:

System Settings, Playbook, Playbook Question Group, Playbook Question, Playbook Scenario, Playbook Scenario Criterion, Playbook Rule, Playbook Rule Action, Playbook Rule Calculation Item, Playbook Approval, Playbook Approver Group, Playbook Approver, Playbook View Section, Pricing Set, Pricing Threshold

Custom objects (Cotiza namespace) — transaction:

Playbook Answer, Quote Approval, Quote Approval Step, Quote Approver, Quote Proposal, Contract Entitlement, Contract Playbook Answer

Custom Metadata Types:

Opportunity Field Mapping, OppLineItem Field Mapping, Entitlement Field Mapping, Entitlement Combination Mapping

6.3 Data Touchpoint Summary Table

Data categoryExamplesStored whereLeaves org in normal ops?
Quote configurationAnswers, line items, pricingQuote, Playbook Answer, Quote Line ItemNo
Approval dataStatus, approver, notes, reasonsQuote Approval recordsNo (email optional)
Proposal documentsPDF, Word filesContentVersion, Quote ProposalNo (unless customer shares link)
Admin configurationPlaybooks, rules, approvalsCotiza admin custom objectsNo
Synced deal dataOpp fields, productsOpportunity, Opportunity ProductNo
Contract dataEntitlements, contract answersContract, Contract EntitlementNo

7. Basic Usage Instructions

7.1 Prerequisites

  • Salesforce Professional, Enterprise, Unlimited, or Developer Edition
  • Lightning Experience enabled
  • Standard Quote object enabled (Setup → Quote Settings)
  • Cotiza CPQ managed package installed from AppExchange

7.2 Initial Setup (Administrator)

  1. Install Cotiza CPQ from AppExchange (recommend sandbox first).
  2. Assign Cotiza CPQ Admin permission set to the implementing admin.
  3. Create a System Settings record (App Launcher → Cotiza CPQ System Settings).
  4. Configure Products, Price Books, and Price Book Entries.
  5. Create a Playbook linked to a Price Book; add Questions, Rules, Approvals, and View Sections as needed.
  6. Assign Cotiza CPQ User permission set to sales users and approvers.
  7. Add Cotiza CPQ Container to Opportunity record pages via Lightning App Builder.
  8. Validate an end-to-end test Quote through sync (and contract creation if applicable).

Estimated time: package install 5–15 minutes; initial configuration 1–4 hours depending on complexity.

7.3 Sales User Workflow

  1. Open an Opportunity in Cotiza CPQ (app tab or record page component).
  2. Click Create + to start a new Quote.
  3. Complete the Playbook configuration wizard (questions, products, pricing).
  4. Submit for approval if the Approval Summary indicates approvals are required.
  5. Generate a proposal PDF when configuration is complete and approvals are satisfied.
  6. Sync the Quote to update the Opportunity and Opportunity Products.
  7. After deal close, an admin or automated process sets Create Contract on the Opportunity.
  8. For ongoing relationships, use Amend, Replace, or Renew from the Contracts tab.

7.4 Approver Workflow

  1. Open Cotiza CPQ Approvals tab (or follow approval email link if configured).
  2. Filter to assigned or submitted approvals.
  3. Review Quote context, approval reason, and submitter notes.
  4. Approve or Reject with an optional decision reason.

7.5 Roles and Permissions

RolePermission setTypical activities
CPQ administratorCotiza CPQ AdminPlaybooks, rules, approvals, system settings
Sales repCotiza CPQ UserCreate quotes, submit approvals, generate proposals
ApproverCotiza CPQ UserApprove/reject in Approvals hub
Deal desk (optional)Cotiza CPQ User + Proposals Power UserWord proposals, redlines
Operations (optional)Cotiza CPQ User + Contracts Power UserVoid contracts

8. Audit and Compliance Notes

  • Approval decisions, Quote changes, and Contract events are persisted on Salesforce records.
  • Customers may enable Field History Tracking and use standard Salesforce reporting for audit trails.
  • Apex is bulkified; CRUD and FLS enforced via with sharing patterns.
  • Customers remain responsible for org-wide security policies (MFA, IP restrictions, data retention).

TopicURL
Product overviewhttps://cpq.cotiza.dev/docs/intro
Installationhttps://cpq.cotiza.dev/docs/getting-started/installation
Permissionshttps://cpq.cotiza.dev/docs/getting-started/permissions
Data handlinghttps://cpq.cotiza.dev/docs/security/data-handling
Compliancehttps://cpq.cotiza.dev/docs/security/compliance
Object modelhttps://cpq.cotiza.dev/docs/objects/overview
End-to-end workflowhttps://cpq.cotiza.dev/docs/user-guide/workflow-overview
Quick starthttps://cpq.cotiza.dev/docs/getting-started/quick-start

Cotiza CPQ — Point. Click. Quote.