A large organization using CiviCRM is planning to switch to using CiviMail for their broadcast email needs. This is great news for CiviMail and will take it to the next level in terms of feature set and functionality. As part of their migration, we are integrating a workflow engine into CiviMail. For this version, we will be using Drupal's rules module, thus making it Drupal specific. (if you are a joomla user and interested in sponsoring this for CiviCRM on Joomla, please contact us via email / IRC). For this project, we'll be focussed on extending the CiviMail schema to facilitate workflow. Sending a broadcast email will be split into three steps:
- A user creates the email content. On creating / uploading the content, an event is triggered which informs the QA group of a new mailing
- The QA group verifies the mailing and works with the user to improve the mailing. Once this is done, the mailing is scheduled. This triggers another event which informs the production group that a mailing is in the queue
- The Production group validates the mailing and then either approves or rejects the mailing. If rejected, the mailing goes back to Step 1. If approved, the mailing enters the civimail job system where it is picked up and delivered.
From the rules module project page
The rules module allows site administrators to define conditionally executed actions based on occurring events (known as reactive or ECA rules). It allows users to send customized email notifications to various groups, build flexible workflows, Create custom redirections, system messages, breadcrumbs, ..
- Extend the CiviMail schema to add review related fields (reviewer id, reviewer status, reviewer date, review text). We will also add scheduler related field (scheduler id, scheduler date).
- Trigger events for various steps of the mailing, i.e. mailing is created, content is created / uploaded, mailing is scheduled, mailing is approved, mailing is queued, mailing is complete. This will enable developer to catch these events and perform any standard or custom actions in response.
- Create a mailing approve / reject screen so the production folks can jump directly to that page, review the contents and do the needful.
- New permissions for scheduling and approving mail.
- Job scheduler modifications to only process approved mailings.
- Improvements to the Mailing Reports to display information via charts and graphs (in addition to tabular)
- Improvements to bounce handling to avoid the "put most recipients on hold" due to recent mail protocol changes.
- Change the queueing protocol to queue recipients as soon as possible to avoid discrepancies in ACL permissioning.
We will introduce a Make It Happen for 3.4 / 4.0 to improve workflow across all CiviCRM processes. Stay tuned for details!
Looking forward to the CiviMail workflow tool.
At the end of your msg you mention adding workflow processing across CiviCRM. With that in mind I wanted to mention a project that has been under way for Drupal 7 that might be useful either for ideas or maybe code. It is currently in Alpha 3 but looks to have lots of potential
The Maestro module is a workflow engine/solution that will facilitate simple and complex business process automation. The first release of this module will be for Drupal v7.
The initial module spec and community discussion on the relationship and differences with existing workflow and rules based modules can be found at the Contributed Modules Ideasgroup page.
and figure out various integration possibilities with maestro. Potentially build an integration module and explore various possibilies We need this working for drupal 6 also, and will be focussing on rules only lobo
Thanks for the feedback.
As for Drupal 6, while I would love to see it there also, It's my understanding that the maestro code base has been written with Drupal 7 as a base requirement. So far I haven't had a chance to experiment with it myself, and am basing my opinion on the video demos , doc and comments from others.
When my own project gets to the point where I can do some real experimentation with it, I'll try and get a feel for how an integration module could be created and what it might take to implement an integration with CiviCRM
But in the mean time, I'll still be looking forward to your Rules implementation.