Redmine trackers, workflows and roles setup

Redmine's issue model depends on trackers, statuses, roles and workflows working together. This page explains how to design them so the right people move the right issues and the model stays maintainable.

On this page

Why Redmine workflow setup decides how your teams use issues

When issues move inconsistently across a team, or nobody can say who is allowed to close a bug, the cause is usually not the people. In Redmine, trackers, statuses and role-based workflows together decide which role may move which issue type from one status to another. Until those rules are designed on purpose, every project inherits whatever defaults were copied from the last installation, and the team works around them. Redmine is a free project management web application released under the GNU General Public License v2, so there is no license fee that shapes the design. Its flexible role-based access control and custom fields let you express a workflow as configuration: each tracker has its own set of statuses and transitions, and each role has its own permissions. The cost of getting this right is therefore mostly design time, review time and the ongoing effort to keep the model consistent, not a licensing decision.

Teams usually need a deliberate workflow model when several issue types share one project but follow different paths, such as defects that need verification and change requests that need sign-off. The same applies when an approval step must be performed by a specific role, when a status should freeze fields for everyone except an administrator, or when auditors expect to see who changed an issue and under what authority. In those cases, the default workflow will allow transitions that your process does not intend. A simple default may be enough for a small team with one tracker, a few statuses and no formal approval. In that situation, the effort of mapping transitions per role may cost more than the coordination problems it solves. Revisit the decision when a second issue type, a second project or an approval requirement appears, because adding these later means changing workflows while live issues already sit in statuses you may remove.

Before you configure anything, list the issue types, the statuses each one passes through, and the roles that act at each step. Then confirm with your own compliance or quality owner which transitions must be restricted and which fields must be read-only or required at a given status. Redmine's core features include custom fields and role-based access control, so these rules can be expressed without plugins, but you should verify the exact behavior of each setting on the Redmine version you deploy. Finally, decide who owns the model after go-live. Workflow changes affect every open issue of a tracker, so a named owner, a change log and a test project are worth agreeing before the first rule is written. The Redmine home page lists the feature set this page relies on; anything beyond that list, including integrations with external approval systems, should be confirmed as a separate requirement.

Configuration options and when each one fits

This table compares the main design choices for Redmine trackers, statuses, workflows and fields, with the situations where each fits, what it adds to maintenance and what to check in the administration area of your installed version. Read each row as a question to settle before you build, since most maintenance effort comes from adding trackers and transitions that were never needed.

Design choiceWhen it fitsMaintenance costWhat to confirm in administration
Number of trackersFew trackers when issue types share one lifecycle; separate trackers when bug, change and request items follow different pathsEach tracker needs its own workflow mapping and field set, so every addition multiplies review workTrackers list, the projects that enable each tracker, and which default tracker new issues receive
Number of statusesKeep only statuses that someone acts on or reports against; split a status only when a team needs to filter or hand off at that pointEach status adds rows to the workflow matrix for every role and tracker, and clutters reportsIssue statuses list, including closed flags, and whether any status is used by no tracker
Role-specific transitionsUse when a status change carries approval, separation of duties or a regulated sign-offThe workflow matrix grows with roles times trackers times statuses, so each new role needs a full reviewWorkflow editor for each role and tracker pair, and whether roles are set to all trackers or only selected ones
Read-only and required fields per statusUse when a field must be locked after review or completed before a transition, such as a risk rating or test evidenceField rules interact with transitions, so a required field can block a path nobody testedField permissions in the workflow editor for each status, and any required fields that block closing
Custom fieldsUse for data you filter, report or require on many issues; keep to descriptive text in notes for one-off contextEach field needs a type, visibility per project and tracker, and an owner who decides when it changesCustom fields list, which trackers and projects each field applies to, and whether it is visible to all roles
Shared versus separate role setsShare roles across projects when access follows the same duties; separate roles when a project has its own approval chainMore roles mean more workflow edits on every upgrade and every new trackerRoles list, the permission sets attached to each role, and the managed role option for each project

How trackers, statuses and roles combine into workflows

A tracker is the issue type in Redmine, such as Bug, Feature or Support request. Each tracker carries its own set of statuses, so a Bug can be New, Triage, In progress and Resolved while a Feature follows a different path. The workflow then decides which status changes are allowed. Redmine stores a separate transition map for each combination of tracker and role, which means the same person can have different options depending on the issue type they are editing. Before writing any transitions, list the statuses each tracker really needs and remove the ones that no team uses. Every extra status multiplies the number of transitions an administrator must maintain.

Think of a workflow as a table of permissions. For each role and each current status, the table lists the statuses that role may move the issue to. Field permissions work alongside it. For each tracker, role and status, an administrator can mark a field as read-only, required or editable. These settings let you lock a resolution or a root cause field until an issue reaches a later stage, and they stop reporters from changing data that only engineers should set. Confirm the exact layout of the workflow and field permission screens in your Redmine version, because the labels and grouping have changed across releases.

Illustrative example: a bug tracker with the statuses New, Triage, In progress and Closed. Reporters may create issues and see them, but the transition from New to Triage is allowed only for the Developer role. Only the Project lead role may move an issue from Triage to In progress. The Severity field is required when an issue leaves Triage and read-only for everyone except the lead afterwards. In this design, a developer cannot start work without a lead's decision, and the lead can see the reason in the required field. Writing the rule down as a short sentence like this before you configure it is a useful check on whether the workflow is what the team actually does.

Roles alone do not decide what a user can do. A user with no role in a project cannot act there, regardless of how generous the workflow is. Membership and role permissions govern whether a user can view issues, add notes, edit or move issues in that project. A workflow only narrows what an already permitted role can do. If a user cannot change an issue, check the project membership and the role's permissions before you change the workflow. Also confirm which roles are assigned to each project, since a role that is valid in one project may be absent in another. Keep the number of roles small enough that each one maps to a real job, because every extra role is another row in the workflow table to review.

Setting up trackers, workflows and roles in the right order

This sequence builds the workflow model in the order each later decision depends on: issue types, then the people who handle them, then the statuses and transitions they move through. Each step ends with a check you can repeat, so a misplaced transition or field permission shows up in staging before live issues depend on it.

  1. Confirm the release line and prepare staging

    Before changing anything, confirm that the installation runs on a supported Redmine release line. At the time of the researched facts, 7.0.x was the fully supported line, 6.1.x and 6.0.x received narrower fixes, and 5.1.x and older were unsupported, so check the current download page before you plan. Make a non-production copy of the database and uploaded files, and make every change there first. This step is done when the staging instance loads, the version shown in the administration area matches your plan, and a restore of the copy has been tested.

  2. Inventory issue types and their handlers

    Work with the project owners to list every issue type the teams use, such as bug, feature, change request or support request. For each one, record who creates it, who works it, who reviews it, who may close it and what done means. Illustrative example: a support request is raised by email, worked by the support group, and closed only after the requester confirms. The step is complete when every tracker has one named owning group and every status the teams mention appears in the list.

  3. Define roles and project memberships

    Create roles that match the handlers from the inventory, such as developer, reviewer and project manager, and set each role's permissions for issues, time entries and the wiki. Then assign those roles to users per project through memberships, keeping global administrator rights to a small number of accounts. Confirm the result by signing in as one test user per role and checking that the project list and the issue actions match what that role should see.

  4. Create trackers and statuses

    Create the trackers from your inventory, then create the statuses they need under the issue status settings. Mark the statuses that end an issue as closed, and reuse a status across trackers wherever its meaning is the same, which keeps the model small enough to maintain. Set each tracker's default status and check the enabled fields on each tracker. The step is complete when every tracker opens with the expected default status and no two statuses describe the same state.

  5. Build the transition matrix per role and tracker

    In the workflow administration screen, choose one role and one tracker at a time, then allow only the status changes that role should make on that tracker. Decide separately whether the author or the assignee may make a given change. Write the allowed transitions for each role and tracker pair in your change record. Check the matrix by confirming that the developer role cannot move an item to a closed status on a tracker where only reviewers may close it.

  6. Set field permissions per status

    Use the field permissions screen to decide, for each role, tracker and status, whether a field is editable, read-only or required. Typical candidates are resolution, due date and estimate, which can be locked once an item reaches review. Keep the set of exceptions short so that the rules remain readable. Verify the result by opening a test issue at each status as each role and confirming that the edit form shows the fields as specified.

  7. Test with non-admin accounts in staging

    Create one test account per role, without administrator rights, and run a written script on the staging instance. The script should create an issue, move it through every allowed transition, attempt each forbidden transition and edit fields at each status. Administrator accounts see more than the workflow shows, so do not use them for this test. Record each result against the matrix. Only after every forbidden attempt is refused and every allowed path completes should the same configuration be applied to production.

Keeping the workflow model simple enough to maintain

The maintenance cost of a Redmine workflow model grows faster than its visible size. Each tracker carries its own set of statuses and transitions, and each role that may act on an issue adds another dimension to the matrix. When a status is renamed, a role is split, or a tracker is added, the effect is not one edit. Every affected tracker and role combination has to be reviewed again, and the same check must be repeated after a Redmine upgrade or a plugin change. Before adding a tracker or role, ask the team to name the specific decision it supports and the people who will review it later.

Several practical limits keep the matrix readable. Share statuses across trackers wherever the meaning is the same, so that a status such as Resolved means one thing in every tracker that uses it. Keep the set of roles small and based on responsibilities that people actually hold, such as reporter, developer, reviewer and project manager, instead of one role per team or per request type. Where a field must be required or read-only at a given status, prefer one documented rule over a stack of exceptions. Each transition should have a short written rule stating who may perform it and why, so that a reviewer can tell whether a configuration matches the intent without reconstructing it from the admin screens.

Name one owner for the workflow configuration. This person is usually a Redmine administrator or a process lead who can approve changes to statuses, trackers and roles. The owner keeps the change log, decides whether a proposed exception is accepted, and confirms that the documented rules still match the configuration. Without a named owner, small local changes accumulate in production, and nobody can say which transitions are intentional. Agree on who may request a change and who approves it before the first change is made, and record the approver for each change.

Schedule a workflow review on a fixed cadence and record its outcome. A practical pattern is a short review each quarter and a full review before each Redmine upgrade or major plugin update. The review should compare the live configuration with the documented rules, list trackers and roles with no recent issues, and remove statuses or transitions that no longer serve a purpose. Record the date, the reviewer, the changes made and any exceptions accepted, with a link to the change request. Confirm the review cadence with your own change management policy and with the team that runs your Redmine instance, since the right interval depends on how often your processes change.

Test the configuration after every change, not only at go-live. Use a copy of the production database for trials where your data policy allows it, and run a small set of representative issues through each tracker and role combination. Check the transitions that are most often used, the required fields at each status, and the read-only fields that users depend on. Keep these test cases in the same document as the transition rules so they can be rerun quickly. A short, repeatable test set is what makes a simple model stay simple over time.

Security and operational risks of workflow permissions

Workflow and role mistakes in Redmine rarely fail loudly. They show up as reporters closing work they should not touch, urgent fixes blocked by forms, and changes made without a record. The cards below cover the risks to review and the operational habits that keep the tracker model safe to change.

Over-broad transitions

A transition that a role can perform decides who may close, reopen or reassign an issue. Reporter or viewer roles that hold transitions into closed or resolved statuses can reopen work they did not own. Review each role's allowed transitions per tracker, and confirm that only roles responsible for closure can move issues into final statuses.

Required fields that block urgent fixes

Required fields on a status apply to every user who moves an issue into it, including during incidents. A mandatory field such as a root cause or release version can stop an emergency fix from being closed. Keep required fields to what the status truly needs, and test the path a responder would take under time pressure.

Administrator accounts used for daily work

Using an administrator account to edit issues bypasses the separation the role model is meant to enforce, and it hides who made a change. Give administrators a separate account for configuration and a standard user account for daily tracking, then review which users hold the administrator flag.

Back up before configuration changes

Trackers, statuses, workflows and roles are stored in the database, so a faulty workflow edit is reversed by restoring a backup, not by undoing a click. Take a database backup and export a copy of the current workflow settings before each change, and confirm that the backup restores in a test environment.

Record who approved each change

A workflow change alters what every user can do, so it needs a named approver and a written reason. Keep a change log that records the requester, the approver, the date and the tracker, role or status affected. This record is also what an auditor or internal reviewer will ask to see.

Review the API key and authentication settings

The REST API must be enabled by an administrator, and it authenticates with HTTP basic authentication or a per-user API key. Because API access follows the same permissions as the web interface, a workflow rule that holds in the browser must also be tested through the API. Review which users have API keys, whether the API is enabled, and how authentication is configured, and test workflow rules by calling the API as each role.

What do buyers ask about Redmine workflow setup and cost?

Does Redmine itself cost anything to license for workflow setup?

No. Redmine is released under the GNU General Public License v2 and has no paid edition, so the license is not a line item. The cost of a Redmine deployment comes from hosting, implementation work, plugins, upgrades and the people who maintain the system. When you compare options, budget for those four components rather than for software licenses. Ask any partner to show each cost separately so you can see what is one-time and what recurs.

What makes a Redmine workflow setup take more effort?

Effort rises with the number of trackers, roles, approval paths, custom fields and integrations. Each tracker multiplies the status and transition combinations that must be designed and tested. Each role adds permission decisions per status, and each approval path adds conditions that must be checked against real users. Custom fields that are required or read-only at certain statuses and integrations that create or update issues add further cases. A model with few trackers and clear roles is far cheaper to build and maintain than one designed around every department's exceptions.

Which parts of a Redmine workflow project are one-time work?

The one-time work covers the design of trackers, statuses and transitions, the mapping of roles to who may move which issue type between which statuses, configuration in the administration screens, and testing of each path. Testing should include users with each role attempting allowed and blocked transitions. Documenting the model during this phase makes later changes faster. Ask for these steps to be listed separately in a written scope so you can see the effort behind each one.

What recurring work comes after a Redmine workflow goes live?

Recurring work includes periodic reviews of trackers, statuses and roles as teams change, plugin maintenance, and upgrades to supported Redmine releases. Plugins that touch issues or workflows may need checking after each upgrade. Redmine 7.0 is the fully supported line with new features, bug fixes and security updates, while 6.1.x and 6.0.x receive narrower support, so the upgrade schedule affects how often this work happens. Confirm with your partner whether reviews and upgrades are covered by a retainer or billed separately.

Can our internal team set up Redmine trackers and workflows without a partner?

Often yes, for a small model with few trackers and roles and a team that already administers Redmine. The risks grow when the model has many approval paths, custom fields that depend on status, or integrations that write to issues. Internal teams should plan time for design reviews and testing with real users, not just the administration screens. Ask yourself who will own the model after launch, who will review changes, and who will handle the next upgrade. If those answers are unclear, a partner can design the model, hand over documentation and test it.

How long does a Redmine workflow setup take?

Duration depends on scope, so no fixed figure applies to every project. The main drivers are the number of trackers and statuses, how many roles need distinct permissions, how many approval paths exist, and how many stakeholders must agree on the design. Scheduling also depends on how quickly your team can review the design and test with users. Ask a partner to tie the timeline to listed deliverables and review points in the written scope, so each milestone can be checked against what was agreed.

What should a written scope for Redmine workflow setup include?

A written scope should list the trackers, statuses and transitions in the design, the roles and their permissions per status, the custom fields with their required or read-only rules, and any approval paths. It should name the integrations and plugins in scope, the test cases and who signs off on them, and the documentation you will receive. It should also state what is excluded, such as data migration from another tool or changes to authentication. Ask for the upgrade and maintenance terms to be written separately, so recurring costs are visible from the start.

Does DeployOpen fix prices or timelines for Redmine workflow work?

DeployOpen does not publish a price list. Most engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts, and a quote follows from that written scope. Ongoing support, upgrades and continuous testing are available as retainers. To compare proposals fairly, give each potential partner the same list of trackers, roles, approval paths, custom fields and integrations, and ask each one to show one-time and recurring costs separately.

Limits to confirm in your Redmine version and environment

The tracker, workflow and role model in this page depends on the Redmine release, the runtime beneath it and the plugins around it. The cards below list what to confirm in your own environment before you commit to a design, so the model you build is one your installed version can actually maintain.

Administration menus and permission options

Menu paths, role permission labels and workflow editor screens change between Redmine releases, so the instructions in any guide may not match your installed version. Log in to a test instance of the exact release you plan to run, open the roles, trackers and workflow screens, and record which permissions are available for each role. Treat that record as the reference for your design document.

Fit between the release line and your update policy

Redmine 7.0.x is the fully supported line, receiving new features, bug fixes and security updates, while 6.1.x and 6.0.x receive narrower fixes and 5.1.x and older are unsupported. Confirm with your change board how often you can apply minor and security releases before choosing a line. A workflow model that depends on features from a release your policy cannot keep current becomes a maintenance risk.

Supported Ruby and database versions

Redmine 7.0 runs on Rails 8.1 and supports Ruby 3.2, 3.3, 3.4 and 4.0, and it does not support JRuby. Supported databases include PostgreSQL, MySQL 8.0 to 8.4 with transaction isolation set to READ COMMITTED, SQL Server 2012 or higher, and SQLite, which the installation guide says is not suited to multi-user production use. Confirm each combination against the installation guide for your target release before you provision servers.

Plugin support for the target version

Approval steps, extra field logic and some workflow extensions are usually delivered as plugins, and each plugin declares the Redmine versions it supports. Before you rely on a plugin for an approval or required-field rule, confirm it supports your target release and Rails stack, check how its maintainer handles upgrades, and test it on a copy of your data. Core Redmine should not be assumed to provide these behaviors.

Authentication beyond core Redmine

Core Redmine authenticates against LDAP directories natively, which covers many directory-backed role assignments. SAML and OpenID Connect single sign-on are not part of core Redmine and depend on a plugin or an authenticating reverse proxy in front of the application. Decide which method you need before you map groups to roles, because the choice affects how users are provisioned and how role changes reach Redmine.

Hosting and reverse proxy constraints

Redmine runs as a Ruby on Rails application that your organization hosts, so the web server, reverse proxy, background job setup and optional components such as ImageMagick, Ghostscript, Pandoc and Sidekiq affect what your environment must provide. Confirm with your platform team which of these your standards allow, and whether a reverse proxy will be used for authentication. Record the answers next to the role model they affect.

What your team must provide before workflow design starts

Workflow design fails most often because the inputs were assumed rather than written down. Before any tracker, status or role is changed, your team should hand over a current inventory of the issue types you use, the lifecycle each one follows today, and the people who hold each role. For every tracker, list the statuses an issue passes through, who moves it forward, what happens at each step, and where work currently stalls. Include the workarounds people use, such as statuses misused as flags or issues closed in a wiki page instead of Redmine. These are the cases a clean design must either absorb or deliberately retire.

Roles need the same precision. List each role that exists or is planned, the people or groups who hold it, and the projects where they apply. Record which actions each role must perform, such as creating issues, assigning them, closing them, editing estimates or viewing private notes. Approval and audit requirements belong here too. Name any step that needs a named approver, any field that must be locked after approval, and the retention period your auditors or internal policy expect for change history. If a control depends on an external standard or internal policy, ask the owner for the exact control wording rather than paraphrasing it.

Confirm the technical baseline in writing. Provide the Redmine version you run now and the database engine and version behind it. The current supported lines are 7.0.x, 6.1.x and 6.0.x, and the reader should confirm with their administrator which line they are on, because workflow changes made on an unsupported 5.1 or older release may need to be revisited during an upgrade. Also confirm the database, since Redmine supports PostgreSQL, MySQL 8.0 to 8.4 with READ COMMITTED isolation, SQL Server 2012 or higher, and SQLite, which the installation guide does not recommend for multi-user production use. Note any plugins installed, because a plugin may add its own fields or statuses that the design has to account for.

Testing requires a non-production copy of Redmine with a recent export of the production database and attachments. Ask your team to confirm that the copy can be refreshed on request, that it holds realistic issue volumes without exposing personal data beyond what your policy allows, and that test accounts can be created for each role. Without this copy, workflow changes can only be checked by reasoning, and role permission problems usually appear only when a real user tries an action.

Sign-off should come from two people. The process owner for each tracker confirms that the statuses and transitions match how the work is done and that approvals sit with the right roles. The Redmine administrator confirms that the design can be built and maintained, that role permissions do not grant more access than the role description states, and that the change will survive the next upgrade. Record each decision in a short design log that states the decision, the reason, the people who approved it and the date. Keep this log with the configuration export so future reviews can see why a status exists or why a permission was granted.

How DeployOpen scopes, delivers and supports Redmine workflows

DeployOpen starts by agreeing in writing which trackers, statuses, transitions and roles your teams need, then builds and tests that model in your own Redmine environment. The result is a configuration your administrators can read, change and maintain after the engagement ends.

How we scope

  • Engagements are fixed-scope, with trackers, statuses, transitions and roles agreed in writing before work starts.
  • We map which role may move each tracker between which statuses, and which fields are read-only or required per status.
  • Ask for the scope to list every tracker and role covered, plus any workflow rules that are explicitly out of scope.

How we build

  • Trackers, statuses and workflow matrices are configured in a staging copy of your Redmine before production changes.
  • Role permissions are tested with sample accounts for each role, checking visible fields, allowed transitions and project access.
  • Custom fields and per-status field rules are kept to what the agreed process needs, which keeps the model simpler to maintain.

How we hand over

  • Handover includes a written description of each tracker, status, transition and role, with the reasoning behind each choice.
  • Your administrators receive a test checklist they can rerun after future changes or Redmine upgrades.
  • Configuration steps are documented so your team can reproduce or extend the model without the original builders.

How we support

  • Ongoing support for workflow changes, role adjustments and upgrade checks is available as a retainer.
  • Changes to workflows are reviewed against the written model before they reach production, so the design stays consistent.
  • Before any Redmine version change, confirm with DeployOpen how workflow and role configuration will be checked against the target release.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.