Plugins Directory » Custom Workflows

8157 Author: Anton Argirov
Code repository:
Registered on: 2012-09-03 (about 10 years ago)
Current version: 0.1.5
Compatible with: Redmine 3.1.x, 3.0.x, 2.6.x, 2.5.x, 2.4.x, 2.3.x, 2.2.x, 2.1.x, 2.0.x
User ratings:   (33)

Plugin development is supported by DOM Digital Online Media GmbH

This plug-in provides a great functionality for those who is familiar with the Ruby language.
It allows to customize workflow by defining own rules of issues processing. It's possible:
  • To change issue properties if some conditions are met;
  • To create new issues programmatically if the conditions are met (for example you can create an issue in another project if the status of source issue is changed to specific value);
  • To raise custom errors which will display to user, if he does something wrong;
  • To do anything that conforms to your needs;
Starting with version 0.1.2 you can specify observable object for workflow. Supported observable objects for now:
  • Issue (before_save, after_save, before_destroy, after_destroy)
  • Group (before_save, after_save, before_destroy, after_destroy)
  • User (before_save, after_save, before_destroy, after_destroy)
  • Project (before_save, after_save, before_destroy, after_destroy)
  • Attachment (before_save, after_save, before_destroy, after_destroy)
  • Wiki Content (before_save, after_save, before_destroy, after_destroy)
  • Group Users (before_add, after_add, before_remove, after_remove)
  • Issue Attachments (before_add, after_add, before_remove, after_remove)
  • Project Attachments / Files (before_add, after_add, before_remove, after_remove)
  • Wiki Page Attachments (before_add, after_add, before_remove, after_remove)
  • <Shared code>

<Shared code> - special type for workflows that running before all other workflows and can provide libraries of additional functions or classes.

Follow Wiki for finding answers.

Installation notes

From a ZIP file:
  • Download the latest version of the plugin
  • Unzip to /plugins (Redmine 2.x) or /vendor/plugins (Redmine 1.x) folder of Redmine
After download:
  1. Run rake redmine:plugins:migrate (Redmine 2.x) or rake db:migrate:plugins (Redmine 1.x).
  2. Restart Redmine.


0.1.5 (2015-11-22)

Compatible with Redmine 3.1.x, 3.0.x, 2.6.x, 2.5.x, 2.4.x, 2.3.x, 2.2.x, 2.1.x, 2.0.x.

  • New observable objects added (Project, Wiki Content, Attachment, Issue Attachments, Project Attachments, Wiki Page Attachments)
  • Ability to hook before_destroy and after_destroy events (46.5 KB) Anton Argirov, 2015-11-22 11:50

0.1.4 (2015-07-15)

Compatible with Redmine 3.0.x, 2.6.x, 2.5.x, 2.4.x, 2.3.x, 2.2.x, 2.1.x, 2.0.x.

  • Non-active workflows are now not checked for syntax. Now you can import non-valid (for your Redmine instance for example) workflow, make changes to it and then activate.
  • Log message changed so that issue_id is before subject
  • Fixed migration from version 0.0.4 (35.7 KB) Anton Argirov, 2015-07-15 11:19

0.1.3 (2015-06-24)

Compatible with Redmine 3.0.x, 2.6.x, 2.5.x, 2.4.x, 2.3.x, 2.2.x, 2.1.x, 2.0.x.

Compatibility with Redmine 2.x.x has returned (35.2 KB) Anton Argirov, 2015-06-24 09:37

0.1.2 (2015-06-23)

Compatible with Redmine 3.0.x.

  • Added new observable objects. Along with Issue objects you can now watch for changes in User and Group objects
  • Added support of shared workflows - special workflows that running before all other workflows and can provide functions and classes for it
  • Added Mailer helper for sending custom emails from workflows (check Wiki) (35 KB) Anton Argirov, 2015-06-23 10:37

0.0.6 (2015-05-26)

Compatible with Redmine 2.6.x, 2.5.x, 2.4.x, 2.3.x, 2.2.x, 2.1.x, 2.0.x, 1.4.x.

Added import/export workflow abilities (59.9 KB) Anton Argirov, 2015-05-29 16:04

0.1.0 (2015-05-08)

Compatible with Redmine 3.0.x.

Compatibility with Redmine 3.x, support of Redmine 2.x.x has dropped (for Redmine 2.x.x please use version 0.0.5) (24.4 KB) Anton Argirov, 2015-05-08 10:54

0.0.5 (2015-05-08)

Compatible with Redmine 2.6.x, 2.5.x, 2.4.x, 2.3.x, 2.2.x, 2.1.x, 2.0.x, 1.4.x, 1.3.x, 1.2.x.

Compatibility with the latest versions of Redmine 2.x.x (57.2 KB) Anton Argirov, 2015-05-08 08:04

0.0.4 (2012-10-08)

Compatible with Redmine 2.1.x, 2.0.x, 1.4.x, 1.3.x, 1.2.x.

  • Added ability to enable workflows globally for all projects. No need to enable 'Custom workflows' project module anymore. Just go to the 'Administration' -> 'Custom workflows' section and enable or disable your workflows in one place.
  • Fixed bug with 'Status transition prohibited' when updating the issue status by the repository commit

Don't forget to migrate plugins after installing the new version. (59.2 KB) Anton Argirov, 2013-05-22 08:10

0.0.3 (2012-09-10)

Compatible with Redmine 2.1.x, 2.0.x, 1.4.x, 1.3.x, 1.2.x.

Added compatibility with 1.2.x, 1.3.x

0.0.2 (2012-09-08)

Compatible with Redmine 2.1.x, 2.0.x, 1.4.x.

  • Added ability to define after_save script along with before_save
  • Changed context of the script executing to the issue itself.
  • Improved logging

0.0.1 (2012-09-03)

Compatible with Redmine 1.4.x, 2.0.x, 2.1.x.

User ratings

  by Christian R 7 months ago

  by Mr. Míng 8 months ago

  by Виктор Воеводский over 2 years ago

  by Ivan Tsybanenko over 3 years ago

Works great with Redmine 3.4.6

- Don't use 'git clone'!!!

  by Rudolph van Niekerk over 3 years ago

This is the single best free Redmine Plugin I have come accoss to date. Our Redmine deployment's capabilities skyrocket with this plugin. Thanks a million to the dev team.

  by SOE Redmine over 3 years ago

I cant install on redmine 4.0.0.
rake aborted!
NoMethodError: undefined method `alias_method_chain' for ProjectsHelper:Module
Did you mean? alias_method

  by Michael Chen almost 4 years ago

I try it on Redmine 3.4. it still working fine. Thank Auth for making this great plugin.

  by Nikolai Efimov-Soini about 4 years ago

Excellent plugin! Work with 3.4.6.

  by 朱 江波 over 4 years ago

3.3.4 need:bundle exec rake redmine:plugins:migrate RAILS_ENV=production

  by holly chen about 5 years ago

Create plugin! works in 3.3.1.

  by Imanol Alvarez almost 6 years ago

With this plugin you can do your personal workflows.

  by Adam Szakacs almost 6 years ago

Great - very powerful and flexible!!! Well done!!!

  by Anthony MCPROGSOFT almost 6 years ago

A must have plugin.
Is it compatible with Redmine 3.3 ?
Or do you plan to make a new release ?

  by Robert Korulczyk almost 6 years ago

  by Александр К about 6 years ago

  by Mikhail Voronyuk about 6 years ago

The awesome plugin!
It does for me
1) update a 'last modifier' user-field after each issue modification
2) check if spent time is specified for Support tracker when an issue is marked as Solved

  by Igor A almost 7 years ago

  by Jan from Planio about 7 years ago

Very dangerous plugin from a security point of view. Can easily be used to steal or delete all data by rogue admins or compromised admin accounts. In my opinion, code changes should be made in the code, not via the web UI.

  by Quan VN over 7 years ago

Excellent. version 0.1.2 also works for 2.6.5 with this change: in models/custom_workflow.rb, scope: for_project, change .join_table into .options[:join_table]

  by Adriano Ceccarelli over 7 years ago

Very good this plugin!
Simple and practical.

  by minkbear minkbear over 7 years ago

  by Tomasz O over 7 years ago

  by [ Desperados ] over 7 years ago

it seems very useful
how I can create a rule for change project if author is in a determined group? where can I found guide/howto? thanks

  by benoit deleris over 7 years ago

  by Kos Kub over 7 years ago

I've tried to fix it for Redmine 3.0. Unfortunately, I have small experience with Ruby and Redmine. I've fixed controller and migration scripts.Migrations was successful,but example workflow doesn't exist and RecNotFound error occurs even if add manually

  by Moritz Koehler almost 8 years ago

must have plugin
works in 2.6

  by Victor Gershgorn almost 8 years ago

Amazing plugin!
If you want to check role of a user you can use the following syntax, which will return true or false:

User.current.roles_for_project(@issue.project).include?(Role.find(:first, :conditions => "name='SomeRloeName'"))

Works in 2.5.2

  by Cliff Peng almost 8 years ago

We need more rules about the workflow script grammer.

  by dj jones almost 8 years ago

This page header does not list a code repository: here is a mirror on github for the plugin:

  by Thierry LEPIEZ about 8 years ago

it like it.
Just a sample, for bug tracker as immediate by default :
before script:
if new_record?
if @issue.tracker_id==1
if @issue.assigned_to.nil?

  by Sergei Bershadsky over 8 years ago

  by Raúl Gómez over 8 years ago

  by Duncan Robertson over 8 years ago

This does everything I wanted and more. From validation to automatic field calculation and complex svn integration. Works perfectly with Redmine 2.4.2