Form Builder
Build Jira search queries and field updates without writing JQL
Search / Filter
Define which issues to target with JQL conditions
Update Fields
Choose fields and values to change on matched issues
Execution Log
| Job ID | Status | Total | Success | Failed | Fields | Created |
|---|
Audit Log
| Timestamp | Job ID | Issue Key | Field | Operation | Old Value | New Value | Result | Action |
|---|
Scheduled Events
| Command | Next Run | Frequency | Runs | Status | Actions |
|---|
Getting Started
OdinFlow lets you search and bulk-update Jira issues using a visual form builder. No JQL or scripting required.
Basic Workflow
- Filter: Add search conditions to target the right issues (project, status, assignee, etc.)
- Update: Add field updates to define what changes to make (priority, labels, status, etc.)
- Build: Click Build Payload to validate your form and preview the generated JQL and update payload
- Execute: Click Execute to submit the job to Jira, then track progress in the Execution Log
Form Builder
The form builder has two sections: Search/Filter (which issues to target) and Update Fields (what to change). Each section is built from rows of dropdowns.
Search / Filter Conditions
Each filter row has three parts: a field, an operator, and a value. Rows are combined with AND logic.
| Field | Operators | Example |
|---|---|---|
| Project | = != IN NOT IN | Project = SCRUM |
| Status | = != IN NOT IN | Status IN (Open, In Progress) |
| Assignee | = != | Assignee = Jane Doe |
| Priority | = != IN | Priority = High |
| Labels | = != IN NOT IN | Labels IN (bug, urgent) |
| Created / Updated / Due | > < = | Created > 2026-01-01 |
File Import (Excel / CSV)
Instead of building search filters, you can import a list of issue keys directly from an Excel or CSV file. This is useful when you already know exactly which issues to update.
| Action | How to use |
|---|---|
| Switch to import mode | Click the 📁 Import File button above the search conditions to toggle between JQL filters and file import |
| Upload a file | Drag and drop an .xlsx or .csv file onto the drop zone, or click it to browse |
| Remove the file | Click the ✕ Remove button to clear the imported file and start over |
| Switch back to JQL | Click 🔍 Use JQL to return to the normal search filter mode |
- Your file must contain a column named Issue Key (also accepts: Key, Jira Key, Ticket Key, Ticket, or Issue ID)
- Supported formats: .xlsx (Excel) and .csv (comma-separated values)
- Duplicate keys are automatically removed
- The number of keys is capped to your execution quota
Update Fields
Each update row has three parts: a field, an operation, and a value. You can add up to 50 update rows per form.
Text Fields
Fields: Summary, Description, Environment, etc.
Operation: set
| Action | How to use |
|---|---|
| Set a value | Select the field, choose "set", and type the new value in the text input |
Number Fields
Fields: Story Points, Story Point Estimate, custom number fields
Operations: set, increase, decrease
| Action | How to use |
|---|---|
| Set exact value | Choose "set" and enter the number |
| Increase | Choose "increase" and enter the amount to add |
| Decrease | Choose "decrease" and enter the amount to subtract |
Array Fields (Multi-Value)
Fields: Labels, Components, Fix Versions, Sprint, custom multi-value fields
Operations: add, remove, set
| Action | How to use |
|---|---|
| Add a value | Choose "add" and select or type the values to append |
| Remove a value | Choose "remove" and select the values to remove |
| Replace all values | Choose "set" to replace all existing values with new ones |
- add = keeps existing values and adds new ones
- remove = keeps existing values and removes specific ones
- set = replaces ALL existing values with the new one(s)
Option Fields (Single-Select)
Fields: Priority, Issue Type, Resolution, custom select fields
Operation: set
| Action | How to use |
|---|---|
| Set a value | Select the field, choose "set", and pick from the dropdown of allowed values |
Status / Transitions
Field: Status
Operation: transition
| Action | How to use |
|---|---|
| Change status | Select Status, choose "transition", and pick the target status from the dropdown |
User Fields
Fields: Assignee, Reporter
Operation: set
| Action | How to use |
|---|---|
| Assign to someone | Select Assignee, choose "set", and pick a user from the dropdown |
Date Fields
Fields: Due Date, custom date fields
Operation: set
| Action | How to use |
|---|---|
| Set a date | Select the date field, choose "set", and use the date picker to select a date |
Drafts
Save your form to come back to it later. Drafts store both your search conditions and update fields.
| Action | How to use |
|---|---|
| Save a draft | Click Save Draft in the bottom bar |
| Load a draft | Click Load Draft to browse and restore a saved form |
| Start fresh | Click + New Form to clear the current form |
Scheduling
Schedule any form to run later or on a recurring basis. After building a payload, click the Schedule button next to Execute.
| Action | How to use |
|---|---|
| Run once at a specific time | Set a date and time, leave Recurring off, then save |
| Run on a recurring schedule | Enable Recurring and choose Daily, Weekly, Every 2 Weeks, or Monthly |
| Run immediately and schedule | Enable "Run Once Now" to execute immediately in addition to the scheduled time |
Build & Execute
The bottom bar has two stages:
- Build Payload: Validates your form and generates the JQL query and update payload. Review the preview before executing.
- Execute: Submits the job to Jira. Track progress in the Execution Log. You can cancel a running job at any time.
- The "Send Jira notifications" checkbox controls whether Jira sends email notifications for each updated issue.
- Jobs can be rolled back from the Execution Log — this reverses all field changes made by the job.
- Limits: max 50 update rows, max 30 filter conditions per form.
Quick Reference
| Field Type | set | add | remove | increase | decrease | transition |
|---|---|---|---|---|---|---|
| Text (summary, description) | ✓ | — | — | — | — | — |
| Number (story points) | ✓ | — | — | ✓ | ✓ | — |
| Array (labels, components) | ✓ | ✓ | ✓ | — | — | — |
| Option (priority, type) | ✓ | — | — | — | — | — |
| User (assignee) | ✓ | — | — | — | — | — |
| Date (due date) | ✓ | — | — | — | — | — |
| Comment | ✓ | — | — | — | — | — |
| Status | — | — | — | — | — | ✓ |
Jira Account Connection
If you're experiencing authentication issues or need to reconnect your Jira account, use the button below to re-authorize.
Account Information
Reference these identifiers when contacting support.
Contact & Support
Send Us Feedback
Found a bug or have a feature idea? Let us know and we'll look into it.
About OdinFlow
OdinFlow is an AI-powered Jira management tool that lets you perform bulk operations using natural language commands. Built by Dead Viking Software.
Privacy & Data
OdinFlow accesses your Jira data through Atlassian's OAuth 2.0 with the following scopes: read/write Jira issues, read project and user data. Your data is processed on our servers only during active operations and is not retained after completion.
AI & Third-Party Disclosure
OdinFlow uses AI language models to interpret your natural language commands and generate Jira API payloads. Your command text and relevant Jira metadata (project keys, field names) are sent to our AI processing service. Issue content and personal data are not sent to the AI provider.
Data Retention
OAuth tokens are stored securely and can be revoked at any time via the Jira Account Connection section above. Execution logs are retained for 90 days. No Jira issue content is permanently stored.
Terms of Service
By installing and using OdinFlow, you agree to use it in compliance with your organization's Jira policies and Atlassian's terms. OdinFlow performs bulk operations on your Jira data as instructed — you are responsible for reviewing commands before execution. Dead Viking Software is not liable for unintended changes resulting from user-initiated commands.
Read Full Terms of Service →Your Data Rights (GDPR)
Under the General Data Protection Regulation and applicable privacy laws, you have the following rights regarding your personal data processed by OdinFlow:
- Access — Request a copy of the personal data we hold about you.
- Deletion — Request deletion of your data and revoke OAuth access at any time.
- Export — Request an export of your data in a portable format.
- Object — Object to processing of your data for specific purposes.
To exercise any of these rights or request a Data Processing Agreement (DPA), contact: privacy@deadvikingsoftware.com
Data is processed in the United States and European Union. For data residency questions, contact our privacy team.
System Stats
Concurrency Override
Rate Limiting
Auto-Configure
Automatically probe the Jira API to discover optimal rate limits and concurrency for a cloud instance.
Scheduled Events
| Schedule ID | Cloud ID | Account ID | Projects | Next Run | Frequency | Status | Actions |
|---|
All Jobs
| Job ID | Cloud ID | Account ID | Projects | Status | Total | Success | Failed | Fields | Created |
|---|
Audit Trail
| Timestamp | Job ID | Issue Key | Field | Operation | Old Value | New Value | Result | Action |
|---|
Users
| Account ID | Total Jobs | Issues Updated | Issues Failed | Last Activity | Jobs by Status | Actions |
|---|
Purge Old Jobs
Permanently delete jobs older than the specified age with the selected statuses.
Field Blocker
Control which fields are available in the search builder and edit forms. Cloud-wide rules affect all users; project rules only affect edit payloads.
Shutdown Worker Pool
Shut down or suspend the worker pool for a specific cloud. Running jobs can be drained or cancelled.