Titan: Workflow

By philiprichardson

I have three screencasts for you today regarding the Workflow feature in Titan. These three short demos should hopefully give you a taste of for the capabilities of this powerful feature in Titan.

Titan’s workflow engine is built on the .NET Framework’s Windows Workflow Foundation technology. This new engine replaces our custom workflow engine from CRM 3.0 (and we upgrade your 3.0 workflows to Titan). Workflows are now edited inside Titan’s web user interface: allowing all user types to write workflows and view workflow status. Naturally editing of workflows is a permission based action (as most things are in CRM).

What can workflow do? Well – it can simple things like update records based on a pre-condition, it can orchestrate long running business processes (eg. a sales pipeline process which might take many months to complete), it can perform asynchronous systems integration, send emails to users/customers and many other complex tasks.

In this first example we have a very simple workflow which changes some data based on a record update. In CRM the Primary Contact of an Account doesn’t actually have to be parented to that Account. This is to enable some complex scenarios where contacts might act as a proxy (eg. When selling to Microsoft IT your primary contact might be a person who actually works for Avanade). In this example we re-parent a contact each time they are made a primary contact on an account. Screencast: Basic Workflow.

This next example shows a much more complex process at work. Here I have created a Lead Management process. It took me about 10 minutes to create the workflow. To create this using code would no doubt hours in CRM and other competing products. Notice how I am able to create/update related records and how the workflow waits on the condition of related records before proceeding. Also note how I am able to access the workflow status from the actual lead record. With this read only view – the past, present and future of this business process is described in ‘real worlds’. It effectively forms a summary document for the process with actual system status shown alongside. Giving a user the power understand what is going on is incredibly exciting for me. Screencast: Complex Workflow.

The final screencast is one for the developers. The previous two examples are aimed squarely at end users and power users. In Titan you can write an WinWF activity (bascially an Assembly which inherits from a Workflow Type) and decorate it with some CRM info. This assembly can then be used by the CRM workflow editor to perform custom actions. You set some input parameters and get back some outputs. In between your code does whatever it wants to (super complex calculations, system integration, calling webservices etc etc). In this example I have some code which checks across the system for the Email Permissions for a particular email address. I excited about this feature as it creates a tangible collaboration point between the developer and the end-user. The developer can create this custom actions and publish them to CRM. Then end-users can create any number of workflows to consume them. Screencast: Workflow Activity.

If you want to see more of this stuff in action – check out the Readiness Tours in the US and in international locations (contact your local subsidiary for more info) or look on the Partner Portal.