This post provides a step by step guide on how to make use of Asynchronous Workflows through Dialogs (Interactive Workflows) depending on user responses and requirements. Here we will fire a system job (Asynchronous Workflow) by using the “Start Child Workflow” step in the Dialog Designer of Microsoft Dynamics CRM 2011. Before we start authoring the actual steps let’s get a brief context of the scenario we are targeting.
A Commercial Bank offers the service to “Activate/Update Mobile Banking” through its Customer care center. A customer of the bank calls the Customer Care center to register a request to Activate and Update his mobile banking service. On receiving the “Phone Call”, all that the Customer Service Representative, sitting in the CC center, has to do is to start an Activated Dialog – “Activate or Update Mobile Banking” and proceed through the steps of the dialog to serve the customer. The steps of the dialog would run on these lines:
1. Ask the customer for their Account Number
2. Query for Customer Details from the system and confirm if the caller is a customer of the Bank. This will be done by asking customer’s DOB and verifying with the date stored in the system.
3. Ask the customer about the information they want to update. In this case we will ask for new Mobile Number.
4. Create a Task to do the necessary Update activity
5. Fire an Asynchronous Workflow – “Send Confirmation Email for Update” which will track the completion of the above task and once it is completed, it will send a confirmation email to the registered email address of the customer.
6. Inform the customer that he will receive an Email once the request has been successfully executed.
With this context we are now good to get started with the authoring of the Dialog – “Activate or Update Mobile Banking”.
- Step 1 : Create a “Dialog” for “Phone Call” entity and name it – “Activate or Update Mobile Banking”
- Step 2 : Ask the customer about his Account Number
Add a “Page” and a “Prompt Response Step” with Response Type as “Single Line” and Response Data Type as “Text”. In the prompt Text we type “Ask the customer to provide his Account Number”.
- Step 3 : Query for Customer Details from the system and Confirm
Add a Query Step to fetch the details of the customer using the Account Number Provided above. For more on how to do that please refer to the blog titled “Dialog’s Query Step: Demystifying the Advanced Mode Capabilities”. Use the date retrieved from the query in a Prompt and Response Step to confirm the caller details. Note that to simplify things here, we are just relying on verbal confirmation by matching the date provided by the customer and one returned by the query.
- Step 4 : Ask the customer about Update Information
Add a “Page” and multiple “Prompt & Response” Steps to capture the update details like Mobile Number etc.
- Step 5 : Create a “Task” for the Update request
Use the Data collected from the customer like Account Number, Update information to fill in the task form.
- Step 6: Fire an Asynchronous Workflow to send completion email to customer
- For this first we create another process which will be a “Child Workflow” named “Send Confirmation Email for Update” for “Task” Entity.
- In the Workflow steps, add a “Wait for Condition” step to wait till the “Task Status” is “completed”. In the “then” part of the Wait for Condition, add a “Send an Email” step to send a confirmation email to the registered email address of the Account Holder.
- Activate the Workflow so that it is available for use.
- Now we come back to the original dialog for Phone call and add a “Start Child Workflow” step for the Task that we had created in Step 5 above. Link the workflow created in above step as the child workflow.
- Step 7 : Inform the Customer about the Email
Add a Page and Prompt Response Step to inform the customer that an Email will be sent when the request has been processed. Activate the dialog so that we can run it.
I hope you find this post illustrative and helpful.