Sonoma Partners Microsoft CRM and Salesforce Blog

Dynamics 365 – Updates to Business Rules and Actions

Continuing with our posts regarding the recent release of Dynamics 365, next up are the changes Microsoft has added to Business Rules  Workflow Actions.  Additionally, head over to the CRM Roadmap site, or the CRM What’s New site to see more of the features that have recently gone live. 

Business Rules

Like Business Process Flows, Business Rule were introduced in CRM 2013, and have received some updates in the Dynamics 365 release.  First and foremost is the fact that Business Rules will utilize the new Visual Process Designer that was introduced with Dynamics 365.

For each component, as you’re building out the rule and adding in additional conditions and actions, you’ll see a text definition representation of your logic.  As your Business Rule is being built out, you can see the logic grow over time.

Also added with Dynamics 365, is a new “Show Recommendation” Action.  With this action, an icon will be added next to a field that will provide some information and show a message that the user can take action upon.  During definition of the Show Recommendation action, you provide the message to display along with the action that will occur if the user clicks on “Accept” on the recommendation. 

For example, if you have an Opportunity where the customer indicated the purchase timeframe is immediate, and their budget amount is > $50,000, then you may want to recommend having the salesperson update the Rating to Hot.

See below for how the Business Rules look in the new Visual Process Designer with the Recommendation action, and the text based representation of the rules.


When on an Opportunity that meets the criteria of the Business Rule conditions, the recommendation will be displayed and if the user clicks on Apply, then the Action defined in the Show Recommendation component will be executed.  In this case, we are setting Rating to Hot.


Additional Actions

Microsoft also added some new out of the box Actions that can be used in Processes (Workflows, Dialogs, and Actions). 

  • Add (Case) to Queue
  • Add user to Record Team
  • Apply Routing Rule (to Case)
  • Calculate Actual Value (of Opportunity)
  • Close Opportunity
  • Get Quote Products from Opportunity
  • Get Sales Order Products from Opportunity
  • Lock Invoice Pricing
  • Lock Sales Order Pricing
  • Qualify Lead
  • Remove User from Record Team
  • Resolve Incident
  • Resolve Quote
  • Revise Quote
  • Unlock Invoice Pricing
  • Unlock Sales Order Pricing

The following two Workflow Actions were existed before the release of Dynamics 365:

  • Set Process
  • Set Word Template


While Microsoft hasn’t included workflows in the new Visual Process Designer (yet), these new actions will go a long way to allowing business analysts to extend the system without code.  The stage is also set for Microsoft to extend the functionality of the Visual Process Designer in an upcoming release to include the ability to more visually create and edit workflows.

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

Introducing Multi-Select for Dynamics 365 for Sales

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

One request that we receive a lot is to allow users the ability to select multiple values from a predefined list. Say your organization tracks contacts, and you would like to keep track of the interests of those contacts.

Natively, one way to accomplish this in Dynamics 365 for Sales, without custom code, is to create a many-to-many relationship with a custom "Interests" entity. This is all fine until you ask a user to enter in this data repeatedly and quickly, and there the user experience falls apart. A user must remember what all the predefined interests are in order to use the autocomplete functionality, or they must interact with a lookup dialog in order to search through the available options. This either means your user is enduring a heavy cognitive load or a bunch of clicks. Not as good of an experience as it could be.

To solve for this gap, we crafted a managed solution that recreates the most common user experiences for multi-select controls from across the web, with the goal of making the user experience a little bit easier.

Let's take a walk through some of the pre-built custom user interface options we have inside this new solution.


Using the Checklist control, users can select the records they desire simply by clicking on a checkbox. No typing, only one click needed. If desired however, users are also able to search through options using the provided search box and filter down to see only what has been selected using the All and Selected view toggles.

Checklist Control Example

Use this control when: saving space on a form is key; you have a smaller data set; users enter and edit data more often than they are referencing it.


Using the Listbox control, users can click Edit which will bring up a dialog that presents them with all of the available options. Within this dialog, the user can select multiple options by holding the [shift] key or by searching for a specific value. Once an option or multiple options are chosen, they can be moved to the Selected column by pressing the >> button.

Listbox Control Example

Use this control when: saving space on a form is key; you have a larger data set; users reference the data in question more often then they enter or modify it.

List View

This control is very similar to the Checklist control, but the formatting provides for a lot more information about each option to be displayed to the user. Using the List View control, users can select the options they desire by clicking on the checkbox next to the description and are able to search for specific items. No dialog to get in the way, so we keep the click count low. Users are also able to click on Selected to view only the selected items.

List View Control Example

Use this control when: space savings aren't necessary; you'd like to use a custom item template to display more information about an option; you have a smaller data set; users are entering or modifying data more than they are referencing it.


This version of the multi-select is based on a popular library called Selectize, thus the super clever name. Using the Selectize control, users can click into the field and select the records they desire by clicking on the option's description or by using the arrows and [enter] keys. Once items have been selected, they can view them within the field and remove them by clicking the small x or deleting them with their keyboard.

Selectize Control Example

Use this control when: saving space on a form is key; you have a smaller data set; users already know the data set they're selecting from.

Installation and Configuration

The multi-select solution is available as a Dynamics CRM 2015 managed solution which you can readily download from our website here. This same solution will work in Dynamics CRM 2016 and Dynamics 365 for Sales. Once downloaded and imported into your environment, you'll have some configuration to do depending on how your data is set up. We would recommend that you have prior knowledge of Dynamics 365 for Sales customizations before diving right in, as there is some limited technical knowledge required to configure this solution.

The mulit-select solution supports custom item templates (HTML) and many other options, but for the basics, you'll need to at least pick a method by which data is read from and stored in Dynamics 365 for Sales. The multi-select solution supports the following common backing data structures, noting there are pros and cons to each which must be evaluated on a case-by-case basis:

  1. Display data from a global option set and store selected values in text fields. Using this method, the options come from the global option set, and one or (optionally) two text fields are used to store the selected values.

    Pros: Storing data this way makes it a bit easier to search through when working with quick find views or advanced find.

    Cons: If you tell any database guru you're storing a list of values in a single column, they'll probably freak, and they wouldn't be entirely off-base to do so. Storing data this way can make things harder down the road like reporting, migrations, etc.

  2. Display and store data from a custom N:N relationship. Using this method, a custom intersect entity is created between two entities (three total entities involved), and these custom intersect records are created when options are selected.

    Pros: Your resident database guru won't argue as much with you on this route, you have the option to store more data on the intersect record if desired, you can control the state of your intersect records and capture who created/modified them and when.

    Cons: Searching through your data using advanced find and quick views becomes more difficult.

  3. Display and store data from a native N:N relationship. Using this method, records are associated and disassociated according to what is selected.

    Pros: Again your resident database guru won't argue with you as much, and you get to skip creating a custom intersect entity.

    Cons: Similar to the second option, searching through your data using advanced find and quick views becomes more difficult.

Once you've determined how your data is to be read and stored, you're ready to get things configured. If you're ready to proceed, head on over to our documentation for more detailed instructions on how to configure the solution appropriately, and of course feel free to drop us a line if you have any questions or encounter any issues. 

New Call-to-action

Topics: Microsoft Dynamics 365

New Dynamics 365 Apps for iOS and Android Authentication Issues

Today's blog post was written by Neil Erickson, Development Principal at Sonoma Partners.

Our team at Sonoma Partners have been using Microsoft’s mobile applications for a few years, including the native phone and tablet clients. Over this past weekend we received reports from a few users that they were now unable to sign in properly. After investigating, we determined that Microsoft recently updated their apps to reflect the most recent version, Dynamics 365. After these updates made their way to user’s phones, the follow error was shown.


Looking closer, when the new apps try to authenticate the following error is logged on the ADFS server.

Microsoft.IdentityServer.RequestFailedException: MSIS9236: The OAuth authorization request contains invalid client or redirect URI. Failed to process the request. ---> Microsoft.IdentityServer.Web.Protocols.OAuth.Exceptions.OAuthInvalidClientRedirectUriException: MSIS9224: Received invalid OAuth authorization request. The received 'redirect_uri' parameter is not a valid registered redirect URI for the client identifier: 'ce9f9f18-dd0c-473e-b9b2-47812435e20d'. Received redirect_uri: 'ms-auth-dynamicsxrm://'.

This error tells us that the new version includes some RedirectUri's that were not present in previous versions, and are now required for proper authentication.

So, you will need to add these RedirectUri's to the ADFS client even if your Dynamics CRM / Dynamics 365 server version has not changed. This can be accomplished by removing the existing ADFS Client and adding it back with the cmdlet currently on this TechNet article.

Topics: Enterprise Mobility Microsoft Dynamics CRM 2016 Microsoft Dynamics CRM Online

Dynamics 365 – Updates to Business Process Flows

Continuing with our posts regarding the recent release of Dynamics 365, next up are the changes Microsoft has added to Business Process Flows.  Additionally, head over to the CRM Roadmap site, or the CRM What’s New site to see more of the features that have recently gone live. 

Business Process Flows

Business Process Flows were first introduced to Dynamics CRM back in the CRM 2013 release, and enhanced in 2015 and 2016.  Continuing the trend, there have been enhancements in the Dynamics 365 release.

Security Updates

First off, one major change is that for every Business Process flow you have, you’ll see these show up in native Security Roles in a Business Process Flow tab.  From this tab you’re able to provide Create/Read/Write/Delete/Append/Append To permissions to your BPF.    This is because going forward, every business process you create and activate becomes a table in the database just like any other entity. Every instance of that process (applied to a record) is a row in the table.

For example, you may want certain users to only see the Lead to Opportunity Sales Process, but other users you want to be able to not only see the process, but also move between stages of the process (Write permissions).  You’ll need to provide Append permissions if you want a user to be able switch processes and Append the process to the record they’re on.   The security on the BPF tab does not drive the ability to update the fields in the stage – that’s driven through normal field level security and security role permissions that have existed pre-Dynamics 365.

Note:  Your process will not show up in this tab until you Activate the process.  If you Deactivate it after updating security roles, the process will remain in the available in this tab so you will NOT need to go back and update your security roles again.  It’ll only be removed from the security role tab once you delete the process.


Additional Status Reasons

Business Process Flows that are active on record can now be abandoned.  This can be done via the Process dropdown, and business processes can be queried using Advanced Find (an entity will appear for each BPF you have) with status reasons of Active, Finished, and Aborted. Users can also mark a process as Finished if it’s in the last stage of the process.  Abandoned processes change the process color to gray while Finished processes remain green.  You can reactivate Abandoned and Finished processes.




Your abandoned processes will still be viewable via the Switch Process dialog, if you click on the Archived Processes link. You can then select the abandoned/archived process to view it.



Concurrent Processes

With Dynamics 365, you’re no longer confined to having a single Business Process flow active at a time for a record.  You can now have concurrent processes that run in parallel without conflict.  Different users or departments may be working multiple processes on the same record at the same time, and the state of the process is maintained. 

When you switch a process, you’ll be able to see what date/time each process  was started on for the record you’re on.



          Business Process flows now include additional actions that can be taken versus simply updating fields (steps) within as stage.  Stages can now execute workflows with a trigger of Stage Entry, or Stage Exit (you may want some workflows to send notifications when users enter a stage, and others to send notifications upon users existing a stage).

          Here’s a screenshot of the workflow component on the new Visual Process Designer (described in more detail here).  Note that for the workflow to show up to be selected in your Business Process, it has to be set to run On Demand, has to be the same entity as the Business Process stage, and has to be activated.

          A great use case of using workflow is to have it at the completion of a Business Process (therefore Stage Exit of the final stage), that will then use the Perform Action workflow step, to Set Process.  You can then automatically kick off the next Business Process as the current Business Process ends.  For example you can have the completion of a specific Business Process on an Opportunity kick off a workflow that creates a Case, and activates a Business Process on that newly created Case.


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

          Stranger Dynamics? Not at all.

          Today's blog post was written by Nick Costanzo, Principal Consultant at Sonoma Partners.

          Stranger dynamics header banner
          With Dynamics 365 release in November, we have many clients looking to migrate from on-premise Dynamics CRM instances to Dynamics 365 for Sales. However, with the significant effort required to accomplish this, it can seem like a daunting task - as if you’re being chased by a Demogorgon on your way to the cloud. However by focusing on the added value, key challenges, and roadblocks, we can help you get there. After all, you shouldn’t feel like you are going to the upside down world to get your company onto Dynamics 365. The first step we can help you with is evaluating the pros and cons of migrating, which include:
            Stranger Dynamics Blog-Pros Chart

          Stranger dynamics cons chart copy

          Once you’ve reviewed the pros and cons of migrating to Dynamics 365 and you have clear case for why it’s the right decision for your organization, you’ll want to look into the areas that could require significant attention. These include:

          Stranger Dynamics Description Chart
          These tasks could of course change based on your current implementation, but by breaking them down, you can begin planning the scope, cost, and timeline for a migration. If you need assistance, we’ve got plenty of Elevens with super powers on staff here to help! 

          New Call-to-action

          Topics: Microsoft Dynamics 365

          Dynamics 365 – Visual Process Designer

          Continuing with our posts regarding the recent release of Dynamics 365, next up is discussing the new Visual Process Designer.  Additionally, head over to the CRM Roadmap site, or the CRM What’s New site to see more of the features that have recently gone live. 

          Visual Process Designer

          With Dynamics 365 for Sales, a new drag and drop WYSIWYG designer has been created for creation and management of business process flows, task flows, and business rules.  When you open up the process, you’ll see a designer such as the following.  As you start adding in your stages and steps, you’ll be able to set the properties for the different pieces along the way for the component you select in the visual designer.


          In the designer, there’s a toolbar at the top that gives you the ability to take the following actions:

          • Add
          • Cut
          • Copy
          • Paste
          • Delete
          • Snapshot – This will create a picture of the rule that you can send over via email for a review process
          • Connector

          In the bottom left corner you’ll see a collapsible mini map that will allow you to quickly navigate around the designer for those large business processes, task flows and business rules.

          At the top of the designer you’ll notice a Validate button.  You can click on this button to have any errors in the process flow, task flow, or business rule clearly displayed.  It’ll highlight the component and property of the component that has the error allowing you to quickly resolve any issues.  One interesting note about validation in the designer is that when you click it, it’s always on.  So if you fix the error you’ll see the error change to “Validation successful” immediately.  You can toggle validation off if you don’t want to see that message every time you add a new component.


          As I was using the designer, one thing I noticed was that if I made changes in the designer, I had to get used to clicking the Apply button in the bottom right corner of each component versus clicking the Save button at the top of the process.  If you don’t click Apply first, your changes to that component will not be saved and you could get validation errors or unexpected results in your process.  Therefore my recommendation would be to get used to always clicking Apply even if you aren’t sure if you updated a component.

          Pre-Dynamics 365 processes are able to use the new designer and the new features introduced in Dynamics 365.  In other words, this functionality is backwards compatible.

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

          Branding Your CRM for Successful User Adoption

          Today's blog post was written by Ariel Upton, Marketing Manager at Sonoma Partners.

          Don’t underestimate the power of personalization.

          There’s a reason your mom wrote your name on your shirt tag at camp, why monograms have such staying power, and why pet owners choose to stitch Fido’s name directly on to their leash. Take a look at your mobile device – nearly every component, from wallpaper and lock screen display to icon orientation and brightness, is customized to your personal preference.

          Regardless of the use or intention, there is a unique value to personalized possessions, and your CRM system (and subsequent user adoption) could greatly benefit from some personal branding.

          In this post I will highlight some explanations for why personal branding is essential to promoting user adoption in addition to outlining some tactical approaches you can use within your organization.

          People carry their good (and bad) brand experiences with them.

          It’s more than likely that your team has encountered some sort of customer relationship management software during their career. Whether that experience was positive or negative will greatly impact the success of your current or future deployment.

          If their previous experience was good, they may expect to similarly model your CRM environment and pushback on any decision you make to go in a different direction. If their previous experience was bad, they may refuse to use the same system (even though it’s a new deployment) and sour the opinion of fellow coworkers.

          And for this very reason, we highly recommend that you brand your CRM in a unique way to replace your team’s prior experiences with a particular platform.

          Choosing and implementing a successful CRM program has nothing to do with the technology.

          It doesn’t matter which software your company selects, the success of your CRM program relies completely on how well it’s implemented and how well it’s adopted. Knowing this, you should be whole heartedly focused on creating a system that’s personalized to fit the needs of your company, your employees, and your customers. Spend less time communicating the feature/function comparison between platforms and more time crafting an internal plan and message for how you’re going to personally brand the tool for your company’s specific use cases. The more you can make it yours, the better off you are for promoting high levels of user adoption. 

          Okay all of this is great, but give me the good stuff. How do you actually brand your CRM for success? Here are a couple of tactics we use internally and have borrowed from our customers:

          1. Give it a name.

          At Sonoma Partners we refer to CRM as Grapevine or GV for short. The name is personal to our business (you know we’re crazy about the wine theme) and gives the tool a unique name that can’t be confused with any other system.

          Here’s another example. One of our customers named their Salesforce deployment, Mark. Yup that’s right. Mark. No one on their team refers to CRM or Salesforce; they only refer to Mark. They even have beautifully designed Mark-branded pullover sweatshirts. This commitment to personalization not only makes the tool feel like something that is uniquely theirs, but it also creates internal buzz and greater organizational awareness of their CRM efforts.

          Bonus: Giving your system a unique name is an easy (and free) method for personalizing your CRM.

          2. Employ UX.

          Pro Tip: Devote some of your CRM project hours to a User Experience Architect. A dedicated UX resource has the ability to understand your team’s motivations and is extremely receptive to what your users actually need vs. what the business thinks they need. Furthermore, UX resources are excellent at determining what data needs to be surfaced in CRM and creating a personalized look and feel for your system and your system alone.

          3. Make it yours with mobile.

          If you’re still on the fence about investing in a mobile CRM solution for your workforce, jump off right now. Providing your team with a tool that is built for them and that they want to use? That’s a grand slam for successful user adoption. Mobility boosts your credibility in the eyes of your customers, especially when the app you’re working in is personalized to your business.

          We’re here to help you personalize your CRM for successful user adoption. Contact us to learn more.

          Topics: CRM Best Practices

          Microsoft Flow, PowerApps, Common Data Model, as they relate to Dynamics CRM

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

          Microsoft has released a number of new tools recently that are very interesting but have left a number of us asking, “What does that mean for CRM?" While I’d imagine a more official roadmap will be forthcoming, we wanted to convey our thoughts on these tools and how they may impact your CRM program or project.

          These tools are all part of the Office 365 suite and were recently made available prior to the launch of Dynamics 365.

          Landers 1

          Let’s start with Microsoft Flow. Microsoft Flow is a SaaS offering for automating workflows across applications that business users rely on. It has some similar functionality to the Dynamics CRM workflow module, but it allows you to reach across to and from other applications. So, for example, perhaps we want to create a record in a SharePoint list when a CRM record is created. In the past, that would require either a third party tool configured by a technical resource or custom development. With Flow, it’s point and click. 

          Next we will touch on Microsoft PowerApps. PowerApps is a service that allows individuals to build simple custom applications without writing code. These Apps can be published instantly and be used on the web or from a mobile device. While Dynamics CRM has a robust custom mobile solution, PowerApps can be used for use case specific apps. My colleague, Jim Steger, recently published a post on this topic which can be found here. Also, a fun side note, we use PowerApps to manage our internal blog schedule.

          Finally, let’s cover Microsoft’s Common Data Model (CDM). CDM is an Azure-based business application data model and storage mechanism available through PowerApps. CDM comes pre-provisioned with a large set of standard entities used in business applications. Users can use the standard entities but also extend the data model with custom entities, once again without writing code. The idea is allowing non-developers the ability to create a data model to support their needs. The goal of the CDM is to have a single data model that can source data from multiple systems, relate the data, and allow users to view a picture across many applications. The use cases from CRM are endless, but here are a couple examples of use cases we feel are interesting:

          • Customer X has multiple CRM systems but wants a single view of Pipeline across the organization. The customer could use Microsoft Flow to push records from all CRM systems (SFDC and Microsoft) into the CDM and leverage Power BI to report directly from the CDM.
          • Customer Y has a requirement that the Global Sales Lead receive an SMS when an opportunity is created above $1MM. To accomplish this, create a Microsoft Flow that listens to CRM opportunities and, if they meet the criteria, pushes an SMS to the Global Sales Lead via Twilio.

          All of this said, these products are all very new and therefore we’d recommend you temper your expectations accordingly. That said, the release cadence is aggressive (similar to Power BI) and as such, we think you should definitely keep your eye on these applications.

          Topics: Microsoft Dynamics CRM

          Salesforce Made Smarter with Einstein

          Today's blog post was written by Troy Oliveira, Principal Developer at Sonoma Partners.

          Unless you have been living under a rock, you know that the big announcement out of Dreamforce this year was Salesforce Einstein, Salesforce’s Artificial Intelligence (AI) engine. But you probably have also spent some time wondering what the announcement means for your business and your day-to-day interaction with the platform. 

          A common sentiment we hear is, “Einstein sounds great, but what does it really mean for me?” The answer to that it is as complex as AI itself. In short, I try to tell folks that this is an investment in the platform, and as with any investment, it is likely going to take some time for everyone to see the benefits. Some will see immediate benefits, while others will be waiting for awhile as Einstein becomes more widespread.

          One thing is for certain: AI is the future, and Salesforce is committed to bringing AI into your business processes.

          Making Salesforce the World’s Smartest CRM

          The world is creating and storing new information at an astounding rate, and the amount of data that we are creating keeps rising on a day-by-day, hour-by-hour basis. For most of us, the question isn’t about not having enough information to make decisions, it is the exact opposite. We are flooded with too much information and cannot tell what is important and what is just white noise. That is where Einstein comes in.

          Salesforce loves to use the following equation to describe how Einstein works and what it means to you.

          Customer Data + AI + Salesforce Platform = World’s Smartest CRM.

          Troy einstein 1

          Through a combination of predictive analytics, machine learning, and natural language processing, Salesforce is able to comb through the data already in your Salesforce ecosphere and give you a better glimpse into what that data means as well as make suggestions and predictions on how you can act upon it.

          As a salesperson, imagine the possibilities if you could focus your efforts on pursuing the best leads - not by guessing, but by using AI lead scoring to tell you based on what has actually happened in the past who the best leads are for your business.  Or a Marketer who can now segment their audiences by predictive open rating and send emails to every recipient at the exact right time.  Or a Customer Service Representative who is automatically prompted by case resolution steps and recommended responses?  This is the power of AI in CRM and that is what Einstein brings to Salesforce.

          What does that mean for me, right here, right now?

          This all sounds great, but what does it really mean for you today?

          First, if your company or organization is using Salesforce Classic, you’ll want to consider moving towards Salesforce Lightning Experience. As with a lot of the new, shiny features that Salesforce has been releasing and will continue to release, the biggest benefit from Einstein is going to be found by those who are using Lightning Experience.

          Second, since Einstein is machine learning and predictive analysis of YOUR data, the more data you have in Salesforce, the more accurate the predictions will be, and they will improve as you get more data into the system. That’s why it is called machine learning. The benefit to this is that your organization has predictions that are specific to you, not some generic model developed in a basement somewhere. The downside is that if you have bad data, you’re going to get bad predictions.

          Lastly, keep an eye out for the future. At Dreamforce, only 17 Einstein features were announced, but we expect that number to grow tremendously over time. Meaning, if there isn’t something that you are interested in today, that doesn’t mean that Einstein isn’t right for you. Start taking the steps above to improve your data and work toward moving in the Lightning Experience direction because you never know what is coming in new releases.

          How can I be a better consumer?

          Keep an eye out for more information. I’ve linked to a number of blog posts that go deeper into how Einstein works and what it means for the different Salesforce clouds. Obviously this post isn’t meant to be the definitive source of information on Einstein, but we hope it can serve as a stepping-off point.

          If you have any questions about Salesforce Einstein, Lightning Experience, or need help implementing your solution with Salesforce, please contact us.

          Topics: Salesforce

          Fiddler is Your Data Migration Companion

          Today's blog post was written by Keith Mescha, Principal Architect at Sonoma Partners.

          Here at Sonoma, we are a big fan of KingswaySoft’s tools for data migration to Dynamics 365 and Salesforce. We use SQL Server Data Tools and SSIS all the time for data migrations and integrations to CRM for our clients. The tool set they provide is an add-on that allows us to quickly read and write data from the cloud. In one recent migration project, we ran into an odd issue that took a bit to figure out. Here's what happened...

          Within the KingswaySoft CRM Online adapter, there is built-in functionality to do lookups for related fields based on text provided. This will allow you to provide the text value, and it will retrieve the GUID for you to populate in the target entity. In this case we were using this functionality for loading Opportunity Products and using text lookup for the Unit of Measure attribute. This attribute is required on this entity, but we are not really using Units of Measure so we just needed to retrieve the default ‘Primary Unit’ GUID.

          Destination Editor

          So we wired this all up and started to push our data however nothing was happing. The process just appeared to hang, and we did not see any data show in CRM. No obvious errors were being returned by the KingswaySoft CRM adapter to tell us anything was wrong like we typically see. We started looking at plugins and workflows on the target org. We played around with various batch sizes, but still nothing was happening.

          After some head scratching we decided to fire up Fiddler to see what we could find in the messages being sent between our process and CRM Online. We quickly noticed that we were getting 500 errors for every call to CRM. In digging into the messages, we were getting an error that ‘UoM entity does not contain attribute with Name = ‘statecode.’ This didn’t make any sense at first, but then we remembered there is an option in the Text Lookup function to Exclude Inactive and realized very quickly this must be our issue. So we unchecked this box, and our process started working and records migrated into CRM.

          Error Code

          This seems like a defect in the product, and we will report a bug to KingswaySoft but figured if anyone else ran into similar issues this might be of some assistance.

          The key takeaway here is that for data migrations with CRM Online, Fiddler is your friend for pulling the curtain back to see what’s really going on with some of the calls that the data migration tool set might be gobbling up and not exposing. Oh and don’t check this box if using Text Lookup on the UOM entity as there is not a statuscode field on that entity in CRM apparently.

          Text Lookup Editor

          Topics: Microsoft Dynamics CRM