I'd like to kick this off with a well done! A tool like this has been a long time coming for Umbraco.
I've been asked many times about applying compliance via workflow to our corporate website and have baulked at the thought of writing such a thing from scratch.
I have a few questions..
The online demo doesn't seem all that stable, I get a lot of errors when trying out the different functions. How long would you it will be before it is production ready?
What will you be charging for this awesome plug-in?
Has it been tested with the new user management UI in the up and coming Umbraco 7.7
If you could raise any issues here or on GitHub, I can investigate. It should be pretty stable, but since I've largely been the only user, there's probably other issues to be exposed. It's running on a free Azure site, which I've found a bit wobbly in the past...
Hopefully others shoot me some pull requests with bug fixes and features etc.
Charging? Nah. Umbraco keeps me in a job, so happy to give back.
I've been using it on 7.7 locally with no issue. I decided to keep the workflow groups separate from Umbraco's user management as the workflow groups require some extra properties, and I want to keep the package loosely coupled where possible. It's perhaps not ideal to have two user group management interfaces, but at the same time I think it makes sense to have the separation as the context and function for each is different.
Thanks Martin - should be all good now. Looks like I wasn't handling cases where a node could be deleted mid workflow (in practise, that shouldn't happen as user permissions would prevent it). Regardless, no more error on the test site.
I'm still seeing the issue, it seems intermittent and click between groups sees the error appear and disappear. Sometimes the fields populate, sometimes not, along with the error message.
How do I add users to a group? There doesn't seem to be any UI for this - I think I'm a little confused here, are they "umbraco users" or something else?
Can there only be an email notification per group, or can you apply notifications per user within a group?
In workflow settings do the doctype dropdowns display for n number of doctypes? If so that could be a heck of a lot of scrolling for a big project. Can you maybe tweak this to allow you to add doctypes one at a time? Maybe in a separate drop-down and then apply a group?
Output of reports in CSV/PDF format?
The use of the term "membership" I feel will cause some confusion in the groups setup page, as "users" and "members" serve two separate functions. I think you should only refer to users (assuming you using standard Umbraco users)
I haven't been able to reproduce these - wondering if you're seeing a cached version of the backoffice?
Re your other questions:
to add users, there's a property at the bottom of the group view - has two lists, one being all users, the other the current membership of that workflow group. Clicking a name in either list moves the user to the other. I'm thinking I'll set 7.7 as a minimum version requirement, and update this to reflect the new user management UI.
if the group email is set, notifications will only go to that address. If it has no value, all members of the workflow group will be notified.
from memory, the settings shows five doctypes at a time, and can be filtered via the text input
no reporting output at the moment, but would be pretty straightforward to convert JSON to CSV
membership refers only to the users who are members of a given workflow group. Might be clearer if I label it group membership or similar, but I can't see there being a better term to describe the users in a group.
I'm trying to visualise how the workflow process actually works in practice.
Let's say we have three groups set-up, each containing 3 users and Group 1 has been assigned to our "news pages" doctype for the purposes of business approval and compliance. A group notification has been setup on each group and the rule "Other groups must approve" applied.
In this scenario I'm assuming Group 1 contains all of our Business Development authors responsible for collating marketing information into newsworthy content.
Group 2 will be a list of business individuals responsible for checking the accuracy of the content, they may also have been contributors to the actual content to be published in the first place.
Group 3 will be a list of individuals responsible for compliance (business and legal practice)
Questions...
How are the stages defined beyond the initial request for publication within Group 1 and in what order are they executed? Would it be possible to define execution (stage) order?
Do ALL members within a group need to approve an item for it to pass the stage, or is only one member required to approve it. Again could this be defined?
Some further bugs i've found on demo site.
Material seems to get published regardless of the workflow request.
Workflows don't seem to be working once applied. ie, publish as Group A. Log-in as group B, nothing to do! Lots of errors.
Deleting groups is failing (ie they seem to be deleted, but still appear in the list, albeit with error)
creating approval groups in the workflow section doesn't, on its own, have any impact on how publish requests are handled
workflows need to be configured on a node, setting the sequence of groups that must approve the content changes
the different workflow types are summarised on the documentation tab:
All groups must approve: notifies all members of the relevant group at each approval step, even if the original editor is in that group. Esssentially this flow type enforces the exact workflow be followed.
Other groups must approve: only groups where the original editor is not a member are required to approve the changes. This type allows implied approval, and skips workflow steps where the editor is a member of the approval group. Notifications are not sent to skipped groups.
All groups must approve, ignore author: similar to the first option, but notifications are not sent to the original editor. The change must still be approved at all stages, regardless of group membership.
In your example, any changes made to a news page would notify all members of Group 1, except in cases where the change was made by a member of Group 1 (in this case the change would publish and the workflow complete). The workflow could be actioned by any member of the group.
Groups 2 and 3 would not be involved in the workflow process at all, as they are not assigned. To define additional stages, do this either on a node in the content tree to apply to the selected node and all descendents, or to a doctype in the workflow settings section, which will take priority.
If you needed all members of a group to approve changes, I'd add additional groups with a single user, and then set the order in which they should approve the change. To add an option to require all users in a group to approve a step isn't possible without essentially rearchitecting the entire package - it wasn't part of my original scope.
EDIT: I have a feeling the errors are coming from the demo site using SQLCE rather than an actual SQL server instance.
Also found a user configuration error which would have been contributing - to view the workflow settings requires using the contentTypeResource, which returns a 401 if the current user doesn't have access to the Umbraco settings section. Will need to build around that.
All understood. I've gone through it and it does indeed seem to be working as described.
One thing I have noticed is if you delete a group it seems to get "notionally deleted" and you can no longer use the group in any workflow scenario on a node, but they still appear in the group settings tree. If you click on a deleted group you get an error notification. For data retention reasons you need to keep the history, but still be able to manipulate the groups (without error).
I've just demoed your site to our digital manager in Marketing and she was quite excited about it! I explained it's not quite ready for prime-time, but when it is I'll ensure the company makes a donation to your efforts. Do you have a PayPal account? We did this for Kevin Jump the uSync author.
I've spent a bit of time refactoring and tidying, and have bumped the minimum requirement to v7.7, to allow me to use the new user management UI, which works really well for managing the workflow groups.
I've updated the demo site, but haven't had much opportunity to test it again.
Also keen to add some sort of reporting output, and possibly find a way to exclude particular users from the task notification emails, but not sure how I'd do that within the package - I'd like to avoid injecting features into other areas of the backoffice...
Hi Nathan
I downloaded the latest version of Plumber from the Github repository.
When I click on group items under Approval Groups (Approver, Group A, Group B ...) on the Workflow tab, I get an error like the screen shot and nothing is displayed. What am I supposed to do about it?
Is that running from the source? Probably need to run the grunt dev task to copy everything to where it should be - have a look at the grunt file in the root of the workflow project.
Task you need to run is simply 'grunt dev'.
All assuming of course this is the cause of the problem!
Much needed compliance toolset!
Hi Nathan
I'd like to kick this off with a well done! A tool like this has been a long time coming for Umbraco.
I've been asked many times about applying compliance via workflow to our corporate website and have baulked at the thought of writing such a thing from scratch.
I have a few questions..
Hi Martin
Thanks for the feedback, much appreciated.
If you could raise any issues here or on GitHub, I can investigate. It should be pretty stable, but since I've largely been the only user, there's probably other issues to be exposed. It's running on a free Azure site, which I've found a bit wobbly in the past...
Hopefully others shoot me some pull requests with bug fixes and features etc.
Charging? Nah. Umbraco keeps me in a job, so happy to give back.
I've been using it on 7.7 locally with no issue. I decided to keep the workflow groups separate from Umbraco's user management as the workflow groups require some extra properties, and I want to keep the package loosely coupled where possible. It's perhaps not ideal to have two user group management interfaces, but at the same time I think it makes sense to have the separation as the context and function for each is different.
Hi Nathan
Here's some screenshots of the errors I'm getting. Logged in as User A
Thanks Martin - should be all good now. Looks like I wasn't handling cases where a node could be deleted mid workflow (in practise, that shouldn't happen as user permissions would prevent it). Regardless, no more error on the test site.
Hi Nathan
It's looking a lot more stable, but here's one more.
Hi Martin
That issue should be gone now - was related to referencing a deleted node when building the workflow objects.
I'm still seeing the issue, it seems intermittent and click between groups sees the error appear and disappear. Sometimes the fields populate, sometimes not, along with the error message.
Regards Martin
Hi Nathan
I have a few more questions for you.
Found another issue.
/workflow/tree/view/settings
is causing the login to timeout, redirecting you to the login page. Cannot log back in if the URL remains.
M.
Hi Martin
I haven't been able to reproduce these - wondering if you're seeing a cached version of the backoffice?
Re your other questions:
Hi Nathan
I'm trying to visualise how the workflow process actually works in practice.
Let's say we have three groups set-up, each containing 3 users and Group 1 has been assigned to our "news pages" doctype for the purposes of business approval and compliance. A group notification has been setup on each group and the rule "Other groups must approve" applied.
In this scenario I'm assuming Group 1 contains all of our Business Development authors responsible for collating marketing information into newsworthy content.
Group 2 will be a list of business individuals responsible for checking the accuracy of the content, they may also have been contributors to the actual content to be published in the first place.
Group 3 will be a list of individuals responsible for compliance (business and legal practice)
Questions...
Some further bugs i've found on demo site.
I think you're misunderstanding how this works:
In your example, any changes made to a news page would notify all members of Group 1, except in cases where the change was made by a member of Group 1 (in this case the change would publish and the workflow complete). The workflow could be actioned by any member of the group.
Groups 2 and 3 would not be involved in the workflow process at all, as they are not assigned. To define additional stages, do this either on a node in the content tree to apply to the selected node and all descendents, or to a doctype in the workflow settings section, which will take priority.
If you needed all members of a group to approve changes, I'd add additional groups with a single user, and then set the order in which they should approve the change. To add an option to require all users in a group to approve a step isn't possible without essentially rearchitecting the entire package - it wasn't part of my original scope.
EDIT: I have a feeling the errors are coming from the demo site using SQLCE rather than an actual SQL server instance.
Also found a user configuration error which would have been contributing - to view the workflow settings requires using the contentTypeResource, which returns a 401 if the current user doesn't have access to the Umbraco settings section. Will need to build around that.
Hi Nathan
All understood. I've gone through it and it does indeed seem to be working as described.
One thing I have noticed is if you delete a group it seems to get "notionally deleted" and you can no longer use the group in any workflow scenario on a node, but they still appear in the group settings tree. If you click on a deleted group you get an error notification. For data retention reasons you need to keep the history, but still be able to manipulate the groups (without error).
I've just demoed your site to our digital manager in Marketing and she was quite excited about it! I explained it's not quite ready for prime-time, but when it is I'll ensure the company makes a donation to your efforts. Do you have a PayPal account? We did this for Kevin Jump the uSync author.
Kind regards Martin
Hi Martin
I've spent a bit of time refactoring and tidying, and have bumped the minimum requirement to v7.7, to allow me to use the new user management UI, which works really well for managing the workflow groups.
I've updated the demo site, but haven't had much opportunity to test it again.
Also keen to add some sort of reporting output, and possibly find a way to exclude particular users from the task notification emails, but not sure how I'd do that within the package - I'd like to avoid injecting features into other areas of the backoffice...
Hi Nathan I downloaded the latest version of Plumber from the Github repository. When I click on group items under Approval Groups (Approver, Group A, Group B ...) on the Workflow tab, I get an error like the screen shot and nothing is displayed. What am I supposed to do about it?
Thank you.
Just realised I replied to the thread, not your comment
Is that running from the source? Probably need to run the grunt dev task to copy everything to where it should be - have a look at the grunt file in the root of the workflow project.
Task you need to run is simply 'grunt dev'.
All assuming of course this is the cause of the problem!
is working on a reply...