EQL Query Language
Master advanced search with Elixion Query Language (EQL)
EQL Query Language
EQL (Elixion Query Language) is a powerful query language for finding exactly the issues you need. Similar to JQL, it provides sophisticated filtering with a readable syntax.
Getting Started
Accessing EQL
- Navigation: Sidebar → Advanced Search
- Direct URL: Navigate to
/eql - Keyboard: Press
Ctrl/Cmd + K→ type "Advanced Search" - From Board: Click Advanced Search button
Interface
┌──────────────────────────────────────────────────────────────┐
│ EQL Query │
├──────────────────────────────────────────────────────────────┤
│ status = "In Progress" AND assignee = currentUser() │
│ [Run] [Save]│
├──────────────────────────────────────────────────────────────┤
│ Results: 12 issues │
│ │
│ AUTH-123 Login validation In Progress Alice 2d ago │
│ AUTH-124 Signup form In Progress Alice 3d ago │
│ UI-456 Button styles In Progress Alice 1d ago │
└──────────────────────────────────────────────────────────────┘
Basic Syntax
Field Comparison
field = "value"
Examples
-- Find all bugs
type = "Bug"
-- Find issues assigned to me
assignee = currentUser()
-- Find high priority items
priority = "High"
Available Fields
Issue Fields
| Field | Description | Example |
|-------|-------------|---------|
| project | Project key | project = "AUTH" |
| type | Issue type | type = "Bug" |
| status | Current status | status = "In Progress" |
| priority | Priority level | priority = "Critical" |
| assignee | Assigned user | assignee = "alice" |
| reporter | Creator | reporter = currentUser() |
| labels | Applied labels | labels = "urgent" |
Date Fields
| Field | Description | Example |
|-------|-------------|---------|
| created | Creation date | created >= -7d |
| updated | Last modified | updated >= startOfDay() |
| duedate | Due date | duedate < +2w |
| resolved | Resolution date | resolved >= startOfWeek() |
Numeric Fields
| Field | Description | Example |
|-------|-------------|---------|
| storypoints | Effort estimate | storypoints > 5 |
Text Fields
| Field | Description | Example |
|-------|-------------|---------|
| summary | Issue title | summary ~ "login" |
| description | Issue body | description ~ "error" |
| text | Title + body | text ~ "authentication" |
Relationship Fields
| Field | Description | Example |
|-------|-------------|---------|
| sprint | Sprint assignment | sprint = currentSprint() |
| epic | Parent epic | epic = "AUTH-1" |
| parent | Parent issue | parent IS NOT EMPTY |
Operators
Comparison Operators
| Operator | Meaning | Example |
|----------|---------|---------|
| = | Equals | status = "Done" |
| != | Not equals | status != "Done" |
| > | Greater than | created > -7d |
| < | Less than | duedate < now() |
| >= | Greater or equal | storypoints >= 5 |
| <= | Less or equal | priority <= "Medium" |
Text Operators
| Operator | Meaning | Example |
|----------|---------|---------|
| ~ | Contains | text ~ "bug" |
| !~ | Not contains | summary !~ "test" |
List Operators
| Operator | Meaning | Example |
|----------|---------|---------|
| IN | In list | status IN ("Open", "In Progress") |
| NOT IN | Not in list | type NOT IN ("Epic", "Task") |
Null Operators
| Operator | Meaning | Example |
|----------|---------|---------|
| IS EMPTY | No value | assignee IS EMPTY |
| IS NOT EMPTY | Has value | duedate IS NOT EMPTY |
Functions
User Functions
| Function | Returns |
|----------|---------|
| currentUser() | Your user |
assignee = currentUser()
reporter = currentUser()
Sprint Functions
| Function | Returns |
|----------|---------|
| currentSprint() | Active sprint |
sprint = currentSprint()
Date Functions
| Function | Returns |
|----------|---------|
| now() | Current date/time |
| startOfDay() | Midnight today |
| startOfWeek() | Monday this week |
| startOfMonth() | First of month |
| startOfYear() | First of year |
| endOfDay() | End of today |
| endOfWeek() | Sunday this week |
| endOfMonth() | Last of month |
Relative Dates
| Expression | Meaning |
|------------|---------|
| -7d | 7 days ago |
| +3d | 3 days from now |
| -2w | 2 weeks ago |
| +1w | 1 week from now |
| -1m | 1 month ago |
Combining Conditions
AND (Both Must Match)
status = "Open" AND priority = "High"
OR (Either Matches)
priority = "Critical" OR priority = "High"
Grouping with Parentheses
(status = "Open" OR status = "In Progress") AND assignee = currentUser()
Complex Queries
project = "AUTH"
AND type = "Bug"
AND priority IN ("Critical", "High")
AND (assignee = currentUser() OR assignee IS EMPTY)
AND created >= -30d
Common Queries
My Work
-- My open issues
assignee = currentUser() AND status != "Done"
-- My overdue issues
assignee = currentUser() AND duedate < now() AND status != "Done"
-- Issues I created
reporter = currentUser()
-- Issues mentioning me
text ~ "@myusername"
Sprint Queries
-- Current sprint
sprint = currentSprint()
-- Incomplete sprint work
sprint = currentSprint() AND status NOT IN ("Done", "Closed")
-- Backlog (no sprint)
sprint IS EMPTY AND status = "Open"
Bug Tracking
-- All open bugs
type = "Bug" AND status NOT IN ("Done", "Closed")
-- Critical unassigned bugs
type = "Bug" AND priority = "Critical" AND assignee IS EMPTY
-- Bugs created this week
type = "Bug" AND created >= startOfWeek()
-- Old bugs
type = "Bug" AND created < -30d AND status != "Done"
Due Date Queries
-- Due this week
duedate >= startOfWeek() AND duedate <= endOfWeek()
-- Overdue
duedate < now() AND status NOT IN ("Done", "Closed")
-- Due in next 7 days
duedate >= now() AND duedate <= +7d
-- No due date
duedate IS EMPTY AND type != "Epic"
Saving Queries
Save as Filter
- Write query
- Click Save
- Name filter
- Choose visibility:
- Personal
- Project
- Team
Using Saved Filters
Saved Filters
─────────────
Personal:
├── My Bugs
├── My High Priority
└── Overdue Items
Project:
├── Open Bugs
├── Sprint Backlog
└── Unassigned
Sharing Filters
- Open saved filter
- Click Share
- Select recipients
- Set permissions (view/edit)
Query Results
Result Options
- View: List, Board, Table
- Export: CSV, JSON
- Bulk Actions: Update, Move
Ordering Results
project = "AUTH" ORDER BY priority DESC, created ASC
Best Practices
Writing Queries
✓ Do:
- Quote text values:
"In Progress" - Use functions:
currentUser(),currentSprint() - Build incrementally
- Validate before running
✗ Don't:
- Forget quotes around text
- Mix case: use
"In Progress"not"in progress" - Write overly complex queries
- Forget parentheses for grouping
Performance
- Start with indexed fields (project, status, type)
- Add text search last
- Limit date ranges when possible
- Use specific projects
Troubleshooting
Common Errors
"Invalid field"
- Check field name spelling
- Verify field exists
"Unexpected token"
- Check for missing quotes
- Verify parentheses match
- Check AND/OR syntax
"Invalid date"
- Use correct format:
-7d,now() - Check function names
No Results
- Simplify query
- Check field values
- Verify project access
For more search options, see Basic Search.