Skip to main content
Versioning in Variable allows you to maintain a history of your products and materials while ensuring data integrity. This is essential for tracking changes over time, maintaining audit trails, and supporting collaborative workflows.

Version states

Products and materials can exist in one of three version states:
StateEditableDescription
DraftYesWork in progress, can be modified
LockedNoFinalized version, immutable
VerifiedNoThird-party validated, highest confidence level
Once a product is locked, its data cannot be changed. This ensures that any references to that version (in other products, reports, or external systems) remain consistent.

Version life-cycle

1. Create draft

When you create a new product or material, it starts as a draft:
  • Fully editable
  • Changes save automatically
  • Not visible to external references by default
  • Can be deleted without impact

2. Edit and refine

While in draft state:
  • Add and modify inputs
  • Adjust quantities and datasets
  • Update metadata (name, description, taxonomy)
  • Review calculated impacts
  • Make as many changes as needed

3. Lock version

When you’re satisfied with the product:
  • Lock the version to make it immutable
  • Locked versions get a version number (1, 2, 3…)
  • The product becomes available for use in other products
  • External systems can reference it with confidence
Locking is permanent for that version. You cannot unlock a version. If changes are needed, create a new version instead.

4. Create new version

When updates are required:
  • Create a new draft from the locked version
  • The new draft copies all data from the locked version
  • Edit the new draft as needed
  • Lock when ready to create the next version

Verifying a version

A locked version can be verified — an independent sign-off that the version has been reviewed and can be trusted. Verified is the highest-confidence state, signaling third-party validation rather than just finalization. Verification is carried out by a team member with the Verifier role, who has read-only access plus this one capability. Only locked versions can be verified, and verifying never changes the underlying data — it records the sign-off, with an optional note, in the audit history. Verified versions keep their version number and stay immutable. To verify a version in the Variable app, open the version and choose Mark as verified. Verification is available for any product or material that supports versioning.

syncId preservation

The syncId is a stable identifier that persists across versions:
PropertyBehavior across versions
uuidChanges with each version
syncIdStays the same across all versions
versionIncrements (1, 2, 3…)
Use syncId when you need to track an item across versions in external systems (ERP, PLM). The uuid identifies a specific version, while syncId identifies the logical item regardless of version.

syncId rules

  • Must be unique across your organization
  • Can be set during creation
  • Persists through version creation
  • Should be treated as a stable identifier for external integrations
  • Changing it can impact downstream system mappings and references

When to create a new version

Create a new version when:
ScenarioActionWhy
Material data updatedNew versionPreserve historical footprint values
Supplier changedNew versionTraceability for sourcing changes
Process improvedNew versionTrack improvement over time
Error correctionNew versionAudit trail of corrections
Annual updateNew versionMaintain time-series data
Keep editing the current draft when:
ScenarioActionWhy
Initial data entryEdit draftNot yet ready for use
Typo in nameEdit draftNo impact on calculations
Still under reviewEdit draftNot finalized

Version visibility

Control who can see and use different versions:
VisibilityAccess
PrivateOnly your organization
LinkAnyone with the direct link
APIAccessible via API with authentication
Authenticated usersAll logged-in Variable users
Locked versions are typically set to appropriate visibility for their intended use. Draft versions are usually kept private until ready.

Working with versions in the API

Get latest version

GET /v1/product?syncId=bracket-001
Returns the most recent version of the product with that syncId.

Get specific version

GET /v1/product/{uuid}
Returns the exact version identified by uuid.

Create new version

Creating a new version from an existing locked product:
  1. Retrieve the locked product
  2. Create a new product with the same syncId
  3. The new product starts as a draft with version number incremented

Best practices

  1. Lock before sharing - Don’t share draft versions externally; lock first to ensure stability.
  2. Document changes - Use the description or notes field to explain what changed between versions.
  3. Regular reviews - Set up periodic reviews to update products with new supplier data.
  4. Version alignment - When updating a product, consider whether component materials also need new versions.
  5. Clean up drafts - Delete abandoned drafts to keep your inventory tidy.
  6. Use syncId consistently - Map syncId to your internal part numbers for seamless integration.