Create Child Tasks
Quick Links
Overview • What's New? • How-To • Examples • Troubleshooting • FAQ • Support • Changelog • Credits
Overview
Tired of manually creating the same set of child work items for each parent work item — what if you could generate them instantly with one click?
Create Child Tasks adds a toolbar action to Azure DevOps work items that instantly creates multiple child tasks (or any other child work item types) from a parent work item using team-defined Templates. Templates are matched by simple rules or JSON filters (type, state, title wildcards, tags, area/iteration, etc.), and the corresponding child work items are automatically created.

Key Features
- One-click creation of multiple child work items from a parent.
- Uses team-defined Templates for flexible, reusable child definitions.
- Supports both simple (bracketed) and advanced (JSON) template filters.
- Filters by parent type, state, title (with wildcards), tags, area, iteration, board column, or board lane.
- Supports AND/OR logic in filter rules.
- Automatically copies fields (Title, AreaPath, IterationPath) from parent if not specified.
- Supports special tokens:
@me for AssignedTo, @currentiteration for IterationPath.
- Works with any child work item type (Tasks, Bugs, Features, custom types).
- Child items are created in alphabetical order by template name (can be controlled with prefixes).
- Well supported with comprehensive documentation and practical examples.
Compatibility
1‑Click Child‑Links extension: This extension builds on and enhances the original 1‑Click Child‑Links extension. The original has good core functionality but has not been updated since 2020 and has known issues. This extension provides fixes, enhanced features, better performance, expanded documentation, and active support. To migrate from 1‑Click Child‑Links to Create Child Tasks, simply disable or uninstall the 1‑Click Child‑Links extension and install/enable the Create Child Tasks extension. Existing templates and functionality will continue to work as before.
Azure DevOps: The latest version of Create Child Tasks is supported on Azure DevOps Services (cloud) and Azure DevOps Server 2020 Update 2 and later. It is not compatible with Azure DevOps Server 2019 or any earlier TFS versions. For those older on‑premises deployments, use the previous 1.0.0 release by downloading and manually installing this VSIX: https://mattwilks.ca/downloads/wilksmatt.create-child-tasks-public-1.0.0.vsix.
What's New?
Version 1.1.x brings a big speed boost when creating child work items that is now much faster, especially in Chrome and Edge browsers. To unlock these performance improvements, this version updates compatibility to modern Azure DevOps platforms and drops support for older on‑premises installs (Azure DevOps Server 2019 and earlier TFS). See the Compatibility section for how to continue using version 1.0.0 on older servers.
See the full details in the Changelog.
How-To Guide
Quick Start
- Install: Install the extension at your Azure DevOps organization (org-level install; once installed it is available to all projects in that organization / collection).
- Define Templates: Define one or more Templates for your team (Project Settings → Boards → Team Configuration → Templates).
- Create Child Work Items: Open a parent work item (User Story / PBI / Bug) and choose "Create Child Tasks" from the toolbar — child work items will be created from matching templates.
Defining Work Item Templates
Create work item Templates via Project Settings → Boards → Team Configuration → Templates.

The template's Description is used for filtering rules. Two formats are supported:
- Basic Filter: Square-bracket list of parent work item types. Example: [Product Backlog Item, Bug]
- Advanced Filter: Single-line minified JSON with an applywhen array (see below)

Basic Filter (Simple)
Place a bracketed list of parent types in the template Description. This will apply the template for those parent types.
[Product Backlog Item, Bug]
Advanced Filter (JSON)
Put a single-line JSON object containing an "applywhen" array into the template Description. Each entry in applywhen is evaluated as OR; fields inside an entry are combined as AND.
Example
{
"applywhen": [
{
"System.WorkItemType": "Product Backlog Item",
"System.State": [ "New", "Approved" ],
"System.BoardColumn": "Development",
"System.BoardLane": "Expedite",
"System.Title": "*Mobile*",
"System.Tags": [ "Tag1", "Tag2" ],
"System.AreaPath": "Project\\Area 1",
"System.IterationPath": "Project\\Iteration\\Sprint 1"
}
]
}
The above JSON filter rule will match any parent work item when: (WorkItemType = "Product Backlog Item") AND (State = "New" OR "Approved") AND (BoardColumn = "Developmen")...
See the Examples section below for a more extensive set of filter examples.
Supported Fields
Currently supported filter fields (in template Description JSON):
- System.WorkItemType
- System.State
- System.BoardColumn
- System.BoardLane
- System.Title
- System.Tags
- System.AreaPath
- System.IterationPath
Notes:
- Multiple applywhen entries = OR (any entry matching will apply the template).
- Arrays = OR across values for that field (with the exception of Tags).
- Tags as an array means all listed tags must be present (AND). For tag OR, add separate applywhen entries.
- Title supports wildcards (*) and is case-insensitive.
- AreaPath/IterationPath must match full path strings (case-insensitive). Escape backslashes in JSON (\\).
- Special token values in templates are supported: @me (AssignedTo), @currentiteration (IterationPath).
- The following child work item field values will be automatically inheritied from the parent work item if not explicitly defined in the Child Work Item Template: Title, AreaPath, IterationPath.
Applying Child Work Items
- Open a parent work item.
- Select "Create Child Tasks" from the toolbar.
- The extension finds matching Work Item Templates and creates them as child work items.


Ordering
By default, child work items are created in alphabetical order based on the Template Name. To control the creation order, prefix template names with numbers (for example, 01-, 02-).

The child work items will be created in the same alphabetical order of the Template Name fields. Keep in mind, that the title of the child work item is derived by specifiying the System.Title field in the work item template – it is not derived from the Template Name.

Wildcards for Title
You might want to apply child work items to a parent work item if the parent work item title matches exactly or only partially. It's possible to match the parent work item title by using a wildcard filter rule which uses the asterick character ("*").
{
"applywhen": [
{
"System.WorkItemType": "Product Backlog Item",
"System.Title": "*WildcardString*"
}]
}
The following are examples of how the wildcard matching can be used:
- "a*b" Everything that starts with "a" and ends with "b"
- "a*" Everything that starts with "a"
- "*b" Everything that ends with "b"
- "*a*" Everything that has an "a" in it
- "*a*b*" Everything that has an "a" in it, followed by anything, followed by a "b", followed by anything
Note: Wildcard filter rules currently only work for the System.Title field.
Manual install on Azure DevOps Server 2019 / TFS (older)
For older on-premises servers (Azure DevOps Server 2019 and earlier TFS versions), use extension version 1.0.0 and install it manually:
- Download the VSIX: Download the 1.0.0 VSIX from: https://mattwilks.ca/downloads/wilksmatt.create-child-tasks-public-1.0.0.vsix.
- Sign in to your server: Open your Azure DevOps Server / TFS web portal as a Project Collection Administrator.
- Upload the VSIX: Go to the collection/organization settings → Extensions (or Manage extensions) and choose Upload extension/Upload. Browse to the downloaded VSIX file and upload it.
- Install for your collection/projects: After upload, install or enable the extension for the target collection and projects.
Examples
Template Description basic example:
[User Story, Bug]
Minimal JSON example (applies to User Story titles containing "integration"):
{
"applywhen": [
{
"System.WorkItemType": "User Story",
"System.Title": "*integration*"
}
]
}
Multiple rules (OR across rules, AND within rules):
{
"applywhen": [
{
"System.WorkItemType": "User Story",
"System.State": "Approved"
},
{
"System.WorkItemType": "User Story",
"System.State": "Committed"
},
{
"System.WorkItemType": "Bug",
"System.Tags": ["Security"]
}
]
}
Multiple rules (AND across rules, OR within rules):
{
"applywhen": [
{
"System.WorkItemType": ["Product Backlog Item", "User Story"],
"System.State": ["New", "Approved", "Committed"],
"System.BoardColumn": ["Backlog", "Ready"],
"System.BoardLane": ["Default", "Expedite"],
"System.Tags": ["Overdue", "Urgent"],
"System.AreaPath": ["Project\\Area 1", "Project\\Area 2"],
"System.IterationPath": ["Project\\Iteration\\Sprint 1", "Project\\Iteration\\Sprint 2"]
}
]
}
Troubleshooting
No templates found:
- Verify templates exist for the project team (Project Settings → Boards → Team Configuration → Templates). Templates are defined and scoped per team and will only apply to work items for that specific team — they do not apply to other teams even if the user creating the child work items belongs to those teams. If you need the same templates elsewhere, create or copy them for each team (or switch the active team in the web UI to manage that team's templates).
- Verify the supported work item types configured for the Project in the Azure DevOps Organization Process settings (Project Settings → Boards → Process → Backlog Levels).
Work Items not created:
- If running on-premise Azure DevOps / TFS Server, verify that the installed extension version is compatible with your Azure DevOps Server version. See the Compatibility section for more inforation and guidance.
- Confirm filter rules match indended target parent work item field values.
- Check for malformed JSON in template description. Ensure your JSON is valid. Common issues include trailing commas, missing brackets, or improper escaping of backslashes. Use a JSON validator if unsure.
- Confirm you have permission to create work items in the target project.
- Check browser console logs for error messages from the extension.
Tags filter not matching:
- Template tag filters require all listed tags (AND). Use multiple applywhen entries for OR.
Iteration/Area not matching:
- Use exact full path strings; escape backslashes in JSON (e.g., "Project\\Iteration\\Sprint 1").
Child work item title is same as parent work item:
- The child work item title is determined by specifying the System.Title field in the template. If System.Title is not specified in the template, the extension will copy the parent work item's title to the child. The Template Name is not used as the child work item title.
FAQ
Q: What child work item types are supported?
- A: The extension supports creating any child work item type, not just Tasks. The available child types depend on how your process is configured in Azure DevOps Organization Process settings (Project Settings → Boards → Process → Backlog Levels). For example, you can use this extension to create Bugs, Features, or custom types as children, as long as they are defined as valid child types in your process/backlog configuration.
Q: Does this extension work with Azure DevOps Server / TFS (on-premises)?
- A: The latest version of Create Child Tasks is supported on Azure DevOps Services (cloud) and Azure DevOps Server 2020 Update 2 and later. It is not compatible with Azure DevOps Server 2019 or any earlier TFS versions. For those older on‑premises deployments, use the previous 1.0.0 release by downloading and manually installing this VSIX: https://mattwilks.ca/downloads/wilksmatt.create-child-tasks-public-1.0.0.vsix.
Q: How do I match templates for multiple states or types?
- A: Use arrays in the JSON for that field (e.g., "System.State":["Approved","Committed"]).
Q: Can I use wildcards on Area/Iteration?
- A: No — AreaPath and IterationPath require exact full paths (case-insensitive).
Q: How do I make tags match either A or B?
- A: Add multiple applywhen entries, one per tag, to produce an OR effect.
Q: How are AssignedTo and Iteration special tokens handled?
- A: Use @me in a template field to assign to the current user; use @currentiteration to use the team's current iteration (handled at creation time).
Q: Can I enable the extension for only some projects?
- A: No. Azure DevOps Services installs extensions at the organization level (Azure DevOps Server: collection level). They become available to all projects in that scope. To restrict usage you’d need to control permissions or uninstall/disable the extension at the org level.
Q: Why is the child work item title the same as the parent work item? How do I specify the title?
- A: If the Task template does not define System.Title then the extension copies the parent’s title. To set a custom title, add the System.Title field to the Task template with the desired text.
Changelog
All notable changes to Create Child Tasks. Dates in YYYY-MM-DD.
1.1.2 — 2026-01-25
- Fixed: Error creating work items on Azure DevOps Server 2020 due to api-version=6.0 compatibility; Extension now uses the required 6.0-preview version.
1.1.1 — 2026-01-16
- Fixed: Big speed boost in Chrome and Edge browsers
- Changed: Improved overall performance of child work item generation
- Changed: Logging glow-up that brings clearer formatting and coverage when you need details
- Changed: General tune-ups and polish across the extension
- Changed: Updated compatibility to Azure DevOps Services and Azure DevOps Server 2020 Update 2+ to take advantage of improved performance on modern platforms; dropped support for older on-premises installs (Azure DevOps Server 2019 and earlier TFS). See the Compatibility section for how to continue using version 1.0.0 on older servers.
1.0.0 — 2025-12
- Fixed: Broken Tag filtering
- Fixed: Resolved "Error saving [object Object]" error message when creating child work items
- Fixed: Invalid/malformed template JSON failing remaining template matching (possibly causing not all matching child work items to be created)
- Fixed: Graceful handling use of @currentiteration when no default iterations are setup for respective Project Team
- Added: IterationPath filtering
- Added: Release Notes / Changelog
- Changed: Improved end user documentation: Overview, Key Features, How-To, Examples, Troubleshooting, FAQs
- Changed: Improved browser console logging
- Changed: Marketplace lising updates: Description, Tags
0.3.x — 2020
- Added: Wildcard filtering on Title
- Changed: Removed "Create Child Tasks" button from backlog and board menu views to prevent child work items not being created reliably
0.1.x — 2019
Support
For help and to get in touch:
- Check docs first: Review the Overview, How‑To Guide, Examples, Troubleshooting, and FAQ sections to see if your question is already answered.
- Use Q&A: For questions, feature requests, and anything not covered by the documentation, please use the extension's Q&A to submit and discuss.
- Email: For other scenarios or to contact the developer directly, email support@mattwilks.ca.
Credits
Originally cloned from https://github.com/figueiredorui/1-click-child-links