Select Moodle version:

Blocks: Workflow block

This block allows you to manage the process of producing courses or activities. A workflow make it clear who is responsible for doing the next step, and what tasks they should be doing. The workflow can also assign and unassign roles, or automatically set certain settings, when the workflow moves from one step to the next.
Maintained by: Tim at Lone Pine Koala Sanctuary Tim Hunt

he Workflow system is used at the OU to manage the production of courses and some activities. It comprises a block and a related admin report.

A workflow (for our purposes) is a linear sequence of steps. A step has

  • a name
  • some instructions;
  • a check-list of actions;
  • a list of roles who are responsible for performing this step;
  • a list of actions that are taken automatically when the step is started/finished, for example assigning roles or changing activity settings.

The system allows the definition of different workflows. Each workflow has

  • a name
  • a description
  • an indication of the type of thing it relates to (e.g. ‘course’, ‘mod_quiz’)

Under Admin -> Plugins -> Blocks -> Workflow, there is an interface for Administrators to define and edit workflows, and to import and export workflow definitions as XML.

To use a workflow to manage the production of, say, a course, you go to the course, and add a workflow block to it. Initially, the block will display a message “There is currently no workflow associated with this course.” with an Add workflow button. Clicking the button allows you to select from any of the workflows that are appropriate for ‘course’.

When the workflow is added to the course, the first step in the workflow becomes active. The workflow block now displays the step instructions for the currently active step; the checklist items as a list of check-boxes; a comments area; a Finish step button; and a link to the workflow overview.

When a step becomes active, all the people responsible for completing the step are sent an email informing them that they should do the step. These people may also get an additional role assigned to them in the context the workflow applies to.

The comments area in the workflow block is a simple editable text area where people working on the step can leave notes for each other.

The Finish step button leads to a confirmation page. If the action is confirmed, then the workflow advances to the next step. When the last step of the workflow is finished, the workflow either stops, or loops back to one of the other steps.

The workflow overview gives an overview of all the steps in this workflow, and the progress through it. The system tracks the timestamp, and the user, each time a step is finished or made active.

The overview page also allows workflow administrators (those with an appropriate capability) to jump the workflow to any particular step.

There is also an admin reports that summarise the workflow across a selection of courses or activities.


Tim at Lone Pine Koala Sanctuary
Tim Hunt (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments RSS

Show comments
  • Picture of Amir Elion
    Mon, Aug 20, 2012, 2:33 AM
    Hi Tim,
    Thanks this look like great functionality.
    However, I tried installing on several 2.2 and 2.3 including a fresh 2.3+ install and latest block and report git source.
    When trying to click the Site Admin >> Blocks >> Workflows i get and error reading from database (this is on XAMPP)..
    Debugging on reveals the following:

    Debug info: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ILIKE '%email%' || emails.shortname || '%to%'
    ) AS activecount,
    ' at line 5
    SELECT emails.*,
    FROM mdl_block_workflow_steps AS activescripts
    WHERE activescripts.onactivescript ILIKE '%email%' || emails.shortname || '%to%'
    ) AS activecount,
    FROM mdl_block_workflow_steps AS completescripts
    WHERE completescripts.oncompletescript ILIKE '%email%' || emails.shortname || '%to%'
    ) AS completecount
    FROM mdl_block_workflow_emails AS emails
    ORDER BY shortname ASC

    [array (
    Error code: dmlreadexception
    Stack trace:
    line 407 of \lib\dml\moodle_database.php: dml_read_exception thrown
    line 945 of \lib\dml\mysqli_native_moodle_database.php: call to moodle_database->query_end()
    line 162 of \blocks\workflow\classes\email.php: call to mysqli_native_moodle_database->get_records_sql()
    line 49 of \blocks\workflow\manage.php: call to block_workflow_email::load_emails()
  • Tim at Lone Pine Koala Sanctuary
    Mon, Aug 20, 2012, 3:42 AM
    So far, we have only run this on Postgres, hence we have not found these thing before. This one is fixable, I guess, when I get a moment.
  • Picture of philippe petitqueux
    Mon, Aug 20, 2012, 4:53 AM
    I replaced ILIKE with LIKE in workflow/classes/email.php (4 occurrences) it worked for me with mysql and Moodle 2.2.4.
    But I'm not a developper so...
  • Tim at Lone Pine Koala Sanctuary
    Mon, Aug 20, 2012, 8:55 PM
    I just pushed a proper fix to github: I won't upload new zips here yet. I will wait to see if any more bugs are found.
  • Picture of Amir Elion
    Tue, Aug 21, 2012, 4:48 PM
    Was able to add new workflow now and start editing it. Also saw you updated some documentation, thanks. Advanced featured like auto actions documentation would be great.
  • Picture of Roberto Sbravati
    Fri, Aug 24, 2012, 8:20 PM
    Great! But can I find some XML files to import with examples of actions "On step activation" and "On completion step"? Thank'you!!!
  • Tim at Lone Pine Koala Sanctuary
    Fri, Aug 24, 2012, 8:23 PM
    I must write those docs. At the moment, all you can do is look in the code: the command_ classes show what commands are available.
  • Tim at Lone Pine Koala Sanctuary
    Fri, Aug 24, 2012, 8:51 PM
    OK, I had to wait for some unit tests to run, so I copied and pasted some docs to I hope that makes sense.
  • Picture of Amir Elion
    Tue, Aug 28, 2012, 12:39 AM
    Thanks a lot Tim for updating the doc.
  • Picture of Heinz Schmolke
    Wed, Oct 31, 2012, 9:34 AM
    I got the same error like Amir and I tried to fix it like Tim has suggested on 20 August but it don't work. Is there a zip file with the fixed problems in progress?
  • Tim at Lone Pine Koala Sanctuary
    Tue, Nov 13, 2012, 2:51 AM
    I won't upload a new zip yet, because we are in the middle of implementing a new features.

    In the mean time, you can get a zip of the latest code, including the LIKE bug fix, from
  • Picture of Lewis Hamilton
    Sat, Aug 3, 2013, 6:09 PM
    This is a great plugin. But I need one more feature on this module, can you please implement a way to assign a task or a step to a single user?
  • Tim at Lone Pine Koala Sanctuary
    Tue, Aug 6, 2013, 1:46 AM
    We are not going to implement that. Surely you might need to assign the task to different people on different courses.

    What you will have to do is:
    1. Create a new role: Do task X in the workflow.
    2. Set that role as being resonsible for doing that task.
    3. Assign that role to the key person in each cousre where the workflow is used. (Cohort enrolment may help there.)
  • Picture of Tom Tabaczynski
    Tue, Aug 27, 2013, 1:22 PM
    When I go to Manage Workflows under plugins admin I get "Page Not Found".
  • Tim at Lone Pine Koala Sanctuary
    Tue, Aug 27, 2013, 9:41 PM
    Please set 'Debugging' to DEVELOPER level, and try again, then copy and paste the full error message here.
Please login to post comments