Whats the difference between a case sequence and a case timeline? I can see one has an offset and the other doesnt, is that it?
1 Answer
A timeline defines a default schedule. The default schedule may intentionally stretch over a long period of time (weeks or months). Activities can potentially be concurrent or reordered. For example, as soon as the case is opened, you schedule four activities:
- We should acknowledge the new case within a day.
- We should have a phone call with the client after 3 days.
- We should have an internal meeting after 3 days.
- We should file a report after 14 days.
A sequence defines a list of back-to-back steps. There's no particular length of time (days or weeks or months), but there is a very specific order. For example:
- As soon as the case is opened, we should send an acknowledgement. It should be sent as soon as we can.
- After the acknowledgement, we should make a phone call (as soon as we can).
- After the call, we should have an internal meeting (as soon as we can).
- After the meeting, we should file a report (as soon as we can).
Both are idealized; the real activities will happen on their own schedule. These idealized models aim to be easier to discuss/explain, but they lack nuance (e.g. conditionals, branches, merges). For more sophisticated processes, one might
- Write a case controller function using hook_civicrm_caseChange and Civi\CCase\Analyzer.
- Write event/condition/action rules using CiviRules.
(Note: Some of the early specwork for sequences and case-controllers can be found at https://civicrm.org/blogs/totten/customizing-civicase-workflows and http://wiki.civicrm.org/confluence/display/HR/CiviCase+Util . The architecture is basically unchanged, but several of the symbols changed during implementation. "Pipelines" were renamed to "Sequences", and all the new classes were moved to Civi\CCase
.)