Issue Types
Issue types define the nature and hierarchy of your work items in Zenhub. This guide covers how to create, read, update, and delete issue types to organize your work effectively.
Understanding Issue Types
Issue types help categorize and organize work items with different levels of hierarchy and purposes. They determine where issues appear in your workspace and how they relate to each other.
Types of Issue Types
- ZenhubIssueType: Issue types that only exist within Zenhub
- GithubIssueType: Issue types that are synced with GitHub repositories
Key Properties
- level: Integer from 1-5 indicating hierarchy (1 = highest level like Initiative, 5 = lowest like Sub-task)
- disposition: Where the issue type appears:
PLANNING_PANEL
: Shows in Goals & Planning panel for strategic workBOARD
: Shows on workspace boards for day-to-day work
- name: Display name for the issue type
- color: Hex color code for visual identification
- description: Optional description explaining the issue type's purpose
- isDefault: Whether this is the default issue type for the organization
- isDefaultForLevel: Whether this is the default issue type for its level
- isEnabled: Whether the issue type is currently active
Creating Issue Types
Create a Zenhub Issue Type
mutation createIssueType($input: CreateInput!) {
createIssueTypeOption(input: $input) {
issueTypeOption {
id
name
level
disposition
color
description
isEnabled
isDefault
isDefaultForLevel
}
}
}
Variables:
{
"input": {
"name": "Epic",
"level": 2,
"disposition": "PLANNING_PANEL",
"color": "#6366f1",
"description": "Large features or initiatives that span multiple sprints",
"zenhubOrganizationId": "ZENHUB_ORGANIZATION_ID",
"isEnabled": true,
"isDefault": false,
"isDefaultForLevel": true
}
}
Common Issue Type Examples
Initiative (Level 1)
{
"input": {
"name": "Initiative",
"level": 1,
"disposition": "PLANNING_PANEL",
"color": "#7c3aed",
"description": "High-level strategic goals for the quarter or year",
"zenhubOrganizationId": "ZENHUB_ORGANIZATION_ID",
"isEnabled": true
}
}
Epic (Level 2)
{
"input": {
"name": "Epic",
"level": 2,
"disposition": "PLANNING_PANEL",
"color": "#6366f1",
"description": "Large features or capabilities",
"zenhubOrganizationId": "ZENHUB_ORGANIZATION_ID",
"isEnabled": true
}
}
Story (Level 3)
{
"input": {
"name": "Story",
"level": 3,
"disposition": "BOARD",
"color": "#10b981",
"description": "User-facing features or requirements",
"zenhubOrganizationId": "ZENHUB_ORGANIZATION_ID",
"isEnabled": true
}
}
Task (Level 4)
{
"input": {
"name": "Task",
"level": 4,
"disposition": "BOARD",
"color": "#f59e0b",
"description": "Implementation work or technical tasks",
"zenhubOrganizationId": "ZENHUB_ORGANIZATION_ID",
"isEnabled": true
}
}
Sub-task (Level 5)
{
"input": {
"name": "Sub-task",
"level": 5,
"disposition": "BOARD",
"color": "#8b5cf6",
"description": "Small pieces of work within a larger task",
"zenhubOrganizationId": "ZENHUB_ORGANIZATION_ID",
"isEnabled": true
}
}
Reading Issue Types
Get All Issue Types for an Organization
query getIssueTypes($zenhubOrganizationId: ID!) {
node(id: $zenhubOrganizationId) {
... on ZenhubOrganization {
id
issueTypeOptions {
nodes {
id
name
level
disposition
color
description
isEnabled
isDefault
isDefaultForLevel
zenhubIssueType {
issuesCount
}
hasRelatedGithubIssueTypes
relatedGithubIssueTypes {
id
name
issuesCount
owner {
id
login
}
}
}
totalCount
}
}
}
}
Get Available Issue Types for a Repository
query getAssignableIssueTypes($repositoryId: ID!, $workspaceId: ID!) {
node(id: $repositoryId) {
... on Repository {
assignableIssueTypes(workspaceId: $workspaceId) {
nodes {
... on GithubIssueType {
id
name
level
disposition
color
description
isEnabled
}
... on ZenhubIssueType {
id
name
level
disposition
color
description
isEnabled
}
}
}
}
}
}
Get a Specific Issue Type
query getIssueType($issueTypeId: ID!) {
node(id: $issueTypeId) {
... on IssueTypeOption {
id
name
level
disposition
color
description
isEnabled
isDefault
isDefaultForLevel
zenhubIssueType {
issuesCount
zenhubOrganization {
id
name
}
}
}
}
}
Updating Issue Types
Update an Existing Issue Type
mutation updateIssueType($input: UpdateInput!) {
updateIssueTypeOption(input: $input) {
issueTypeOption {
id
name
level
disposition
color
description
isEnabled
isDefault
isDefaultForLevel
}
}
}
Variables:
{
"input": {
"issueTypeOptionId": "ISSUE_TYPE_OPTION_ID",
"name": "Updated Epic",
"level": 2,
"disposition": "PLANNING_PANEL",
"color": "#3b82f6",
"description": "Updated description for epics",
"isEnabled": true,
"isDefault": false,
"isDefaultForLevel": true
}
}
Enable/Disable an Issue Type
{
"input": {
"issueTypeOptionId": "ISSUE_TYPE_OPTION_ID",
"isEnabled": false
}
}
Change Issue Type Color
{
"input": {
"issueTypeOptionId": "ISSUE_TYPE_OPTION_ID",
"color": "#ef4444"
}
}
Deleting Issue Types
Delete an Issue Type
mutation deleteIssueType($input: DeleteInput!) {
deleteIssueTypeOption(input: $input) {
issueTypeOption {
id
}
}
}
Variables:
{
"input": {
"issueTypeOptionId": "ISSUE_TYPE_OPTION_ID"
}
}
Deleting an issue type will affect all issues currently using that type. Make sure to update or migrate issues to different types before deletion.
Issue Type Management Patterns
Setting Up a Standard Hierarchy
-
Create Level 1 (Strategic):
- Initiative
- Theme
- Objective
-
Create Level 2 (Planning):
- Epic
- Feature
- Project
-
Create Level 3 (Implementation):
- Story
- Requirement
- Bug
-
Create Level 4 (Execution):
- Task
- Spike
- Chore
-
Create Level 5 (Granular):
- Sub-task
- Research Item
Disposition Strategy
PLANNING_PANEL (Strategic Focus):
- Levels 1-2: Initiatives, Epics
- Long-term planning items
- Cross-team coordination
BOARD (Execution Focus):
- Levels 3-5: Stories, Tasks, Sub-tasks
- Sprint planning items
- Day-to-day work
Color Coding Strategy
Consider using consistent color patterns:
{
"level1": "#7c3aed", // Purple - Strategic
"level2": "#6366f1", // Indigo - Planning
"level3": "#10b981", // Green - Features
"level4": "#f59e0b", // Amber - Tasks
"level5": "#8b5cf6" // Violet - Sub-tasks
}
Migrating from Legacy Epics/Projects
If you're coming from legacy Epics or Projects, you can:
- Audit existing items: Query your current epics/projects
- Create appropriate issue types: Set up the hierarchy you need
- Convert existing items: Change their issue types using the mutation in Working with Issues
- Establish new workflows: Train your team on the new structure
Related Guides
- Working with Issues - Using issue types when creating and updating issues
- Sub-Issues - Creating hierarchical relationships
- Getting Entity IDs - Finding organization and workspace IDs
Best Practices
- Consistent Levels: Establish clear definitions for each level across your organization
- Meaningful Names: Use names that make sense to your team and stakeholders
- Color Strategy: Use consistent colors to help users quickly identify issue types
- Disposition Alignment: Put strategic items in Planning Panel, execution items on Boards
- Default Management: Set appropriate defaults to streamline issue creation
- Regular Review: Periodically review and adjust issue types based on team usage
- Documentation: Document your issue type definitions for team reference