Change Order Workflows
Overview
Change Order Workflow Templates provide a powerful way to customize the approval process for change orders in your PLM library. Using YAML configuration files, you can define multi-stage review processes, specify required approvers, and configure automated actions that align with your organization's change management procedures.
Why Use Workflow Templates?
Every organization has unique requirements for managing engineering changes. Workflow templates allow you to:
Standardize Processes: Ensure consistent review procedures across all change orders
Enforce Compliance: Meet regulatory requirements with mandatory approval stages
Automate Actions: Configure automatic notifications and resolution behaviors
Customize Fields: Capture the specific information your team needs for decision-making
Getting Started
Each Duro library comes with two default workflow templates:
Default Template (
default.yaml): A simple single-stage approval workflowDouble Template (
double.yaml): A two-stage workflow with impact analysis fields
These templates serve as starting points that you can customize for your specific needs.
Basic Workflow Structure
Every workflow template follows this structure:
Creating Custom Fields
The details.info.groups section lets you define custom fields that users fill out when creating a change order. Fields are organized into logical groups for better user experience.
Example: Adding Change Classification
Supported Field Types
text: Single-line text input
longtext: Multi-line text area
number: Numeric values
date: Date picker
currency: Monetary values with currency formatting
enum: Single selection from predefined options
list: Multiple selections from predefined options
Configuring Approval Stages
The stages.open section defines your review process. You can create multiple stages that execute sequentially.
Single-Stage Approval
Multi-Stage Approval
Approval Types Explained
Unanimous: All reviewers must approve
Majority: More than 50% of reviewers must approve
Minimum: At least the minimum number of reviewers must approve
Adding Validations
Field validations ensure data quality and completeness:
Automating Resolutions
Configure automatic actions when change orders are approved, rejected, or withdrawn:
Best Practices
1. Start Simple
Begin with a basic workflow and add complexity as needed. It's easier to expand a working workflow than debug a complex one.
2. Use Descriptive Names
Choose clear, meaningful names for stages and fields:
✅ Good:
manufacturing_impact_assessment❌ Avoid:
field1,stage_a
3. Group Related Fields
Organize fields into logical groups to improve the user experience:
4. Document Your Workflow
Always include a clear description:
5. Test Thoroughly
Before deploying a new workflow:
Create test change orders using the workflow
Verify all stages execute correctly
Confirm notifications reach the right people
Test edge cases (rejections, withdrawals)
Common Patterns
Pattern 1: Cost-Based Escalation
For organizations where higher-cost changes need additional approval:
Pattern 2: Department-Specific Reviews
When different departments need to review changes:
Creating Templates via the GraphQL API
You can create and manage change order templates programmatically using the GraphQL API through Apollo Studio, Duro's interactive API explorer. This approach is useful for:
Testing and validating your workflow configurations before deployment
Creating templates across multiple libraries
Version controlling your workflow configurations
Prerequisites
Before you begin, you'll need:
A Duro API Key: Navigate to
https://durohub.com/org/@<your-org>/libs/<your-library>/settings/api-keysto generate one. See Getting Started → Authentication for more information.Your YAML workflow template: Either use one of the default templates or create your own custom configuration
Step 1: Prepare Your YAML Configuration
First, create your workflow template YAML file. Here's a starter template:
Step 2: Minify Your YAML
Apollo Studio requires the YAML to be provided as a single-line string. To convert your YAML:
Visit the YAML Minifier: Go to https://onlineyamltools.com/minify-yaml
Paste your YAML: Copy your YAML configuration and paste it into the left input box
Copy the minified output: The right side will show your minified YAML as a single line. Copy this entire string.

Step 3: Open Apollo Studio
Navigate to Apollo Studio: Open https://api.durohub.com/graphql in your browser
Set up authentication:
Click on the "Headers" tab at the bottom of the Operation panel
Add your API key as an
x-api-keyheaderThe value should be your API key (without quotes)

Step 4: Create Your Template
Paste the mutation: In the Operation panel, paste the following GraphQL mutation:
Set up variables: In the Variables panel, create your input object:
Replace YOUR_MINIFIED_YAML_HERE with the minified YAML string you copied from Step 2.
Execute the mutation: Click the "CreateTemplate" button to run the mutation

Step 5: Verify Your Template
A successful response will show:
Your template is now created and ready to use in your change order workflows!
Troubleshooting Common Issues
YAML Formatting Errors
If you receive a YAML parsing error:
Ensure your YAML is valid before minifying (use a YAML validator)
Check that the minified string is properly copied without line breaks
Verify all quotes and special characters are properly escaped
Authentication Failed
If you get an authentication error:
Verify your API key is correct
Ensure the
x-api-keyheader is properly set in the Headers tabConfirm your API key has the necessary permissions
Invalid Configuration
If the template configuration is rejected:
Review the error message for specific validation issues
Ensure all required fields are present in your YAML
Verify email addresses and other references are valid
Next Steps
Review the Change Order Workflow Reference for complete specification details
Explore example templates in your library's configuration
Start with a default template and customize it for your needs
Test your workflow with a pilot group before full deployment
Last updated
Was this helpful?