How JQL Queries Work
Your JQL query determines which issues are synced:- Configure your base JQL query in Configure JIRA Sync
- The plugin executes this query against Jira’s REST API
- For incremental syncs, a time filter is automatically appended
- Results are fetched with pagination (100 issues per page)
- Each matching issue creates or updates an OmniFocus task
The plugin automatically handles pagination. Your query can return thousands of issues - all will be synced.
Common Query Patterns
My Unresolved Issues
Fetch all your open issues that haven’t been resolved yet:Why use 'resolution = Unresolved'?
Why use 'resolution = Unresolved'?
The
resolution field indicates whether an issue has been resolved, regardless of its status. Using resolution = Unresolved ensures you see all active work, even if the issue status is “In Progress”, “To Do”, “Waiting”, etc.Current Sprint
Sync issues assigned to you in active sprints:High Priority Issues
Focus on your most important tasks:Priority values are case-sensitive and may vary by Jira instance. Common values:
Highest, High, Medium, Low, Lowest.Specific Project
Sync issues from a particular project:PROJ with your project key (e.g., MYTEAM, ENG, SUPPORT).
Multiple Projects
Sync issues from several projects:By Label
Filter issues with specific labels:By Issue Type
Sync only specific issue types:Task, Bug, Story, Epic, Sub-task.
Advanced Query Patterns
Combining Multiple Criteria
Create complex filters by combining conditions withAND:
OR Conditions
UseOR to broaden your criteria:
Excluding Issues
Use!= or NOT IN to exclude specific values:
Date Ranges
Filter by creation or update date:-7d: Last 7 days-1w: Last week-2w: Last 2 weeks-1M: Last month
Epic and Parent Issues
Sync issues belonging to specific epics:Custom Fields
Query custom fields using their ID:Finding custom field IDs
Finding custom field IDs
- Go to Jira Settings → Issues → Custom fields
- Click on the custom field name
- Look at the URL - the ID is in the format
customFieldId=10001 - Use
cf[10001]in your JQL query
Query Testing
Before saving your JQL query in the plugin configuration, test it in Jira:The plugin’s Test Connection feature validates your query syntax before saving.
Incremental Sync Query Modification
During incremental sync, the plugin automatically modifies your query:jiraCommon.js:273-285:
You don’t need to add the time filter yourself - the plugin handles this automatically for incremental syncs.
Query Validation
The plugin validates your query during configuration using Jira’s REST API:- Tests authentication with
/rest/api/3/myself - Executes your JQL query with
maxResults: 1 - Returns the total issue count matching your query
- Shows clear error messages if the query is invalid
Common Query Errors
Syntax Errors
- Missing Operator
- Unquoted Spaces
- Invalid Field Name
- Case Sensitivity
Error:
assignee currentUser()Fix: assignee = currentUser()Always use = or other comparison operators.Permission Errors
If your query returns a 403 Forbidden error:- You may not have permission to view certain projects
- Your Jira account may lack “Browse Projects” permission
- Contact your Jira administrator for access
Query Performance Tips
Be Specific
Narrow queries perform better:Use Indexed Fields
These fields are typically indexed and perform well:assigneeprojectstatuspriorityresolutioncreatedupdated
Avoid Text Searches
Text searches are slow:Real-World Query Examples
- Software Engineer
- Support Team
- Product Manager
- Multi-Team
Resources
For more information on JQL syntax:JQL syntax may vary slightly between Jira Cloud and Jira Server/Data Center. This plugin is designed for Jira Cloud (REST API v3).