The following are some best practices to consider for managing processes:
- Be sure to accurately set the Scope of your workflow before proceeding with the workflow logic. It is extremely important to understand how a workflow will run if it is a user-level process versus how the same workflow will run if it is an organization-level process!
- Always try to cleanly end workflows. Use Stop Workflow steps wherever possible to ensure all workflow logic exits cleanly and no system resources are consumed unnecessarily.
- Refer to the previous section for information about Infinite Loops. Understand the limits on recursion and how to circumvent those restrictions. For example, you may build in a 10 minute wait in a recurring workflow to ensure there are no infinite loopback issues.
- Always use good naming conventions when creating processes. While it may be clear to the person creating the workflow, it is not always clear to others what “Account Workflow #1” or “Joe CRM’s Opportunity Dialog” does! As best practice, name a process close to what the process does. (ex: “Set The Owner Based on Zip Code when Lead is Created” or “Assign New Cases to Bob Smith for Follow-Up”)
- Consider situations where you are using Wait conditions. Each Waiting workflow in the system consumes a small amount of system resources. While this may not be a concern for most implementations, this situation can cause issues in large deployments with numerous waiting workflows on hundreds or thousands of records. Use Timeout whenever possible to avoid system resource allocation issues.
- Remember that workflows run asynchronously and dialogs run synchronously! It may take a few moments before you ‘see’ the results of a workflow that ran against your CRM records. This is especially true when using workflow to Mass Edit records in your system.