Upgrading workflows can only happen as part of upgrading an entire CRM deployment. So if you have a lot of workflows you need to make sure they’re all in the deployment before you perform the 3.0 to 4.0 upgrade. (To my knowledge) it is not possible to import a 3.0 workflow into 4.0.
The upgrade process from CRM 3.0 to CRM 4.0 performs a good job of upgrading workflows and sales processes to 4.0. Here’s a great example of a staged sales process that has been through the upgrade process:
Notice the first step in the stage is to update the opportunity. This is a conversion of the CRM 3.0 sales process function that updated the Pipeline Phase of the opportunity and the Probability of close at the beginning of each step. CRM 4.0 workflows give us the ability to apply staged workflows to any entity. This new functionality lets us accomplish a lot more with workflows.
Another interesting detail of this code is the “Wait Until” step. Each task that is in the wait step is checked for both completed or canceled. This is important because a user could cancel a task rather than completing it and if you are only looking for completion your workflow will hang forever. A wait should take this into account and can be coupled with a conditional branch to handle the cancellation of the workflow if the task is canceled.
The last step in each stage is important as well. The conditional branch tests to see if the opportunity has been won or lost at the end of the stage. It will terminate the workflow based upon any change of status rather than going to the next stage in the workflow process.
You should also know that the name of the stage (“Qualify Stage”) is the value that drives multiple columns when you run the sales pipeline report -not the value in the Pipeline Phase attribute of the opportunity. See my blog for an article about the specifics of that.
Have a great night!