Sonoma Partners Microsoft CRM and Salesforce Blog

Form Script Wars: Revenge of the Events

Today's blog post was written by William Dibbern, Principal Developer at Sonoma Partners.

A long time ago, in a Dynamics 365 environment not that far away...

An odd bug in a client's pre-existing codebase popped up recently where we found that the same event handler was firing twice occasionally. An easy to digest scenario to replicate this would be if every time the phone number field changed, a field containing a phone number revision count was incremented by one. What would happen in this scenario is that after a record had been created, if you then changed the phone number field, the revision field would increment by two instead of one.

Dibbs 1a

What was the underlying issue? The event handler was firing twice because it was actually being attached twice, as the handler was being attached to the field in question through code, in the form load event handler.

Dibbs 1

You see, the form load event can indeed fire multiple times in the lifecycle of a form, but only twice at a maximum, and only in one situation. When you open a create form, the form load event fires. Then, when you save the record and it switches to an update form, the form load event fires again. This is the only time this happens. Therefore, if you were to open an existing record, this issue would not be reproducible.

What all of this means is that you can't count on the form load event to fire only once, but you also can't lean on it to fire every time the user saves. We therefore must account for this inconsistency and leverage other methodologies if we need to do something every time the user saves.

Don't worry young Padawan, we can fix this!

Dibbs 2a

You bet Ani! Just keep reading...

I will teach you everything I know, and you will become a far greater developer than I could ever hope to be...

So how do we solve this conundrum?

Dibbs 2

One possible solution you might think would to use the event registration dialog in the form customizations. In other words, use the Dynamics UI to register the events. While this is not an altogether horrible idea, we would not recommend this approach. Why is that, you ask? There are many benefits to registering your events in code, such as:

  1. You can see all of your events that are registered on that form, all in one place (you don't need to go to the Dynamics environment to see what's attached to what).
  2. You can leverage source control to more easily see how event registrations changed over the lifespan of the codebase.
  3. Registering your events in code should feel natural, when developing using JavaScript outside of Dynamics, we attach our events in code. We almost never attach them in the presentation (HTML) layer. Consistency, woo!

Given all of those benefits, we need to look for another approach. Good thing there is another! Let's instead use a variable to track when the events have been attached. So, the process would be to check a variable like isFormLoaded before attaching events, and if it's false, go ahead and attach your events but then be sure to set isFormLoaded = true when you're done.

Dibbs 2b

Yep, it's that simple. Just remember to scope your variables appropriately so as to not leak that new isFormLoaded variable of yours to the global scope so that we can dodge another potential bug!

Dibbs 3

Take this information and use it wisely, young Padawan. With this knowledge, prevent many bugs, we shall.

4dibbs 3

Topics: Microsoft Dynamics 365

Taking Your Process from Demo to Reality

Today's blog post was written by Kristie Reid, VP of Consulting at Sonoma Partners.

If you have seen a demo of the leading CRM systems lately, no doubt you have seen some type of visualization of a sales or service process. This feature is usually a hit with any audience. But if you’re the administrator who has to implement what the business is getting so excited about, you may be cringing and asking how you are ever going to implement what you are seeing.  I can assure you, the technical implementation of a process flow is not that hard. But gathering consensus for what that flow should be and taking the business requirements and tactically implementing them can prove to be a bit daunting. 

Step 1: Defining the Process Stages

If your company is like many that we work with, they have many teams who serve similar functions (for example, multiple sales regions). Those teams often think that they work very differently and cannot agree on a single process. That may be true. However, what we often find is that the foundation of what those various teams do to accomplish their goal is the same. But how do you get them to see that?

One approach that we use to find that common ground is the facilitation of Brown Paper Sessions. It’s exactly as it sounds. We throw large pieces of brown packaging paper on the wall and step through the various stages that the team walks through to achieve their goal using post-it notes. I know, it sounds silly for a technology company to be using paper to facilitate complex discussions with large groups of people but here are the benefits:

  • Brown paper and post-its are not intimidating (how many people use Visio on a daily basis?).
  • Post-its are not permanent. This allows the discussion to flow naturally and unstructured if the group you are working with does not think linearly. Post-its can be moved around as other thoughts come out.
  • Post-its are interactive. Post-it notes can be written and moved around by audience participators, not just the facilitator.
  • Brown paper makes for fantastic art! Okay, not really, but it can stay up and instigate conversation after the facilitation session is over (just remember to tape the post-its so that they don’t fall off).
  • Finally, the other option, typically Visio, is painful to watch someone manipulate in real time.

Krisite blog image 1

Step 2: Validation and Buy In

Once you have the first process on paper (yes, brown paper), bring in other teams to validate that the process works for their groups as well. Have them work from the same paper that is still on the wall. We usually find that this is where the magic happens. Often the subsequent teams to review the process once defined find that there aren’t as many differences as they originally believed. You may find that there are times where it does not, and that’s okay. Add their variances directly to the paper on the wall.

Repeat this process with all groups who need to buy in to what will be implemented in a system.

Kristie blog image 2

Step 3: Additional Details

As you are defining the main process, add the additional information that would be needed. For example, in Stage 1, what data must be collected? In Stage 3, what notifications must be sent to communicate the progress of the process? What data do users or managers need about that process?

Kristie blog image 3

Step 4: Document, Document, Document

Okay, now you can use Visio! Time to take the brown paper off the wall and put it into electronic format (don’t forget to take pictures before removing the paper). Be sure to document key decisions made and to provide more details around the meaning of each step. Let’s be honest, even the people who were in the room making these decisions will forget what was said in a few months.

Step 5: Implementation

There is a lot of technical information available as to how to implement processes in a CRM application. Again, people reviewing CRM systems love the visual process flows available. However, not all process can be handled in chevrons. Make sure to follow best practices here. Also, as part of this implementation, don’t overlook the power of reporting that is available to show the effectiveness of the process being put in place.

Step 6: Leadership, Communication, and Training

Adding a process to any system without proper sponsorship, communication of the what’s and whys, and training on how to use the process will not have the results that you’re hoping for. We cannot stress enough how important the consideration of Change Management is. I also always recommend that a CRM system not be the reason new processes are put into place. That gives your users one more thing to blame on CRM. The reality should be that this process change is being put in place, here is why. CRM is just a tool to support that process change!

If you need help with business process documentation, redesign, or implementation, give us a call!

Topics: CRM Best Practices

Dynamics 365 Demo Video: Outlook Add-In for Phone and Desktop

Today's blog post and video were created by Bryson Engelen, Sales Engineer at Sonoma Partners.

The Dynamics 365 Outlook Add-in for Phone & Desktop allows you to create new records from your email inbox (Lead, Account, Contact, Opportunity), track emails against existing records (including pinned and recently viewed), and see high level details about each recipient and the D365 record the email is tracked against.  In addition, replies can include information coming from D365 like email templates, Sales Literature, and KB Articles and they can be followed so the opens, replies, clicked links, and opened attachments are tracked.  Many of the same capabilities are available for your calendar, and all of this is available in the web and desktop versions of Outlook and in the iOS version of the Outlook mobile app.

To learn more, watch the video below:

Topics: Microsoft Dynamics 365

New Salesforce Lightning Requirements for ISV's

Unless you've been living under a rock, you know that Salesforce launched a new user interface and design system called Lightning at Dreamforce 2015. As an ISV, you might be thinking "yeah I know we need to eventually update our app to Lightning, but we can wait a little longer before taking action". Well Salesforce recently shared some new information about Lightning adoption and NEW ISV requirements that should make you rethink (and accelerate) your Lightning timeline!

Lightning Adoption

Salesforce conducted more 50,000+ org Lightning readiness assessments so far, and customers appear to be accelerating their use of Lightning. 



New Lightning Requirements for ISV's

Salesforce took advantage of customer momentum behind Lightning to put NEW requirements on ISV's in the Salesforce ecosystem:

  • All new apps that enter into an agreement on or after March 1, 2017 must be Lightning Ready. Lightning Readiness will be a prerequisite for entering the Security Review process.

  • Salesforce stated a goal to make all existing apps Lightning Ready by February 2018You don't want your ISV app to block your customers from switching to Lightning...Salesforce would NOT like that.

  • Starting in the Summer '17 release, Salesforce admins will be able to (with a new user permission) block users from manually switching back to the Salesforce Classic interface.

So if your app isn't already Lightning is the time to start taking action to update your app! What does it mean for your app to be Lightning Ready? Salesforce makes the requirements simple to understand - 100% of your end-user use cases must work as expected in Lightning Experience. For example, for a document generation solution the app must work for all users who need to generate documents. To help ease your transition efforts, administrator use cases (such as app setup and configuration) do NOT need to run in Lightning Experience to be considered Lightning Ready...although Salesforce strongly recommends that they do so.

If you're an ISV that's been putting off your Lightning readiness, now is the time for you to take action. As a Salesforce PDO (Product Development Outsourcer), Sonoma Partners can help you get your app Lightning ready as quickly as possible...and our ISV best practices will make sure that you save time and money getting to market. Please contact us to setup a time to talk about getting your app Lightning ready!



Topics: Salesforce


Today's blog post was written by Angel Shishkov, Principal Developer at Sonoma Partners.

OCR (or Optical Character Recognition) technology has been quietly getting better over the years, while everyone has been distracted with voice recognition (Hey Cortana! Cortana? Hey? Oh, fine, I’ll just click it). Generic solutions exist that can do character recognition and specialized solutions exist for more specific tasks, like reading receipts. CRM can also benefit from OCR, especially for getting that digitized paper data into structured CRM entities.

I will demonstrate how OCR can be used in CRM by setting up a simple integration between CRM and an OCR API.


A theoretical customer uses paper forms to send in requisition orders for equipment. The forms are very basic and contain the equipment serial number or SKU, the amount to be requisitioned and the name of the person requesting the equipment. The equipment exists in CRM as native Products and the people exist as native Contacts. A custom entity called Requisition was created to store the SKU, Amount and Requisition By fields for each request.

The current requisition process works as follows:

  1. Requisition form is filled in and printed/scanned.
  2. Requisition form is attached to an email and sent to a CRM mailbox.
  3. A CRM user receives the email and opens the attachment.
  4. A CRM user manually creates a new Requisition record and enters the information from the attachment.


We will build a custom integration with an OCR service called OCR.Space. This is a web service API, making it ideal for use from within CRM Online, and it has a free pricing tier so we can experiment with it without obligation to buy.

We will have a plugin that fires on new Emails. It will use the OCR.Space service to read the requisition form attachment and then automatically create a new Requisition record in CRM with those values.

The new requisition process will work as follows:

  1. Requisition form is filled in and printed/scanned.
  2. Requisition form is attached to an email and sent to a CRM mailbox.
  3. Email arrives into CRM and fires a custom plugin.
  4. Custom plugin reads the email attachment and sends it to the OCR service to be interpreted.
  5. Custom plugin reads the values returned from OCR and creates a new Requisition record with those values.

Everything on the CRM side will be automated, with no manual work.


The custom plugin will fire on Email create, check if the email was a requisition, based on the address it was sent to, or the subject line, or something else, and read the attachment from the email. Attachments are retrieved from CRM as Base64 encoded strings, which is perfect for calling the OCR.Space service with.

The OCR.Space service accepts an HTTP “POST” submission with an “apikey” parameter in the header specifying the API key we are provided when we registered. The image file to read is sent through a “base64Image” parameter in the message content.

The service returns a JSON object that describes the text which was read from the image. The service documentation for the request and response parameters can be found here:

Here is an example (oversimplified) Requisition Form that would be attached to an incoming email.

Angel 1

First, we will create some classes to hold the deserialized JSON response. They are decorated with [DataContract] and [DataMember] so we can deserialize the JSON string into them using a DataContractJsonSerializer. 

Next, we set up the base plugin that will read the email attachment. That is standard CRM work, so I will omit it here. Finally, we create a method to take the email attachment as a Base64 string, send it to OCR and create a new Requisition record from the results.

Here is what the code does:

  • Start with the URL to the OCR service and the API key. These can come from the plugin configuration or a config entity.
  • Construct the data payload for the POST request by adding the “based64Image” parameter and the “apikey” in the header.
  • Submit the request and retrieve the response from the OCR service.
  • Deserialize the response JSON string using a DataContractJsonSerializer into the classes we created earlier.
  • Read the text returned by OCR and split it up into lines. Find the lines that start with “Product”, “Amount” and “Requisition By” and parse out the values following the line labels.
  • Fill in each parsed value into the appropriate attribute on the new Requisition record.
  • Call the OrgService to create the new Requisition record.


Automating processes in CRM through OCR can save a lot of repetitive, manual work that is prone to data entry errors. While OCR is not perfect and will make the occasional mistake, it tends to be very good when the input image is clean, in a standard format and uses a consistent text font. If you are looking to build an OCR integration for your CRM system and need some help, give us a call. Thanks for reading!

Topics: Microsoft Dynamics 365

Effective Project Sponsorship: The Key to Boosting CRM End-User Adoption

Today's blog post was written by Scott Hinton, Principal Consultant at Sonoma Partners.

I'll never forget the project sponsor I worked with on an implementation a few years ago. I had read the research, but experiencing a great sponsor firsthand made all the difference. The importance of effective project sponsorship is no mystery to change management practitioners. The difference between an engaged sponsor and one who is going through the motions is night and day and can directly impact the level of CRM adoption speed and ultimate utilization. This article highlights my experience working with an exceptional sponsor from "ACME" and includes seven practical tips outlined by phase to increase sponsor effectiveness and overall CRM adoption levels.

Seven Sponsorship Tips

During the change management Prepare Phase, there are several key sponsor-related activities. These include assessing project sponsorship, sponsor education, building a sponsor roadmap, and creating a change coalition.

1. Assess project sponsorship

The change practitioner assesses the readiness of the sponsor and project governance first. This uncovers sponsor capabilities, expectations, and the organization's legacy of project sponsorship effectiveness. Assessing governance is important to understand where the project sponsor role fits in the organization and the project governance maturity. This information allows the change practitioner to match the sponsorship approach to the organization and CRM project.

ACME's Sponsor Mary collaborated on developing and socializing a project governance organization chart. This gave committee members greater clarity on the various players and committee functions and demonstrated sponsor commitment.

Scott hinton 1

2. Educate the sponsor

Many sponsors don’t fully understand their role or appreciate the impact they have on project success. The project manager, change lead, and other key project team members are certainly change success enablers, but effective sponsorship is paramount to meeting project objectives. Sponsor education early in the project is vital. This allows the change lead to play a trusted advisor role and build rapport with the sponsor. Trust is key to discussing those shadow issues below the surface that could inhibit project success.

Mary was receptive to learning sponsor effectiveness fundamentals and encouraged performance feedback and ongoing coaching. 

3. Set clear expectations

The change practitioner and sponsor need to be aligned on role expectations and priorities. The sponsor roles and responsibilities also need to be formalized in the organization. In many cases, this is accomplished through an executive sponsor email introduction of the sponsor to demonstrate senior leadership commitment and give the project and sponsor greater credibility. Creating a sponsor roadmap is also important at this stage. It outlines expectations for the sponsor, change management checkpoints and meetings with the steering committee and key stakeholders. Meetings with business leaders improves awareness, alignment, and project engagement.

Mary was always available for weekly checkpoints and followed up with task owners. She also dedicated resources to the project in the form of a core and extended project team.

4. Facilitate change coalition building

Successful change management does not happen in a vacuum. The change practitioner can architect the change but ownership must be spread across the organization through a coalition comprised of "change agents" from all levels within the organization. The coalition, commonly called a "Change Network," raises the visibility of anticipated changes, builds support ahead of the actual change, and provides end user feedback to the sponsors and project team. According to Kotter, the coalition must have the right composition, level of trust, and a shared objective. They state: "In our studies, when we have found people making large scale changes very successfully, we’ve always found what I call a 'guiding coalition' driving the process." The sponsor is responsible for ensuring the coalition is effectively supporting the change.

Mary headed the governance committees but she shared change leadership responsibility throughout the coalition by keeping members abreast and engaged and seeking feedback. 

During the Manage Phase, sponsor coaching and active and visible sponsorship are crucial. 

5. Ensure active and visible project sponsorship

Sponsor engagement directly impacts project success and the most effective sponsors are the face of the change throughout all project phases. According to Prosci, "A positive leader who actively guides the organization through change and participates visibly throughout the transition is the greatest predictor of success." Active participation includes communicating directly and candidly to all impacted users and avoiding delegation of sponsor duties.

6. Coach on proactive resistance management

A degree of project change resistance is inevitable. The level is reduced when the sponsor understands and proactively manages resistance. This includes addressing resistance head-on and establishing feedback loops to uncover root causes. Resistance occurs at all levels of the organization and managing leader resistance effectively is critical as they set the tone for adoption and lead by example through their communications and behaviors.

As the project enters the final or Reinforce Phase of change management, the focus is on recognizing success, transitioning the responsibility of change management and ensuring performance can be sustained.

7. Recognize Behavior Changes

Once the project launches, effective sponsors model desired behaviors and ensure the organization is recognizing and rewarding user behavior changes to sustain and build performance improvements. It's also important for the change lead to fully transfer change management responsibilities to the sponsor or another designated individual. Mary was in attendance at project launch events and sustained positive momentum by sending companywide and project team emails highlighting success stories. In addition, she maintained the governance committee post-launch to review results and identify ongoing improvement opportunities.

It was gratifying to learn that ACME had a very successful launch. There is little doubt that Mary's effective project sponsorship was a major contributor.

Topics: CRM Best Practices

Dreamforce 2017 Security Review Deadline for ISV Apps

Dreamforce_15_cloud_logotype_RGBEveryone knows that Dreamforce reigns as THE most important cloud computing event of the year, and Dreamforce 2017 will take place November 6 to 9 in San Francisco. As an ISV in the Salesforce ecosystem, Dreamforce obviously marks a key milestone event for your business...anyone who is anyone in the Salesforce world invests a ton of time, energy and money into the event.

When we speak with ISV's about Dreamforce, they frequently express a desire to make sure that their latest and greatest app goes live in the AppExchange before Dreamforce starts. With thousands of ISV's all rushing to go live for Dreamforce, this demand creates a significant backlog in the Salesforce security review process...which requires manual/human intervention.

With this ISV crush coming, Salesforce publishes key dates and guidelines for ISV's who want to have their app live by Dreamforce 2017:

  • Submitting an app by the deadline (before August 25, 2017) means a partner will receive one test by Dreamforce. Retests before Dreamforce are not guaranteed. It is a best practice to submit your complete offering as early as possible to ensure that there is time for any unexpected delays like a failure.

  • Offerings in the queue must have everything in place, including a complete set of fully configured test environments, clean security reports, and other required documentation and collateral. Offerings in the queue with incomplete test collateral submitted after the published deadline are not guaranteed a Security Review before Dreamforce.

  • Offerings should not be submitted before they are complete. Unfinished offerings will be rejected.

Salesforce_appexchangeAssuming you must have a totally 100% complete solution completed before August 25th to hit the Dreamforce deadline, that means ISV's have about three months from today to build out their solution. Whether you're upgrading your app to be Lightning Ready, or if you're building a brand new app...three months isn't a lot of time to hit the Dreamforce security review deadline

Most ISV's find that working with a Salesforce PDO (Product Development Outsourcer) like Sonoma Partners helps:

  • Drastically reduce the product development timeline by leveraging our best practices and pre-built IP
  • Significantly increases the chance your app will pass the Salesforce security review on your first submission

So if you're an ISV already in the Salesforce ecosystem (or considering joining the ecosystem), please contact us and we can help make sure that your app is live and ready in the Salesforce AppExchange when Dreamforce hits this November!



Topics: Salesforce

CRM Platform Selection Tip: Don't Count the Features

Today's blog post was written by Kayla Silverstein, Marketing Specialist at Sonoma Partners.

We’ve all evaluated products based on features. You’re on Amazon, trying to decide whether 3G or 4G makes more sense for your Kindle or you’re on a hotel website, deciding whether it’s more important to have a free breakfast buffet or to be walking distance from your conference venue. We  have constant access to information that allows us as consumers to evaluate products and make informed decisions on our purchases. When it comes to making your CRM platform selection, we’re here to tell you that the features listed “on-the-box” should be largely overlooked.


We see prospects make this mistake over-and-over again, comparing and selecting their platform based on an itemized list of features. Perhaps advertised as “latest and greatest,” a CRM feature list can include any combination of the following: mobility, multi-channel support, campaign management, remote access, ease of integration, integrated analytics, and marketing automation. If you were to simply search for a “CRM Features Checklist,” you could easily compile a list of dozens of “must-have” capabilities for your future platform.

We strongly recommend you evaluate differently and throw the features – for the most part – to the wind.

Here’s why:

They update rapidly.

Organizations typically adopt CRM platforms for at least 3 to 4 years before considering a switch or upgrade. Every year, Salesforce and Microsoft push hundreds of upgrades. Salesforce’s big updates happen three times a year, one in spring, one in summer, and one in the winter while Microsoft will push several updates throughout the year. The platform you purchase today could evolve massively in a single year…so why get invested in the platform’s specific features as they stand today?

The fundamentals are essentially the same.

At their core, most enterprise CRM platforms are largely the same. More important than anything is to assess whether these platforms are meeting your team’s requirements for your CRM program as a whole. Is it providing your sales/marketing teams with the ability to better target customers? Does it allow you to optimize information shared across departments? Does your tool provide analytics to segment, analyze, and run reports on your business? If so, you’re sure on the right track. Access to singular features that differ between platforms will not be the  be-all-end-all of your implementation.

So, how do you decide?

There are a lot of other factors that go into making your decision; so many, in fact, we wrote an eBook on it. To get you started, here are just a few of what we consider the most important CRM evaluation criteria:

Make sure you understand each vendor’s plan and strategy.

Evaluate the vendor’s history as a company and the overall direction of their software. Inquire into their management team. What are they doing to stay innovative? Any acquisitions on the horizon? These are all key indicators as to the quality of their platform and the ability for it to meet the needs of your organization as you implement your project.

Evaluate which platform offers the greatest possibility for user adoption.

So many CRM programs fail due to the lack of adoption by its users. Don’t let this be you! Examine which platform your users might be more familiar with. Maybe your organization has previously invested in Microsoft products before, and there is already a corporate bias in favor of their systems. In this case, Dynamics might make more sense over Salesforce. These can all be critical things to evaluate to inform your investment decision.

Ensure you have the right skills on your staff.

Different platforms require different skills. Dynamics 365 requires different technical experience than Salesforce. Which is your team best suited for? What internal support would you be able to provide your team? Both Dynamics and Salesforce offer a variety of resources to support adopters – which vendor’s materials will identify most with your organization?

At the end of the day, choosing the right CRM platform for your organization can be a confusing decision. It’s very easy to feel a bit information-overloaded, but trust in the process and stay informed on how you should be evaluating vendors, and you will find success. Want some more good news? If you’re going with a name brand platform such as Salesforce or Dynamics 365, both are built with advanced capabilities to allow for customizations to fit the specific needs of your organization.

And as always, if you would like a second opinion in making your CRM platform selection, let us know. We’re more than happy to help.

Topics: CRM Best Practices

Dynamics 365 Demo Video: Office Groups

Today's blog post and video were created by Bryson Engelen, Sales Engineer at Sonoma Partners.

Whether you need to collaborate with colleagues who aren’t on Dynamics 365 or you need to collaborate with customers who aren’t on Office 365, the Office Groups integration in the context of Dynamics 365 makes things easy. It provides out-of-the-box integration with Office 365 Groups for agenda, conversation, OneNote, documents, and member management. While many of the feature sets of Office Groups in relation to Dynamics have been around for a while, in this release there were several powerful enhancements. First was the ability to add external members to a group who are not tied to your Office 365 instance and the ability to show their presence. There is also flexibility on associating or disassociating an existing Office 365 group with an entity record. Finally, in this release, when it comes to PSA, when you add a project team member, they are automatically added as a member of the Office 365 Group. Those are just some of the new features around the integration. To see it in action and get the perspective of both a Dynamics 365 and external group member, check out this video. 

Topics: Microsoft Dynamics 365

Dynamics 365 - Learning Path Authoring Guided Tasks

In a previous blog (Learning Path Authoring Basics), we introduced Learning Path Authoring and the Content Library.  As stated previously, Guided Tasks are a step-by-step guide driving users through common or new tasks.  They’re also a great way to ensure users follow a consistent process to completing tasks throughout your organization, and work well as supplemental training after an official training session in which you run new users through your CRM deployment.

Guided tasks can include links, videos, and other content in your steps (or bubbles) to help your users become familiar with your CRM deployment.

There are two main steps for creating a Guided Task:

  1. Define how the Guided Task should be triggered and assigning roles to which the task applies
  2. Use the visual Flow Editor to drag and drop steps/bubbles that the users will see as they work their way through the task.

Define How the Guided Task is Triggered

You first need to go to the page in Dynamics 365 where you want your Guided Task to appear.  This is a small but very important step you must take BEFORE going to the content library to create your Guided Task.

For example, I wanted to create a Guided Task about how to create a new Contact.  Therefore, I had to navigate in Dynamics 365 to the Contacts main grid, and then went to Settings –> Training –> Content Library (or display the Sidebar and click on the Content Library icon from the Sidebar that pops out).

After the Content Library loads, click on image_thumb1 to open the dialog to start entering in your Guided Task details


The following pieces of information should be collected as you start creating your Guided Task:

  • Disable this guided task:  If checked, this Guided Task will not appear to users.
  • Make this an error guided task:   If checked, this Guided Task will only appear to users if there is an error with other Guided Tasks associated with the page from being loaded (e.g., lack of security permissions for the logged in user).
  • Name:  This is the name for the Guided Task.
  • ClientWeb client, Mobile apps, or Interactive Service Hub are options you’ll see based on whether you’re connected to the mobile app interface or Interactive Service Hub when you’re creating the Guided Task.  Remember, it mattered where you came from before you clicked Content Library before you clicked image_thumb10 as that’s where the task will appear.
  • Form factor:  This depends on the Client you selected.  Web will allow you to select Desktop or Tablet.  Mobile apps will let you select Tablet.  And Interactive Service Hub will let you select Desktop.
  • Guided task opens when:  Select whether you want the Guided Task to appear when a Link is Clicked on a Sidebar, or when the Page Loads.
  • Lifecycle stage:  This is an internal use only setting and can be ignored.
  • Dynamics 365 security role:  Select the security role(s) that you want the Guided Task to be displayed for.  If a user is assigned to more than one security role, the Guided Task will appear only for the role with the highest precedence (as described in our previous blog Learning Path Authoring Basics).
  • Status:  The status which remains at Draft until you publish the Guided Task.
  • Advanced Options:  Note: These only appear after you save the Guided Task:
    • Make this error guided task:  This was described above.
    • Supported Languages:  Languages that this Guided Task supports, as well as used for import and export.
    • Author:  The creator/author of the Guided Task.
    • Tags:  Tags can be added to assist with searching for content in the Content Library as well as categorizing your content.
    • App Version:  The Dynamics 365 application version associated with the content.
    • Control Version:  Sets the version of the content.
    • Authoring Repository:  The Authoring Group (organization) for the content.
    • Publishing Environments:  The publishing group(s) (organizations) for the content.

When you’ve completed defining the how the Guided Task is triggered and details of the Guided Task, click on Save to move onto the flow editor.

Flow Editor

After you click on Save on your Guided Task, you’ll automatically be taken to the Flow Editor. 


You can add a Title to your Guided Task which will be displayed to the end users as they navigate through the Guided Task.

You can also select whether to show fixed ID controls only.  Controls with a fixed ID are outlined in green, and those without are outlined in blue when you drag the tile to pin it to the UI.  Pinning a step to a control without a fixed ID could mean that your Guided Task could break in future Dynamics 365 updates.  However, that will not be the case if you pin to fixed ID controls.

Click on Add New Step to add a new step, and select from one of the following options:

  • Step with Next button:  A step with a Next button allowing navigation to the next step.  The Next button will not display if this is the last step.
  • Step with User action:  Instead of a Next button to move to the next step, the user must click a UI element to continue to the next step.
  • User action with Next button:  This step has a Next button, but clicking the Next button simulates the effect as clicking the UI element to which the step is pinned.  This step can be a little confusing to users, and therefore I’d caution against using this often.
  • Learning Step:  This step can only be used at the end of a Guided Task flow.  It can be used to link to a Learning Path sidebar at the completion of a Guided Task.

Now to create a Guided Task that walks users through a series of steps to create a new Contact.  The first step is going to be getting the user to click on the New button.  I add a new “Step with User action” step, and drag it to the New button.





I’ll pause here for a second to discuss the 5 buttons that appear on the right of the bubble/step.  From top to bottom those buttons are:

  • Move:  Clicking this will allow you to drag your step to a new UI element.  Not, however, that when I did this, the step name and step description I had typed were cleared out and I had to start over.
  • Content Type:  This allows you to change this from a Text step, to a Video step.
  • Placement:  You can specify where your bubble appears on the UI element control that you pinned your step to.
  • Copy:  Creates a copy of the current step pinned to the same UI element control with the same content, and adds it as a step directly below the current step in the Guided Task flow.
  • Save:  Saves your step.

After adding a few more steps, my Guided Task now looks like the following which walks a user through creation of a contact.


At any point when you’re editing your Guided Task, you can click the Preview button which is at the bottom left of the Guided Task side bar that pops open from the left.

When in Preview mode, you can click on Check In to make your Guided Task visible to all Learning Path Authors, and then click on Publish so that the Guided Task changes can be visible to end users.



In addition to checking in and publishing from a single Guided Task, you can navigate to the Content Library and select one or many pieces of content and then select Manage –> Check In, and then Publish –> Publish.

After checking in and publishing the New Contact Creation Guided Task, it looks like the following when a user navigates to the Contact page.






With this great feature allowing users to add customized help throughout the application, there are still some limitations / considerations to be aware of.

  • Learning Path is not supported in the native Dynamics 365 mobile app for phones.
  • When designing a Guided Task for the Web Client, The Tablet form factor refers to running the Guided Task in a web browser on the tablet (not the native tablet mobile app).
  • Creation of Guided Tasks is still finicky with where you are in it, where you click when you click certain buttons.
  • When I was using Internet Explorer 11, the Learning Path Authoring experience wasn’t ideal.  It seemed to work better with Chrome.  For example, when I clicked on a Guided Task bubble/step to edit it, the main Guided Task pane disappeared, and the bubble didn’t appear for me to edit. 
  • When entering in your steps (after dragging onto the UI) for Guided Tasks, remember to click the bottom Save icon to save the title / description / video you enter into the step.  You won’t get a warning if you don’t and your edits will be lost.
  • Before you Preview your Guided Task, make sure you navigate to the page that the task should fire from (e.g., the main Contact List view in my example above).
  • Moving the steps around within a Guided Task did not seem to work (to reorder the steps) so make sure you get your step order mapped out first before creating your Guided Task in CRM.

Final Thoughts

Learning Path has great potential, and the addition of the ability to create your own content makes this feature much more valuable.  I can see the need to create custom content for most of our customer deploys.

For more information on this topic, please see the other posts we’ve made about Learning Path:

Topics: Microsoft Dynamics 365 Microsoft Dynamics CRM Microsoft Dynamics CRM Online