Skip to Content

Jira Epic Campaigns

Campaigns turn a Jira Epic into a managed delivery plan instead of a series of unrelated one-ticket runs.

Use campaigns when an Epic contains multiple child issues that should be planned, grouped, sequenced, and reviewed as delivery slices.

Open the customer controller, then go to Campaigns.

Campaigns are controller-owned. The selected execution mode still determines where the code work runs:

  • Cloud Hosted campaign jobs run on MergeLoom-managed workers.
  • Self Hosted campaign jobs run on your enrolled worker.

Campaign mode starts from Jira Epics returned by workspace intake rules.

Recommended labeling:

  • add mergeloom to the Epic
  • add an Epic repo-<alias> label when all child issues use the same default repository
  • add child repo-<alias> labels only when a child issue overrides the Epic default

Standalone Jira intake skips child issues that belong to an active Jira Epic campaign. If the Epic stops matching campaign intake, the campaign can be archived and standalone intake can resume for child issues later.

Campaign planning can:

  • import child issues as campaign nodes
  • preserve dependency edges
  • assign lanes
  • infer write scopes from ticket content
  • group coupled same-repository tickets into execution slices
  • keep docs or tests work attached to relevant implementation slices
  • use wait-for-merge gating for stacked work

Execution groups can have stable display keys such as MER-52-S1.

The Campaigns page can expose controls such as:

  • import Epic
  • sync source
  • replan
  • pause
  • resume
  • retry node
  • skip node
  • edit dependency relationships
  • review lane and slice state

Pause requests cancellation for active campaign-owned work and clears queued campaign jobs. Active workers receive cancellation through their normal status and polling path, so it is not always instantaneous.

Campaign completion can create grouped PRs/MRs for delivery slices.

Current behavior to know:

  • successful grouped publish can comment and transition every ticket in the slice
  • failed or blocked grouped completion should affect the driving ticket, not every future ticket in the slice
  • cancelled grouped completion avoids Jira side effects
  • campaign refresh can inspect existing PRs/MRs and retarget child review requests after parent merge
SymptomCheck
Epic does not create a campaignIntake JQL, mergeloom label, Epic type, Jira connection, and controller audit.
Child issue routes to the wrong repoEpic default repo-<alias> label and child override labels.
Campaign remains pausedCampaign status, active worker status, and queued jobs.
One failure moved too many ticketsConfirm the job is grouped and inspect campaign activity; current intended behavior limits failed/blocked side effects to the driving ticket.
Slice is waitingDependency edge, parent PR/MR merge state, publish base branch, and campaign refresh state.

Related pages: