Workflow
Verified against source (15)
decision/DecisionTemplate.Fields.csdecision/DecisionStepTemplate.Fields.csdecision/DecisionDependency.Fields.csdecision/DecisionDelayTemplate.Fields.csdecision/DecisionStep.csdecision/DecisionDelay.csConfig/Decision.configDecision/DecisionTemplate.Edit.xsltDecision/DecisionStepTemplate.Search.xsltDecision/DecisionStepTemplate.Edit.xsltDecision/DecisionStepTemplate.Template.xsltDecision/DecisionStepTemplate.DependencyEdit.xsltDecision/DecisionDelayTemplate.Edit.xsltTables/DecisionStep.sqlTables/DecisionDelay.sql
Start with the flowchart you already use. Each flowchart becomes a workflow template, each shape a step, and each line a dependency.
Workflow templates
Section titled “Workflow templates”| Setting | Purpose |
|---|---|
| Workflow Template | The template’s name. New workflows take this name. |
| Applies To | The type of record the workflow runs against, such as a process, contact, or organization. Steps evaluate data from this record. |
| Type, Status, Description, Labels | Classify and document the template. |
| Repeatable | One per parent, One active per parent, or Many per parent. Starting a workflow that’s already at its limit reuses the existing one. See Templates. |
| Enforce Start Dates | When on, a step can’t be completed unless it has a start date. |
| Enforce Delay | When on (the default), a step that was in progress when a hold started can’t be completed until the hold ends. Set to No to let steps complete during holds. |
Open the template’s Workflow Steps panel and add steps from the New menu:
| Step | What it does | When it completes |
|---|---|---|
| Add a Task | Creates a task (a form) for a person to complete. See Forms. | When the task is completed. |
| Generate a Document | Generates a document from a document template. See Document Management. | Immediately. |
| Send a Message | Creates a note, email, or text from a message template. See Messaging. | Immediately. |
| Calculate a Score | Runs a score template against the record. See Scoring. | Immediately. |
| Calculate a Ledger | Creates a ledger from a ledger template. See Ledgers. | Immediately. |
| Open a Process | Opens a case. See Cases. | Immediately. |
| Launch a Workflow | Starts a child workflow on the same record. | When the child workflow completes. |
| Add an If/Then Statement | Evaluates a condition against the record’s data and stores True or False. | Immediately, with its result. |
| Add a Polling Step | Re-checks a condition on a schedule until it’s true. Use it to wait for data, or for time to pass. | When the condition is true. |
| Add an Advanced Step | Calls any QBO operation, once or for each row a query returns. | When the operation finishes. Long-running operations call back when done. |
Templated steps (tasks, documents, messages, and so on) can pick their template in two ways: a fixed Template, or a Matrix that returns a TemplateName from the record’s data. If the matrix returns no template, the step completes without creating anything, which is a clean way to make a step conditional. Matrices are covered in Rules.
Step settings
Section titled “Step settings”| Setting | Purpose |
|---|---|
| Workflow Step | The step’s name. Use different names to reuse one task template for several steps, such as “First Call” and “Second Call”. |
| Duration | Expected duration, in Days, Hours, Minutes, Seconds, Months, Years, or Business Days. Drives estimated completion dates. |
| Reference Date | Calculates the due date from a date on the record instead of the step’s start, for example 30 days after a contract’s effective date. |
| Repeatability | One (once per workflow), Multiple (can be added again by users), or Ad-Hoc (only when a user adds it). Multiple and Ad-Hoc can set a maximum count. |
| On Start / On Complete | Set the workflow’s status, the parent record’s status, or both, when the step starts or completes. |
| Queue | Runs the step on a named queue instead of the default one. Use dedicated queues for heavy or slow work so it doesn’t delay other steps. |
| Team | Sets the team for the step’s task and worklist item. |
| Sequence | Display order. Calculate Sequence sets it from the dependencies; it doesn’t affect processing. |
Dependencies
Section titled “Dependencies”Drag a step onto another step to make it a dependency, and click a dependency to edit it:
- Depends On: the step that must finish first.
- When: for a dependency on an if/then step, True or False, the branch this step belongs to. Set it on every dependency on an if/then step.
- Group Number: how multiple dependencies combine. A step starts when every group has at least one completed dependency. Dependencies in the same group are alternatives (OR); different groups are all required (AND).
So for a step that should wait for both “Review” and “Approval”, give those two dependencies different group numbers. For a step that should run after whichever branch of an if/then finished, put both dependencies in the same group.
Steps on a branch that isn’t taken are never created. A workflow completes when no further steps can start and none are still in progress.
Holds pause a workflow for outside events. Define each kind in a hold template:
| Setting | Purpose |
|---|---|
| Hold Template | The hold’s name, such as “Awaiting Third Party”. |
| Applies To | The type of record whose workflows can be held. |
| Type, Status | Classify the hold. |
| Duration Scale | The unit used to measure the hold. |
| Parent Status | Set parent status on start: changes the record’s status when the hold is added. |
| Task | A form the user completes when adding the hold, for example to record the reason. |
QBO keeps a count of holds and the total time held on each workflow and on each step that was in progress, so reports can show processing time with and without waiting time. A workflow with an open hold can’t be restarted.
Changing a template that’s in use
Section titled “Changing a template that’s in use”Changes apply to running workflows the next time they process:
- Adding a step: closed workflows never get it. Open workflows get it once its dependencies are met, which can mean immediately for workflows that are already past that point.
- Deleting a step: workflows that already have the step keep it. If it isn’t complete there, someone has to complete it by hand.
When a new step lands in workflows that have already moved past it, decide whether to backfill: complete it in bulk, let the work happen, or decide case by case. If you’re adding or removing many steps or rewiring dependencies, copy the template, make the changes in the copy, and point new work at it instead.