# Best Practices

## Recommended setup

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Start with a simple JQL query</strong></td><td>Before building complex queries, test with `project = "YOUR_PROJECT"` or `assignee = currentUser()` to understand the data. Once the data flow runs successfully, refine your query to add filters like status, date ranges, or custom fields.</td></tr><tr><td><strong>Use "Detailed data" for analysis</strong></td><td>If you're joining Jira data with other sources or building advanced reports, choose the "Detailed data" export format to preserve IDs and metadata. This makes it easier to join issues with other datasets later.</td></tr><tr><td><strong>Select only the columns you need</strong></td><td>If your Jira instance has many custom fields, explicitly list the columns you need in the "Columns" field. This reduces export size, speeds up the data flow, and makes your destination cleaner and easier to read.</td></tr></tbody></table>

## Data refresh and scheduling

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Schedule daily refreshes for active projects</strong></td><td>If your team moves issues frequently, schedule daily refreshes to keep your reporting sheets up to date. For slower-moving projects, weekly refreshes are usually sufficient.</td></tr><tr><td><strong>Use date ranges in JQL to limit historical data</strong></td><td>Instead of pulling all issues from the beginning of time, filter by creation date (e.g., `created >= -90d`) to keep exports manageable and faster. Archive old data separately if needed for historical analysis.</td></tr></tbody></table>

## Performance optimization

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Filter by project or sprint first</strong></td><td>Queries like `project = "PROJ"` are much faster than open searches. If using sprints, add `sprint = "Sprint Name"` to the query to significantly reduce the dataset.</td></tr><tr><td><strong>Avoid overly broad JQL searches</strong></td><td>Queries like `type != Epic` or `priority is not empty` scan your entire Jira instance. Add positive filters (e.g., `project in (PROJ1, PROJ2)`) to narrow scope and speed up execution.</td></tr></tbody></table>

## Common pitfalls

{% columns %}
{% column %}
**Do**

* Test your JQL in Jira's issue navigator before importing
* Use project keys in uppercase (e.g., `project = "PROJ"`)
* Update your JQL as your Jira structure changes
* Pull only active issues regularly; archive historical data separately
  {% endcolumn %}

{% column %}
**Don't**

* Share your Coupler.io data flow link with people who shouldn't see Jira data
* Use complex JQL without testing it first in Jira
* Export all custom fields if you only need a few; this slows down your flow
* Rely on exact field order—field positions may shift if custom fields are added/removed in Jira
  {% endcolumn %}
  {% endcolumns %}
