Thursday, May 12, 2016

4x4 Series: Workflows

I was asked to participate in the CRMUG 4x4 webinar series. These are quick webinars with multiple speakers sharing tips and answering questions. I also wanted to document my tips here for future reference.

Workflows are a great way to quickly and easily provide automation to help your users and your business process. It is very important to understand how they work so you can use them effectively. Here are my tips for working with workflows.

Map Out the Process

With any type of process it is important to map out exactly what you want to happen. Start with your requirements and then use a visual tool like Visio (or a white board) to draw out the steps. This is important so you can find logic errors or any pieces that may need additional thought. Ask yourself questions like:
  1. What conditions do I need to check before processing?
  2. Are there any exceptions?
  3. Does this IF need a default condition?

This is also a good time to look for pieces that can or should be broken out into child workflows. Child workflows are a great way to divide up the process into logical groups but it cannot pass it's status back to the main workflow so you have to account for that. Child workflows can also be called by other workflows. So if you notice many of your workflows are doing the same few steps, consider seeing if this can be made into a child.

Finally, drawing your process gives you something visual to share with your stakeholders. Especially in complex workflows, it is good to walk through this with your stakeholders to make sure they have thought through all the possible branches and the logic associated with them.

Test in Test

I always recommend creating your workflows in a development or test environment and using a solution to move it to the production environment. This ensures that you have an opportunity to fully test without the danger of harming any production records. It also allows you to see the outcome of the workflow and demonstrate to the stakeholders to ensure it is what is needed.

If you want to test the workflow on a larger volume of records try importing records that meet the criteria (even exporting from a production system if it is a workflow update instead of full rewrite) or using the bulk edit feature. This will allow you to quickly fire off a large number of the workflows so you can monitor the system jobs and look for any errors.

I also find that including workflows as part of a release raises the visibility. We never import solutions to production unless it is our designated release. For releases, we review all of the items going and determine which groups need to be aware of the change. So the system team has an opportunity to ask questions early and user are aware so they can provide input as well.

CRM Horror Story: My CRM horror story is from back in the days of CRM 4.0. This was before solutions so most workflows were created in live. I was a part of the CRM Team focused mainly on development, training and troubleshooting. There was another group of power users focused on reporting who had access to create workflows.

One of these reporting users created a workflow to fill in some data on certain records. He had it start when fields were edited including the Modified On field. The workflow then updated 3 fields in 3 separate steps. He turned this on and then imported 3000 records. So each of these records triggered a workflow and as that workflow ran it updated the record 3 times and triggered 3 more workflows.

This brought the CRM system to a halt! The problem was not obvious at first because we were unaware of this workflow until we evaluated the system jobs. To resolve we have to deactivate that workflow and give the reporting user a stern talking to (twice actually because he tried to do it again).

Moral of the story - limit access to create workflows, educate people on their impacts, ensure people are aware of workflow effects and TEST before releasing to production!

Review System Jobs

It is very important to know what is happening in your system. Get familiar with how the System Job view looks - how many workflows are running in a given time period, what kind of workflows, what other things do you see here. This is helpful so if there is an issue you can look and know what you are expecting to see.

Keep an eye on your suspended jobs (waiting) as well as failed jobs. If you have workflows that wait, these will appear in your suspended jobs. Edit this view to pull in additional details of the workflow (stage, regarding record details, etc.) so that you can look for items that should not be waiting.

The capabilities of Advanced Find are amazing so you can narrow down your results based on records related to the workflow to specifically see items that may need more work.

Also look at System jobs with an Error Message. This means that as it was processing it ran into an error and could not continue. These workflows are still in a waiting or suspended status. These should be manually reviewed. If you can resolve the issue, you can resume the workflow so it moves forward. If you cannot resolve it or the necessary processing was already done, then you should cancel the system job. At the end of your review you do not want any error workflows still in a waiting status.

As part of your review of System Jobs with errors, you should evaluate if the Workflow needs to be changed. For example, if the error was trying to update a task that had been closed, you can add a check condition to the workflow to check that the task is open before editing it.

Use Case: Maintenance Work

A great use case for Workflows and Dialogs is maintenance. By this I mean record edits or changes that power users may need to make that you do not want the average user to be able to make.

For example, say there is a date field that is automatically populated based on when another field is changed. If you need to set this to a date in the past you can use a dialog which asks what date it should be set to and then makes the change. (An alternative tip provided by Mitch Milam I believe is to create an "Administrator" form where all fields are editable. Make this only available to System Administrators.)

Recently we have also used this for test records. Instead of trusting that a user will handle all the steps to ensure the record is properly marked as a test - create a workflow that can be run. This workflow can append test to the name, add comments, and even reassign to a test owner.

Other tips?

Here are the tips from other panels:
  • If you can't document it in a document flow then you shouldn't do it in a workflow
  • Keep them clean - do not over-nest if statements. Try to break into child processes. More flexibility for future changes as well. Just don't forget to close all the doors by including stop workflow statements
  • Clean them up - turn on automatic deletion and use bulk delete jobs for others
  • Review system jobs to look at failed and waiting jobs, review the associated message to see if there was an error
  • "When pigs fly" conditions - talk to the manager and also the person doing the work and get them involved in the planning. Still prepare for other situations. Consider a default condition that will send an email (or queue item) for awareness.
  • Don’t underestimate the power of workflows
  • Be careful what you trigger it off of - don't want it to be called over and over again. Look at the workflow possibilities before building custom code.
  • Can combine with custom code to trigger workflows based on ribbon button clicks (JavaScript). Have script set another field that triggers the workflow.
  • Be aware of the user security and impact on the workflow. On-Demand runs as the user. Automatically triggered runs as the workflow owner.
  • Gus G tip for creating dummy records then remove with bulk delete to trigger workflow on a linked record - http://community.dynamics.com/crm/b/adopt2win/archive/2013/04/15/scheduling-recurring-workflows-in-microsoft-dynamics-crm-2011-online-and-on-premise
  • Required fields do not apply to workflow, only on the form. Users will need to populate if they are assigned the record.
  • Wait conditions - make sure to include a timeout and a way for users to cancel
  • Trigger custom error messages with real-time workflows: http://survivingcrm.com/2013/11/using-real-time-workflows-to-show-error-messages/
  • Remember you cannot trigger workflows off of updated to calculated fields



There are so many great uses for workflows! I try to never do anything twice - if I have to do it more than once I should find another solution such as a workflow, bulk edit, export, etc. So, what do you use workflows for? What are your tips for learning and creating workflows?

Sunday, May 8, 2016

May 8 Blog Review

Clearly the blog has been a bit delayed so we have a bit of catching up to do. Let's jump right in!

CRMUG has lots of exciting things happening over the next few weeks. CRMUG European Congress is next week so be on the lookout for news from that. Also the Momentum Chapter Series! The DC Chapter meeting is on Tuesday, May 10. We will feature deep dive content straight from Microsoft on top of our usual programming. Plus there's lunch! Get registered for the CRMUGDC Meeting or see if there is a similar meeting coming up in your city! As always you can stay up to date on all of the DC Chapter activities by joining our community at CRMUG.com/Washington.

Ledgeview Partners shared a quick tip in Getting CRM Columns Sorted Out. This shows users how to sort by multiple columns in a view.

PowerObjects posted a deep dive into One Click Document Generation in CRM 2016. They walk through how to create a table in the template to pull in multiple lines of data - such as multiple products from an Opportunity.

Hitachi Solutions explains how to Use Real-Time Workflows for Data Validation. Real-Time workflows allow an error message to be returned to the user when they try to complete a certain action. This logic will fire from the web version, Outlook and even the tablet app.

A quick tip from Mitch Milam - Repurposing CRM Fields, Just Say No! Do not change out of the box fields to something else for your use. Keep in mind that they were created for a reason and future versions might make use of them in different ways.

Finally, I always recommend you keep up to date with the CRM Tip of the Day. If you are a bit behind I would recommend checking out Teach our users to type-ahead and 
The Forgotten Three.

That's all I have for today. Let me know if I am missing anything!





Wednesday, May 4, 2016

4x4 Series: Training Your Users

I was asked to participate in the CRMUG 4x4 webinar series. These are quick webinars with multiple speakers sharing tips and answering questions. I also wanted to document my tips here for future reference.

Training is an integral part to any implementation because you cannot have user adoption if they do not know what to do! Here are some of my tips. What other tips do you have?

Quick Reference Guides
Create quick reference guides for each user group or functional role. If possible, this should be kept to one page with all the steps they need for their primary job functions. This will give them something to keep handy and look at for their primary tasks.

You can build a repository of key functions with their step by step directions. These can be items such as searching for a record, scheduling an appointment, adding an address, etc. Then for each group you can just grab out the pieces that are relevant for them to build your document quickly.

Make Training Accessible
You also want to make sure you training materials are accessible for everyone. Part of each training should be showing the users how to get more training. This needs to be easy to get to and have details about the commonly used features but also the items they only need every once and a while. Make sure there are pictures and procedures incorporated where necessary.

There are many exciting ways to use the CRM 2016 Custom Help features to assist with keeping your training relevant and accessible.

Frequent Reminders and Tips
My last tip would be to keep the tips coming. Give user frequent tips to remind them of functionality and guide in the correct procedures. Make sure you find the balance here so your tips do not become too frequent (and therefore ignored) but stay relevant and helpful.

Other Tips
Here are some of the other tips discussed in the webinar:
  • When using a Train the Trainer approach make sure your trainers are accountable to their teams and available to for doing training and helping others
  • Keep training fun
  • Try optional lunch and learns - people will come out for food!
  • Tailor your training for specific groups and roles. Also make sure your training style matches up with company culture
  • Very related to User Adoption! Make sure you have executive support to encourage other users to learn the system and use it well

CRMUG Members can access the Recording here: 4x4 Training your CRM Users (Panel 2)


Please post your training tips in the comments! How do you help your users?

Sunday, April 10, 2016

April 8 Blog Review

Let's jump right in to the CRM news that was shared this week.

As you probably know, Microsoft Envision was going on this past week. This replaced Convergence in some ways as a business focused Dynamics conference. Ledgeview Partners shares their quick recap and some helpful links in Microsoft Envision 2016 Sessions Available On-Demand.

CRM Tip of the Day shared two tips about Server Side Synchronization. First read User Experience Differences between Outlook and Server-Side Synchronization. This will give you some things to keep in mind as you decide if you want to take advantage of this feature. Then you can read Duplicate Activities in Outlook with Server Side Synchronization. If you have issues with Server Side Synchronization this gives you some ideas on where to begin your troubleshooting.

Finally, EMEA Dynamics CRM Support shared Dynamics CRM Document Generation. This shares the functionality available, quick details on how to set up and answers some common questions.

Also keep in mind that the CRMUG Summit early bird deadline is quickly approaching! You can also check out these tips for convincing your boss to let you go. I hope to see you there!

That's all for today folks!



Monday, April 4, 2016

April 1 Blog Review

Let's jump right in to the CRM news from the past week.

PowerObjects shared Filtered Lookups vs. Dependent Option Sets. This shows you how to create similar functionality to a code-driven dependent option set using lookups.

CRM in the Field posted about What does a Dynamics CRM Administrator Do? The role of an Administrator can vary greatly from setting up users to writing JavaScript to configuring servers. This article lists some of the key functions that you need someone in your organization to handle.

CRM Tip of the Day wrote about Missing Entitlement Permissions. This describes how to solve the mystery of getting errors on Entitlement access when Entitlements are not even in use.

Sonoma Partners posted on CRM 2016 Excel Templates. This explains what Excel templates are and how you can set them up.

That's all for this week. Have a great day! 

Friday, March 25, 2016

March 25 Blog Review

Let's jump right in to all the exciting CRM posts this week.

This is the time of year that I start to daydream about summer vacation plans. If you are in the same boat check out this post from Microsoft about how Royal Caribbean Navigates the High Seas of Customer Experience.

CRM Tip of the Day shared a quick tip on Where to Find Quick Campaigns in Advanced Find. They also talked about Birthday Reminders. This deals with some questions around why users could be getting reminders in Outlook for upcoming birthdays for their contacts in CRM.

CRM in the Field announced "Workflows and Dialogs" Upper Limit has been removed. Now there is no limit in CRM Online to the number of processes you can create!

Finally, PowerObjects shared, What is Microsoft Sway and How Can I Use it? This gives information about the new presentation tool, Sway and some of their favorite features. Something to keep in mind the next time you have to present.

That's all for today. Have a great day!

Friday, March 18, 2016

March 18 Blog Review

Welcome to this week's blog review. We are going to jump right in to avoid rambling about the pitiful mess my March Maddness bracket has become.

Microsoft announced a new Voice of the Customer Survey feature. Check out this article for more information about the information available and answers to your most common questions.

PowerObjects posted about How to Use Dependent Lookups for Dynamics CRM 2013/2015/2016 Like a Pro. This walks through how to use two related entities and business rules to create dependent lists without code.

CRM Tip of the day shared the Illustrated Tipster Guide to CRM Forms. They feature a great chart that describes the use of each type of form and the features it supports.

Salentica blogged about CRM Full-Text Search and the Mysterious Case of Mr. Way. This describes an interesting issue where certain records were not pulling up when full text searching was in use.

Sonoma Partners asked How well do you Delegate? They provide a solution for when one user want's to delegate visibility of certain records to another user.

That's all for today folks. Have a great weekend!