Customer and proposal data
Customer, product, pricing, agreement, location, language, and related records.
Customer case study · High-volume document generation
How one customer uses Salesforce as the control plane, AWS Lambda for orchestration, OpusDocs microservices for generation, and Amazon S3 for file storage.
An anonymized customer implementation.
See this customer’s generation benchmarksThe implementation
Each committed proposal carries hundreds of data points about the customer, products, services, pricing, agreement, jurisdictional context, and related child records. That persisted CRM data becomes the source for every generated document.
Salesforce determines which documents and templates to use and builds the generation request from CRM-managed configuration and business logic. AWS and OpusDocs then execute that governed request without moving control of the process outside CRM.
The document package
Every proposal produces a customer agreement. The rest of the package is selected dynamically from hundreds of data points and child records. The customer's preferred language (English or Spanish), along with location, state, utility, deal type, product offerings, and local requirements determines which documents belong in the package.
Example generated package
Inside this customer’s template library
A focused benchmark of this customer’s own templates covered about 150 document variations and 12 template families. The suite delivered a 2.35-second median to generate and store the finished PDF, handling the conditional content, repeating data, images, and signature requirements behind their everyday document workflows.
The 1.1-second production average above covers their full daily document mix. This benchmark measures a selected set of variations across the template library.
The performance gap was visible at both ends of the complexity range. Even a lightweight form meant nearly a minute of waiting in their legacy Conga workflow. OpusDocs delivered a subsecond median for that form and a few seconds for their most complex Customer Agreement.
| Document complexity | CongaLegacy workflow | OpusDocsDocument generation |
|---|---|---|
| Low complexityLightweight document · 8-page source template | ||
| High complexityCustomer Agreement · 257-page source template |
Separate samples from one customer. Conga measures the wait from starting the workflow to a completed file. OpusDocs measures generating and storing the PDF after the data is supplied. These results show individual document speed, not simultaneous processing capacity.
The Customer Agreement source contains 257 pages, nearly 300,000 document elements, extensive tables and images, and conditional rules that select the right terms for each customer. That complexity stays in the template while generation keeps the workflow moving.
The architecture
Salesforce provides the request, customer data, templates, and rules. AWS orchestrates generation, stores the files, and writes file metadata back to CRM.
AWS creates the lead and proposal records, persisting the customer, product, pricing, language, and agreement data in CRM.
Control plane
Customer, product, pricing, agreement, location, language, and related records.
Templates, configuration, document-selection rules, and business logic.
Document name, type, status, S3 link, and e-signature information.
Execution plane
What happens for each proposal
Salesforce persists hundreds of customer, product, service, pricing, agreement, jurisdiction, and child-record data points for the proposal.
Salesforce evaluates CRM-defined configuration and business logic to select every document and template required for the proposal.
Salesforce builds the request from committed proposal data, template assignments, and generation configuration persisted in CRM.
AWS Lambda receives the request, retrieves the referenced CRM data and assets, and prepares the complete workload for generation.
OpusDocs merges the customer and proposal data into the selected templates to render the agreement and all conditional documents.
Lambda persists the binaries in Amazon S3 and writes linked records back to Salesforce with file metadata, status, and e-signature activity.
Why this design works
Rendering and package assembly run in purpose-built microservices instead of consuming Salesforce transaction time and compute.
Generated binaries live in Amazon S3, removing Salesforce file-storage capacity and file-size constraints from the generation path.
Templates, assignments, and rules remain managed in Salesforce, where administrators and business teams already govern the process.
CRM users can see each document type, name, status, and e-signature state without requiring the binary file to live in Salesforce.
Your architecture will be different
We will show how OpusDocs can fit your CRM, orchestration layer, storage model, and document rules without forcing generation into the platform that holds your data.