Creates an optimization workflow that processes a previously uploaded artifact. Provide the artifact_id returned by POST /v2/optimize/artifacts as input.artifact.artifact_id.
Workflows run in supervised mode by default. The workflow pauses at human-in-the-loop review gates that allow reviewers to approve taxonomy mappings, sample enrichments, and the final publish step.
Review gates are approved in the CommerceOS web application, not through the API. When a workflow reaches status: REVIEW_PENDING, direct a reviewer to CommerceOS to evaluate and approve the active gate. Once the reviewer acts in the UI, the workflow resumes automatically and the next poll of GET /v2/optimize/workflows/{workflow_id} reflects the new state.
Documentation Index
Fetch the complete documentation index at: https://developer.fabric.inc/llms.txt
Use this file to discover all available pages before exploring further.
The brand domain name (for example, vessel.com or containerstore.com) used to scope the request to a specific brand's data and configuration. The authenticated principal must be authorized for the specified brand.
"vessel.com"
Request body for creating an optimization workflow. Customer integrations should set origin to API. Supervised review gating is applied automatically.
Specifies the source of the workflow's input data. Provide artifact.artifact_id from a prior call to POST /v2/optimize/artifacts.
Human-readable name displayed in the Commerce OS UI.
"Spring 2026 catalog enrichment"
[]Set to API for customer integrations. Defaults to API when omitted.
COMMERCEOS, API Arbitrary JSON object stored on the workflow for caller use.
Workflow created
Workflow state envelope returned by POST /v2/optimize/workflows and GET /v2/optimize/workflows/{workflow_id}. The status value progresses through PENDING, then RUNNING or IN_PROGRESS, then REVIEW_PENDING, and ultimately COMPLETED. FAILED and CANCELLED are terminal alternatives.
Workflow identifier. Use this value to poll for status and to construct deep links into the Commerce OS UI.
"9349773c-27fe-4d4f-a093-a5793dff8702"
"691df5949676c8e0b1d7b6b3"
Current lifecycle state.
PENDING, RUNNING, IN_PROGRESS, REVIEW_PENDING, COMPLETED, FAILED, CANCELLED "REVIEW_PENDING"
"2026-05-15T10:35:00Z"
"2026-05-15T10:42:08Z"
"OPTIMIZE"
COMMERCEOS, API "API"
null
Current step in the workflow. One of VALIDATE / VALIDATION, TAXONOMY_MAP / TAXONOMY, ENRICH / ENRICHMENT, or PUBLISH / PUBLISHED.
"TAXONOMY_MAP"
Active human-in-the-loop review gate. Populated when status is REVIEW_PENDING. One of VALIDATION_REVIEW, TAXONOMY_REVIEW, SAMPLE_REVIEW, ENRICHMENT_SAMPLE_REVIEW, FULL_ENRICHMENT_REVIEW, ENRICHMENT_FULL_REVIEW, or PUBLISH_APPROVAL.
"TAXONOMY_REVIEW"
"Spring 2026 catalog enrichment"
[]"2026-05-15T10:35:12Z"
null
Most recent error message. Populated when status is FAILED.
null
0
Phase-keyed progress for the workflow, computed at read time. The phases object contains one key per phase (validation, taxonomy, enrichment, publish), each carrying a phase-specific structure.
Aggregate counts across categories at the current enrichment-side review gate. This summary supports diagnosing which categories are blocking progression. For non-enrichment gates (taxonomy, validation, publish) the counts are typically zero, because those gates are workflow-level rather than per-category.
Resolved reference for the created_by and updated_by audit fields. A type of unknown is returned when the referenced identifier can no longer be resolved (for example, when a user has been hard-deleted).
Resolved reference for the created_by and updated_by audit fields. A type of unknown is returned when the referenced identifier can no longer be resolved (for example, when a user has been hard-deleted).