How Configurator Blocks Work

One Lifecycle, Every Engine

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.

The Lifecycle

Start

Open a durable session, emit sessionId + initial fields

Step 1

Set Value

Apply a feature selection, get refreshed validation state

Step 2

Validate

Re-run the rules engine, emit messages for gates

Step 3
📋

Get BOM

Derive line items from the current configuration

Step 4
🏁

Finalize

Validate once more, optionally commit, emit terminal state

Step 5
RenderDraw Native

The Native Configurator Blocks

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.

Start Configuration (RenderDraw Native)

native/configure/start@v1

Description

Open a durable RD-native configurator session, validate defaults, and emit initial fields.

Parameters

  • targetModelId (required) — the configurable model to open
  • initialValues (object) — seed feature values applied before the first validation
  • interactionId (optional, interaction picker) — link a 2D/3D interaction to visualize the configuration

Inputs

None — this is a lifecycle entry block.

Outputs

  • sessionId (string) — durable session handle for every downstream block
  • fields — initial feature fields and selectable values
  • valid (boolean) — whether the default configuration passes the rules
  • messages — validation messages from the constraint engine

Common uses

  • First step of any native configure-price-quote workflow
  • Seeding a configuration from RFP-extracted requirements via initialValues

Set Value (RenderDraw Native)

native/configure/set_value@v1

Description

Set one native configurator feature value and return the updated validation state.

Parameters

  • fieldName (required) — the feature field to set
  • value (required) — the value to apply

Inputs

  • sessionId (string, required) — the open session to mutate

Outputs

  • fields — refreshed feature fields after the rules re-run
  • valid — whether the configuration is still valid
  • messages — any new validation messages
  • updatedState — the new configuration state snapshot

Common uses

  • Applying each selection in sequence as a workflow drives the configuration
  • Branching on valid to route invalid selections to a correction path

Validate Configuration (RenderDraw Native)

native/configure/validate@v1

Description

Re-run the native constraint engine and emit validation messages for workflow gates.

Parameters

None.

Inputs

  • sessionId (required) — the session to validate

Outputs

  • valid — pass/fail for the whole configuration
  • messages — constraint messages to surface in a gate
  • fields — current feature fields
  • state — the current configuration state

Common uses

  • A pre-gate validation step before human review
  • Surfacing constraint messages to an approver as gate context

Get BOM (RenderDraw Native)

native/configure/get_bom@v1

Description

Derive native line items from selected price-impacting features.

Parameters

  • bomType (sales | manufacturing, default sales) — which bill of materials to derive

Inputs

  • sessionId (required) — the configured session

Outputs

  • lineItems — derived bill-of-materials line items
  • lineCount (integer) — number of line items returned

Common uses

  • Feeding a sales BOM into a pricing block
  • Emitting a manufacturing BOM for an ERP work order

Finalize Configuration (RenderDraw Native)

native/configure/finalize@v1

Description

Validate one final time, optionally commit, and emit terminal native configuration state.

Parameters

  • commit (boolean, default true) — whether to commit the configuration as the final state

Inputs

  • sessionId (required) — the session to finalize

Outputs

  • finalState — the terminal configuration state
  • lineItems — final derived line items
  • valid — final validity
  • messages — final validation messages
  • sessionId — the (now finalized) session handle

Common uses

  • The terminal configure step before pricing and quote
  • A dry-run validation pass with commit: false
Logik

Logik Configurator Blocks

Logik.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.

Discover Fields (Logik)

logik/configure/discover_fields@v1

Description

Discover a Logik configurable product field catalog for CAD/specification-driven selection.

Parameters

  • connectionId (Logik) — the configured Logik provider connection
  • productId — the Logik configurable product

Inputs

None — discovery runs from the connection and product alone.

Outputs

  • product — the resolved Logik product
  • fields — selectable fields
  • fieldCatalog — the full field catalog metadata
  • warnings — discovery warnings

Common uses

  • Mapping extracted RFP specs to Logik field names before starting a session
  • Building a dynamic field picker for CAD-driven configuration

Start Configuration (Logik)

logik/configure/start@v1

Description

Start a Logik runtime configuration session and emit the durable session id, initial fields, and price.

Parameters

  • connectionId — the Logik provider connection
  • productId — the Logik configurable product

Inputs

None — this is a lifecycle entry block.

Outputs

  • sessionId — durable Logik session handle
  • fields — initial fields
  • price — initial Logik price

Common uses

  • Opening a Logik session at the top of a CPQ workflow
  • Capturing the starting price for downstream margin checks

Set Value (Logik)

logik/configure/set_value@v1

Description

Set one or more fields on an open Logik configuration session and emit refreshed fields and price.

Inputs

  • sessionId (required) — the open Logik session
  • fieldName — a single field to set
  • value — the value for that field
  • values — a batch of field/value pairs to apply at once

Outputs

  • fields — refreshed fields after the Logik runtime re-evaluates
  • price — updated price
  • valid — whether the selection is valid

Common uses

  • Applying a batch of mapped selections in one block via values
  • Watching price change as features are toggled

Validate Configuration (Logik)

logik/configure/validate@v1

Description

Re-run the Logik runtime validation and surface messages for workflow gates.

Inputs

  • sessionId — the Logik session to validate

Outputs

  • valid — pass/fail for the configuration
  • messages — Logik validation messages

Common uses

  • A pre-gate validation pass before sending to an approver
  • Branching on valid before quote generation

Get BOM (Logik)

logik/configure/get_bom@v1

Description

Read the saved Logik sales, manufacturing, or custom BOM and emit flat line items.

Parameters

  • bomType (sales | manufacturing | custom) — which saved Logik BOM to read
  • customBomName — the named custom BOM when bomType is custom

Inputs

  • sessionId — the configured Logik session

Outputs

  • lineItems — flat BOM line items

Common uses

  • Pulling a Logik manufacturing BOM for ERP hand-off
  • Reading a named custom BOM via customBomName

Finalize Configuration (Logik)

logik/configure/finalize@v1

Description

Finalize the Logik configuration, optionally committing the session, and emit the terminal state, line items, and the external Logik session reference.

Parameters

  • commit — whether to commit the Logik configuration
  • bomType — which BOM to derive on finalize
  • customBomName — the named custom BOM, when applicable

Inputs

  • sessionId — the Logik session to finalize

Outputs

  • finalState — the terminal configuration state
  • lineItems — final line items
  • externalSessionUuid — the Logik-side session reference for traceability

Common uses

  • Committing a Logik configuration before quote sync
  • Persisting externalSessionUuid for audit and reconciliation
Bring Your Own Configurator

The Same Shape, Whatever You Run

Conga 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
Durability & Portability

Sessions That Outlive the Run

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.

What Comes Next

From BOM to Priced Quote

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 →

Configure → Price → Quote

🏁

Finalize Configuration

Emits lineItems + sessionId

Configure
💰

Price Line Items

Reprice, apply discounts, check margin

Pricing
🧾

Create Quote

Build the quote from priced line items

Quote
📄

Generate Proposal

Render the document and deliver

Proposal

Configure From Inside the Workflow

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.

Related Blocks