# A Jira Setup for Shopify Agencies That Doesn't Rot > A Jira setup for Shopify agencies that survives: projects, issue types, workflow statuses, and how to keep the backlog fed without manual entry. _Published: 2026-08-10 ยท CommerceCopilot_ ## Why most Jira setups rot within a quarter A new Jira instance always looks clean. Every Shopify agency that has run one for more than a year has also watched it decay: statuses nobody uses, epics that never close, a "Backlog" column with 400 tickets in it that everyone has silently agreed to ignore. The setup didn't fail because Jira is bad software. It failed because nobody decided, on day one, what each part of it was for, and the gaps got filled with whatever was fastest at 5pm on a Friday. The pattern is consistent enough to name. A project gets created per client, then per client per year, then nobody remembers which one is current. Issue types multiply until "Task," "Story," and "Sub-task" mean the same thing depending on who filed them. Workflow statuses accumulate: someone adds "Waiting on Client" for one project, someone else adds "Blocked - Design," and within a few months half the statuses exist for one ticket that used them once. None of this is a Jira problem. It's a setup problem, and it's fixable with a smaller number of decisions than most agencies make on day one. ## A Jira setup agencies can actually maintain ### Projects: one per client engagement, not one per client forever The instinct to give every client a single, permanent Jira project feels tidy at first and becomes a liability by year two: retainer work, one-off projects, and a replatform for the same client all pile into one backlog with no clean way to report on any of them separately. A project per active engagement, closed and archived when the engagement ends, keeps reporting honest and keeps old, stale tickets from cluttering a board someone still has to scroll past. ### Issue types that match how Shopify work actually breaks down Four issue types cover nearly all Shopify agency work: **Epic** for a phase or feature area, **Story** for a piece of client-visible functionality, **Bug** for something that used to work and doesn't, and **Task** for internal or technical work with no direct client story behind it. Adding more than this usually means two people are using different names for the same thing. If a fifth type keeps coming up, that's a sign an existing type is being used inconsistently, not that a new one is missing. ### Workflow statuses that mean something A workflow with 10 statuses is a workflow nobody reads accurately, because half of them describe a state that's really just "in progress, waiting on something." A workflow that holds up for Shopify delivery work usually looks like: **To do**, **In progress**, **In review**, **QA**, **Done**. Anything beyond this should map to a label or a comment, not a new status. "Waiting on client" is real, but it's a flag on an existing status, not a new column, because otherwise the same information gets encoded twice: once in the status and once in whoever remembers why the ticket stalled. ### Fields worth adding, and the ones that aren't Two custom fields earn their keep on Shopify work: acceptance criteria (so "done" is checkable, not a guess) and a field for the affected theme section or template, since Shopify's Online Store 2.0 architecture means most changes trace back to a specific section file. Fields for things like "estimated hours" or "priority score" tend to get filled in once at ticket creation and never updated, which makes them worse than not having them: a stale number looks like current information. ## Where the rot actually starts Jira setups don't decay because of a bad initial decision. They decay because the backlog stops being fed by a single, consistent process and starts being fed by whoever has five minutes: one ticket copied straight from a client email, another one filed from memory after a call nobody wrote up, a third added by a developer mid-sprint because a bug came up in Slack. Each one is reasonable in isolation. Together, they produce a backlog where ticket quality depends entirely on who happened to be the one filing it that day, which is the actual reason boards stop being trustworthy. [Writing tickets a developer can build from](/blog/how-to-write-development-tickets) fixes the quality problem at the level of a single ticket. It doesn't fix the consistency problem across a hundred tickets filed by six different people over three months. That needs a single point of entry for how work gets translated from a client conversation into a ticket, not a style guide everyone is supposed to remember to follow. ## Keeping the backlog fed without manual entry This is the part most Jira setups never solve, and it's the reason the cleanest instance still rots six months in: someone has to keep translating client briefs, call notes, and Slack threads into tickets, by hand, every single week, and that job falls to whoever is senior enough to be trusted with the judgment calls. CommerceCopilot's Business Analyst agent is built around that translation step specifically. It reads briefs, call transcripts, and connected channels, drafts a dependency-mapped backlog with acceptance criteria already structured, and flags open questions instead of guessing at what a thin brief left out. When a project is bound to your Jira project, confirmed tickets are created directly as issues, with requirements and dependency links intact, in the issue type and project you've already set up. The one extra step Jira needs that a simpler tracker doesn't is a status map: telling CommerceCopilot, once, which of your Jira statuses corresponds to each stage of the delivery pipeline (analysis, planning, architecture, development, QA). That mapping is what lets the delivery agents read and update issue status without imposing a workflow of their own on top of yours. Until every stage is mapped, the agents that depend on it stay paused rather than guessing at which status means what, which is a deliberate safeguard against a mismatch quietly corrupting the board. Full setup steps are in the [Jira integration docs](/docs/jira). The effect on rot is direct: every ticket that lands in Jira came from the same process, with the same fields filled in the same way, whether it was generated at 9am on a Monday or 11pm before a client call. The backlog stops depending on whoever had time to write it well that week. ## A minimal setup checklist - One Jira project per active engagement, archived when the engagement closes, not one permanent project per client. - Four issue types: Epic, Story, Bug, Task. Resist adding a fifth without a clear reason. - Five workflow statuses: To do, In progress, In review, QA, Done. Anything else becomes a label, not a column. - Two custom fields that get used every ticket: acceptance criteria and affected theme section or template. - A single, consistent path for turning client briefs and calls into tickets, not six people filing tickets from memory. - If tickets are generated through CommerceCopilot, a complete status map before the delivery agents start reading the board. ## FAQ ### Does a small Shopify agency need Jira, or is it overkill? It depends on team size and how many concurrent engagements are running, not on ambition. Jira's free plan covers up to 10 users with no time limit, which is enough for most small agency teams; the Standard plan runs about $7.91 per user per month, and Premium adds more automation and reporting around $14.54 per user per month. An agency running two or three concurrent projects can often get by with a simpler tracker; Jira starts earning its complexity once several client engagements are running in parallel with real dependency chains between tickets. ### How many Jira projects should a Shopify agency run at once? One per active client engagement is the setup that holds up over time. A single agency-wide project works for the first few months and then becomes unreadable once retainer work, one-off projects, and internal tasks are all competing for the same backlog view. ### Can CommerceCopilot replace Jira for a Shopify agency? No, and it isn't trying to. CommerceCopilot's Business Analyst and Project Manager agents handle turning briefs and calls into a structured, dependency-mapped backlog; Jira is where your team triages, comments, and tracks that work day to day using statuses your team already understands. The [brief-to-tickets workflow](/docs/your-first-brief-to-ticket-project) delivers the backlog into Jira rather than replacing it. ### What's the fastest way to fix a Jira setup that's already rotted? Start with the statuses, not the tickets. Collapse workflow statuses down to the small set that actually gets used, archive projects for closed engagements, and only then go back through the open backlog and re-triage what's left. Trying to clean up individual tickets before fixing the workflow structure they sit in means redoing the same work once the structure changes anyway. [Scoping the work properly before committing to it](/blog/shopify-project-scoping) applies here too: a rotted backlog is often just accumulated scope nobody ever formally cut. --- Canonical page: https://www.commercecopilot.ai/blog/jira-for-shopify-agencies