Drive a product configurator from inside a workflow — open a session, set feature values, validate against the rules engine, derive a bill of materials, and finalize. RenderDraw ships a native configurator and provider-segregated blocks for Logik, Conga, Infor, and Salesforce, so the same lifecycle shape works across every engine you already run.
Every configurator — RenderDraw's native engine, Logik, Conga, Infor, Salesforce — follows the same shape: open a session, set values, validate against rules, derive a BOM, and finalize. RenderDraw exposes that lifecycle as typed workflow blocks so you compose it on the canvas instead of writing integration code.
Pick the provider's blocks (or RD-native) for the steps that touch the configuration engine. Everything after — pricing, quote generation, proposal rendering, approval gates — stays identical regardless of which engine produced the BOM.
Sessions are durable: a sessionId emitted by the Start block carries across every downstream block and survives server restarts, human review pauses, and multi-day runs. The configuration you began on Monday is still open when the estimator approves it on Thursday.
Open a durable session, emit sessionId + initial fields
Apply a feature selection, get refreshed validation state
Re-run the rules engine, emit messages for gates
Derive line items from the current configuration
Validate once more, optionally commit, emit terminal state
RenderDraw's own constraint and configurator engine ships the full lifecycle as five typed blocks. No external CPQ connection required — selections are validated client-side and server-side against your own rules, and price-impacting features derive native line items directly. This is the headline set: the same Start → Set Value → Validate → Get BOM → Finalize shape, with nothing to integrate.
native/configure/start@v1
Open a durable RD-native configurator session, validate defaults, and emit initial fields.
None — this is a lifecycle entry block.
initialValuesnative/configure/set_value@v1
Set one native configurator feature value and return the updated validation state.
valid to route invalid selections to a correction pathnative/configure/validate@v1
Re-run the native constraint engine and emit validation messages for workflow gates.
None.
native/configure/get_bom@v1
Derive native line items from selected price-impacting features.
sales | manufacturing, default sales) — which bill of materials to derivenative/configure/finalize@v1
Validate one final time, optionally commit, and emit terminal native configuration state.
true) — whether to commit the configuration as the final statecommit: falseLogik.io is RenderDraw's deepest external configurator integration — six blocks that honor the Logik runtime contract end to end, including a field-discovery step for CAD/specification-driven selection and Logik's saved sales, manufacturing, and custom BOMs. The lifecycle shape is identical to native; only the engine behind the sessionId changes.
logik/configure/discover_fields@v1
Discover a Logik configurable product field catalog for CAD/specification-driven selection.
None — discovery runs from the connection and product alone.
logik/configure/start@v1
Start a Logik runtime configuration session and emit the durable session id, initial fields, and price.
None — this is a lifecycle entry block.
logik/configure/set_value@v1
Set one or more fields on an open Logik configuration session and emit refreshed fields and price.
valuesprice change as features are toggledlogik/configure/validate@v1
Re-run the Logik runtime validation and surface messages for workflow gates.
valid before quote generationlogik/configure/get_bom@v1
Read the saved Logik sales, manufacturing, or custom BOM and emit flat line items.
sales | manufacturing | custom) — which saved Logik BOM to readbomType is customcustomBomNamelogik/configure/finalize@v1
Finalize the Logik configuration, optionally committing the session, and emit the terminal state, line items, and the external Logik session reference.
externalSessionUuid for audit and reconciliationConga CPQ, Infor CPQ, and both Salesforce configuration engines ship as their own block families. These are provider-segregated blocks — not one generic "configure" block with a dropdown — so each engine's real contract is honored: Conga's and Infor's line-add-and-price model, Salesforce CPQ Legacy's quote-line semantics, and Salesforce B2B Commerce's cart-style flow.
Despite the different internals, every family follows the same Start → … → Finalize shape. Swap the configure blocks for a different provider and the rest of the workflow — pricing, quote, proposal, approval — stays identical.
Why segregated, not generic. A single generic block would have to flatten every engine into a lowest-common-denominator contract — losing Logik's custom BOMs, Conga's pricing passes, and Salesforce's quote-line rules. Per-provider families keep each engine's behavior intact while the workflow author still sees one familiar lifecycle.
| Provider | Lifecycle blocks | Type-id family |
|---|---|---|
| RenderDraw Native | start · set_value · validate · get_bom · finalize | native/configure/*@v1 |
| Logik | discover_fields · start · set_value · validate · get_bom · finalize | logik/configure/*@v1 |
| Conga CPQ | start · add_line · price · get_quote · finalize | conga_cpq/configure/*@v1 |
| Infor CPQ | start · add_line · price · get_quote · finalize | infor_cpq/configure/*@v1 |
| Salesforce CPQ Legacy | start · add_line · price · get_lines · finalize | sf_cpq_legacy/configure/*@v1 |
| Salesforce B2B Commerce | start · price (+ others) | sf_b2b/configure/*@v1 |
Durable sessions, portable lifecycle. A configurator sessionId is durable — it carries across every block in the workflow and survives server restarts, infrastructure events, and long pauses at human review gates. A configuration started before a multi-day approval is still open and consistent when the run resumes.
And because the lifecycle is portable, the engine behind that sessionId is an implementation detail. Migrating from Salesforce CPQ Legacy to Logik, or standing up the native configurator alongside an existing CPQ, means swapping the configure blocks — not rebuilding pricing, quote, proposal, and approval. The shape stays; the provider changes.
The configurator lifecycle ends at a validated BOM. What happens to those line items — repricing, margin checks, quote creation, and document delivery — is the job of the pricing and quote blocks, which take the configurator's lineItems and sessionId as their input.
Because the BOM hand-off is identical across every configurator engine, the same pricing and quote graph runs whether the line items came from the native engine, Logik, Conga, Infor, or Salesforce. Configure with one engine today, add another next quarter, and the downstream path never changes.
Pricing & Quote Blocks →Emits lineItems + sessionId
Reprice, apply discounts, check margin
Build the quote from priced line items
Render the document and deliver
Open a session, set values, validate, derive a BOM, and finalize — with the native engine or the CPQ you already run. One lifecycle, every provider, durable across the whole run.