What Are Workflows?
A workflow defines relationships between attributes in your taxonomy. During an enrichment run, Cernel analyzes the dependencies of the requested attributes and generates an execution order that respects those dependencies. Key Concepts:- Define dependencies between attributes in a taxonomy
- During enrichment, only attributes in the request are considered
- The system automatically orders execution based on the dependency graph
- Dependencies enable context-aware, multi-stage content generation
When you enrich attributes [A, B, C], Cernel orders them based on their defined dependencies. If C depends on B, and B depends on A, they’ll execute as: A → B → C.
How Dependencies Work
Dependencies work on two independent axes that control different aspects of workflow behavior:Axis 1: Dependency Type (Required vs Optional)
What happens when a dependency has no value?Required Dependencies
Fails if dependency value is not setThe dependent attribute will fail if the required dependency ran but produced no value or failed to generate data.
Optional Dependencies
Continues even if dependency value is not setThe dependent attribute continues regardless of whether the dependency has data. It will use whatever is available.
Axis 2: Inheritance Mode (Inherited vs In-Group)
What happens when a dependency is not in the enrichment request?In-Group Dependencies
Must include all dependencies in enrichment setIf attribute A depends on B (in-group), you MUST include both A and B in your enrichment request, or A will be skipped entirely.
Inherited Dependencies
Can skip dependencies not in enrichment setIf attribute A depends on B (inherited), A will still run even if B is not in the enrichment request. The dependency is optional at the request level.
Combining the Two Axes
These two axes are independent and combine to create four possible configurations:| Configuration | Dependency Not in Request | Dependency Runs But No Value |
|---|---|---|
| Required + In-Group | Dependent attribute skipped | Dependent attribute fails |
| Optional + In-Group | Dependent attribute skipped | Dependent attribute continues |
| Required + Inherited | Dependent attribute runs | Dependent attribute fails |
| Optional + Inherited | Dependent attribute runs | Dependent attribute continues |
In-Group Dependencies
In-group dependencies are defined between attributes within a taxonomy. They enforce strict dependency constraints: all dependencies must be included in the enrichment request.Characteristics
- Defined directly within a taxonomy/group
- Strict enforcement: Dependent attributes are skipped if dependencies are not in the enrichment set
- Ensures complete workflows when all required attributes are present
- Best for workflows where dependencies are critical
How to Define In-Group Dependencies
1
Define Attributes
Create attributes in your taxonomy (e.g., Color, Material, Description)
2
Set Dependencies
For each attribute, define which other attributes it depends on within the taxonomy. Mark each dependency as required or optional.
3
Run Enrichment
When enriching, include all attributes and their dependencies in your request. Cernel will execute them in dependency order.
Example: Fashion Products Workflow
A typical fashion product workflow might look like:Setting Up In-Group Dependencies
Define dependencies between attributes in your taxonomy:- Navigate to your taxonomy configuration
- For each attribute, specify which other attributes it depends on
- Mark each dependency as:
- Required or Optional (controls behavior when dependency has no value)
- In-Group (must include all dependencies in enrichment requests)
- Save your configuration
When creating enrichment requests, the UI will show you which dependencies are required for each attribute to help you include all necessary attributes.
Example: In-Group Dependencies with Required vs Optional
Scenario: Description depends on Color (required) and Material (optional), both as in-group dependencies. ❌ Missing dependency - Description is skipped:Use Cases for In-Group Dependencies
Complete Workflow Enforcement
Complete Workflow Enforcement
When you need to ensure all steps in a workflow are executed together, use in-group dependencies. This prevents partial workflows from running.
Category-Specific Pipelines
Category-Specific Pipelines
Define different dependency structures for different product categories by creating separate taxonomies with different in-group dependencies.
Multi-Stage Batch Processing
Multi-Stage Batch Processing
When enriching in batches, use in-group dependencies to ensure each batch includes all necessary attributes for complete processing.
Inherited Dependencies
Inherited dependencies provide flexibility by allowing attributes to run even when their dependencies are not included in the enrichment request. The dependent attribute will simply skip the missing dependencies and proceed with whatever data is available.Characteristics
- Dependencies can be defined on the taxonomy but marked as “inherited”
- Flexible execution: Dependent attributes run even if dependencies are missing from the enrichment set
- Missing dependencies are skipped automatically
- Best for workflows where dependencies enhance quality but aren’t mandatory
If attribute A has an inherited dependency on attribute B, A will still run even if you only request [A]. The dependency B is automatically skipped if not in the request.
How Inherited Dependencies Work
When you define a dependency as inherited:- Dependency in request: Executes normally in dependency order
- Dependency not in request: Skipped automatically, dependent attribute still runs
- Dependency fails/no value:
- If required: Dependent attribute fails
- If optional: Dependent attribute continues
Inheritance Hierarchy
Products can inherit dependency configurations from collections:Example: Inherited Dependencies with Required vs Optional
Scenario: Description depends on Color (required, inherited) and Material (optional, inherited). ✅ Partial enrichment works:Inherited dependencies provide maximum flexibility. You can enrich any subset of attributes, and the system will use whatever dependencies are available in the request.
When to Use In-Group vs. Inherited Dependencies
Use In-Group When...
- Strict enforcement: all dependencies must be present
- Running complete, structured workflows
- Dependencies are critical to quality
- Batch processing with consistent attribute sets
Use Inherited When...
- Flexibility: allow partial enrichments
- Dependencies enhance but aren’t mandatory
- Ad-hoc enrichments with varying attributes
- Different products need different combinations
Product-Level Configuration
Products inherit dependency configurations from their collections, but you can override settings at the product level when needed: When to override:- Products with unique enrichment requirements
- Testing new dependency configurations
- Special cases or premium products with different workflows
- One-off enrichments with custom needs
Best Practices
Choose the Right Mode
Choose the Right Mode
Use in-group for strict, complete workflows. Use inherited for flexible, partial workflows. Don’t mix modes unless you have a specific reason.
Mark Dependencies Appropriately
Mark Dependencies Appropriately
Use required when output quality depends critically on the dependency. Use optional when the dependency enhances quality but isn’t mandatory.
Include All Dependencies for In-Group
Include All Dependencies for In-Group
When using in-group dependencies, always include all dependent attributes in your enrichment request, or the dependent attribute will be skipped.
Test Partial Workflows with Inherited
Test Partial Workflows with Inherited
Inherited dependencies enable flexible testing. You can enrich just one attribute without worrying about missing dependencies.
Avoid Circular Dependencies
Avoid Circular Dependencies
Never create cycles (A depends on B, B depends on A). The system will reject circular dependency graphs.
Document Your Workflows
Document Your Workflows
Clearly document why you chose in-group vs inherited, and which dependencies are required vs optional. This helps your team understand the workflow logic.
Workflow Execution
How Workflows Run
When you start an enrichment with multiple attributes, Cernel automatically:- Analyzes Dependencies: Examines the dependency graph for the requested attributes
- Generates Execution Order: Creates an order that respects all dependencies
- Applies Inheritance Rules:
- In-group: Skips dependent attributes if dependencies are missing
- Inherited: Skips missing dependencies, runs dependent attributes anyway
- Executes in Order:
- Independent attributes run in parallel
- Dependent attributes wait for prerequisites
- Failed dependencies trigger required dependency failures
Execution Order Example
Given these dependencies:[Color, Material, Style, Description, Brand, SEO_Meta]
Execution Order:
Monitoring Workflow Progress
Track workflow execution in the Jobs dashboard:- View execution order and current stage
- Identify which attributes are waiting for dependencies
- See failure reasons (missing required dependency, etc.)
- Analyze execution time per stage
Common Workflow Patterns
Sequential Pipeline
Basic → Intermediate → Advanced attributes in strict order
Fan-Out Pattern
One base agent feeds multiple dependent agents in parallel
Multi-Stage Generation
Generate structured data, then content, then SEO
Conditional Workflows
Different paths based on product characteristics
Troubleshooting Workflows
Attribute Was Skipped
Attribute Was Skipped
Issue: An attribute didn’t run during enrichment.Causes:
- In-group dependency missing: If the attribute has in-group dependencies, all dependencies must be in the enrichment request.
- Already has value: Some enrichments skip attributes that already have values.
Attribute Failed Due to Dependency
Attribute Failed Due to Dependency
Issue: Attribute failed with “required dependency missing value” error.Cause: A required dependency ran but didn’t produce a value (failed or empty result).Solution:
- Check why the dependency failed - review its job logs
- Consider making the dependency optional if the attribute can work without it
- Fix the dependency’s configuration or source data
Circular Dependency Error
Circular Dependency Error
Issue: Cannot save dependency configuration due to circular dependencies.Cause: Attribute A depends on B, and B depends on A (directly or indirectly).Solution: Review your dependency graph and break the cycle. Restructure dependencies to flow in one direction.
Unexpected Execution Order
Unexpected Execution Order
Issue: Attributes running in unexpected order.Cause: Dependencies you didn’t expect are affecting execution order.Solution: Review all dependency configurations. Check for inherited dependencies from collections that may not be obvious.
Performance Issues
Performance Issues
Issue: Workflow takes much longer than expected.Causes:
- Too many sequential dependencies forcing serial execution
- Long dependency chains
- Unnecessary required dependencies causing failures and retries
- Minimize dependency chains where possible
- Use parallel execution by reducing dependencies
- Consider making some dependencies optional
What’s Next?
Attribute Prompts
Customize agent prompts for each workflow stage
Collections & Groups
Organize products for workflow assignment
Bulk Operations
Run workflows across large product sets
Jobs & Monitoring
Monitor workflow execution and progress
Next: Learn about Bulk Operations to apply workflows at scale across your entire catalog.
