Design custom workflows with statuses, transitions, and validators
✓Works with OpenClaudeYou are a Jira workflow architect. The user wants to design custom workflows with statuses, transitions, and validators using Jira's workflow configuration system.
What to check first
- Verify you have admin access to your Jira instance and can navigate to Administration > Workflows
- Confirm the target project uses a Classic workflow (not a next-gen project, which uses different configuration)
- Check that the workflow you're modifying is not currently in use by active issues, or clone it first via Copy Workflow
Steps
- Navigate to Administration > Workflows and click Create Workflow or select an existing one to edit
- Add custom statuses by clicking Add Status and defining the status name, description, and category (To Do, In Progress, or Done)
- Create transitions between statuses by clicking the workflow diagram; specify the From and To status for each transition
- Name each transition (e.g., "Start Work", "Code Review", "Deploy") and set it as either Initial transition or between existing statuses
- Add validators to transitions by clicking the transition and adding conditions under Validators — use built-in validators like "Only Assignee", "Permission Check", or "Field Required"
- Configure post-functions on transitions to auto-populate fields (e.g., set Resolution to "Fixed" on "Done" transitions)
- Assign the workflow to your project via Project Settings > Workflows and select which issue types use it
- Publish the workflow; if modifying an active workflow, use Workflow Scheme to update existing issues or create a new scheme for new issues
Code
// Jira REST API example: Create a workflow transition with validators
import com.atlassian.jira.rest.client.api.JiraRestClient;
import com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory;
import com.atlassian.jira.rest.client.api.domain.Transition;
public class JiraWorkflowConfig {
public static void main(String[] args) throws Exception {
String jiraUrl = "https://your-instance.atlassian.net";
String email = "your-email@example.com";
String apiToken = "your-api-token";
JiraRestClient client = new AsynchronousJiraRestClientFactory()
.createWithBasicHttpAuthentication(new URI(jiraUrl), email, apiToken);
// Fetch existing workflow transitions for an issue
String issueKey = "PROJ-123";
BasicIssue issue = client.getIssueClient().getIssue(issueKey).claim();
// Retrieve available transitions
Iterable<Transition> transitions = issue.getTransitions();
for (Transition t : transitions) {
System.out.println("Transition ID: " + t.getId() +
", Name: " +
Note: this example was truncated in the source. See the GitHub repo for the latest full version.
Common Pitfalls
- Treating this skill as a one-shot solution — most workflows need iteration and verification
- Skipping the verification steps — you don't know it worked until you measure
- Applying this skill without understanding the underlying problem — read the related docs first
When NOT to Use This Skill
- When a simpler manual approach would take less than 10 minutes
- On critical production systems without testing in staging first
- When you don't have permission or authorization to make these changes
How to Verify It Worked
- Run the verification steps documented above
- Compare the output against your expected baseline
- Check logs for any warnings or errors — silent failures are the worst kind
Production Considerations
- Test in staging before deploying to production
- Have a rollback plan — every change should be reversible
- Monitor the affected systems for at least 24 hours after the change
Related Jira & Confluence Skills
Other Claude Code skills in the same category — free to download.
Jira Automation
Build Jira automation rules for transitions, assignments, and notifications
Jira JQL Queries
Write JQL queries for advanced issue filtering and dashboards
Jira REST API
Automate Jira with REST API for issues, sprints, and boards
Confluence Templates
Create Confluence page templates, blueprints, and macros
Jira JQL Query Builder
Write powerful JQL queries to filter Jira issues
Want a Jira & Confluence skill personalized to YOUR project?
This is a generic skill that works for everyone. Our AI can generate one tailored to your exact tech stack, naming conventions, folder structure, and coding patterns — with 3x more detail.