Hello,
I have created one "account" and there is not any documents tab under that "account".
Please help me out on this.
Thanks in advance.
Thanks & Regards,
Kunal
Hello,
I have created one "account" and there is not any documents tab under that "account".
Please help me out on this.
Thanks in advance.
Thanks & Regards,
Kunal
I am creating a series of blog posts that collectively are designed to help anyone preparing for the Microsoft Dynamics 365 Customer Engagement Core exam. (aka MB-200) In this post I will look at concepts around document management.
You can see below that we have a section of the exam which covers integration. Within this section topics such as SharePoint, OneDrive and OneNote are referenced. All of these require document management to be enabled.
The document management options in settings allow you to configure SharePoint and OneDrive for Business integration. You can access these from the advanced settings option.
Within advanced settings you will find a document management option. I have shown the document management settings option below. Notice we have several options including the ability to enable OneNote integration, define OneDrive for Business settings and manage document suggestions.
I don’t believe the MB 200 exam will test on specific SharePoint or OneDrive functionality in detail but you should understand their basic operation and installation. It will obviously be important to appreciate how these products work with Dynamics 365.
SharePoint Overview
SharePoint integration supports the storing and management of documents in SharePoint document libraries, allowing them to be “surfaced up” directly in Dynamics 365 in the context of “CRM” records. This allows users to quickly find documents related to an entity without having to search a potentially massive SharePoint repository.
One advantage of this approach is that access to the SharePoint isn’t limited to Dynamics 365 users. As the documents are available via Dynamics 365 or directly in SharePoint. Meaning, for example, you could have a sales proposal documents held against an opportunity. This proposal documents can be reviewed and amended by anyone with SharePoint access, no Dynamics 365 license is required.
Of course, you could simply attach documents to notes and not use SharePoint integration! But SharePoint offers a number of advantages, including;
It is important to remember that SharePoint does not replace the standard notes functionality. Instead SharePoint complements it, often a combination of both approaches will be used. For example, notes might be ideal for short ad-hoc comments, whilst SharePoint might be used for more complex documents. (Such as sales proposals, contracts etc.)
It’s worth knowing that SharePoint integration also supports integration with some of the other Office 365 products. Such as OneNote integration.
Document Management Settings
Before using SharePoint (or Onedrive / OneNote) you will need to define your document management settings.
Tip:
The use of OneNote is dependent on SharePoint being configured. As the OneNote notebooks would be stored in SharePoint.
Within document management settings you can define which entities are enabled for document management and also “point” to your SharePoint site.
Clicking next will validate your SharePoint site and additionally let you define a folder structure. The folder structure can based on an entity if required. (The base entities being either contact or account.)
Finally any required libraries will be created. If you have run the document management settings previously some may already exist. Any new libraries will be created and you should see as “Succeeded” status.
Working with SharePoint
Once the setup has been completed, on any of the enabled entities a document section will exist in the navigation. From here you can view and associate documents with that entity.
Below you can see the documents associated with my account record. Notice that I also have a folder called “contact”. Within here I will see a folder for each contact associated with the account. And from that folder I can see documents associated with the contact. This structure exists as in my document management options I picked the account as my base entity.
From the associated grid on the entity you can create new documents or upload existing ones. Plus, additional document locations can be added or you can edit the current location.
In the example above you can see the documents associated with an account.
It is also possible to use the Open location open to open the SharePoint document location.
By selecting the document, it is possible to interact with the document by viewing and setting document properties for example. Or manage versions by checking the document in / out.
It is also possible to delete the document. Doing so removes the document from Dynamics 365 and SharePoint. But if you delete the Dynamics 365 record then the documents would remain in SharePoint.
If two records are merged their document location information is merged. This doesn’t mean the that SharePoint documents are moved or duplicated. Just that the newly merged Dynamics 365 record will point to both SharePoint locations.
Tip:
Edit Properties might be useful to fix a broken link! If someone moves or renames a document directly in SharePoint without considering “CRM” the link between Dynamics 365 and SharePoint can become broken.
SharePoint and CRM Permissions
Firstly, it is important to understand that there is no interaction which pushes permissions from Dynamics 365 to SharePoint. It will be assumed that the user operating Dynamics 365 will already have permission on the SharePoint document library. So a common problem with permissions might be that the users have permissions in Dynamics 365 but also need to be granted access on the SharePoint side.
From a Dynamics 365 point of view two entities come into play, one for the SharePoint site and one for the document location settings. As with any entity in Dynamics 365 you can use the security model of Dynamics 365 to grant or restrict access as required.
OneDrive for Business
OneDrive for Business is included with Office 365 subscriptions. It provides a location for storing, synchronizing, and sharing work files. Files stored in OneDrive for Business are by default private but can be shared with work colleagues. Unlike SharePoint, where documents are by default shared to work colleagues.
Before configuring OneDrive for Business you will need to ensure your users have an appropriate license in Office 365 admin and OneDrive has been configured! See below that I have opened my user record in office 365 admin and initiated the provisioning of OneDirve.
Tip: Once you have started the provisions users will need to log out and back in for it to take effect!
By default, the storage space for each OneDrive for Business user is 1 TB. If you have one of the following Office 365 plans, you can increase the default storage up to 5 TB:
OneDrive can be linked to Dynamics 365, meaning users can access files stored in OneDrive for Business within forms in Dynamics 365.
OneDrive for Business works with Dynamics 365 online and Dynamics 365 on premise. All users require an Office 365 license.
As with OneNote, to configure OneDrive for Business CRM must already be configured to use SharePoint using server based integration. (Note: This statement therefore implies the SharePoint list component is not supported.)
OneDrive for Business is enabled from advanced settings / document management in Dynamics 365.
Selecting the enable OneDrive for Business option will present the following dialog. Allowing you to quickly enable OneDrive.
Once you have enabled OneDrive, an additional option will be shown that will allow you to define the folder that will be used for store personal files. The default location will be “CRM”.
Once configured OneDrive for Business can be accessed from the documents option found in the navigation on entities in Dynamics 365. (Just as with SharePoint.) When a file is uploaded you can opt to store the file in SharePoint or OneDrive. It is also possible to create new files and open them directly. (Using Excel Online etc.)
Within my account record I can change the location being viewed to be a SharePoint or OneDrive location. Then when I upload a document it will be added to the correct location. Notice below that I have changed my location to be “OneDrive”.
Notice below that I have uploaded three documents against an account. Two in SharePoint and the other in OneDrive for Business.
Notice that by selecting the document I have options to check out, check in, edit properties and also open directly in SharePoint or OneDrive.
Tip:
To share a OneDrive document you’d need to open the location of the document and share directly from OneDrive for business.
Also, you might want to consider the implications of changing an owner on a Dynamics 365 record. The ownership of files within OneDrive will not change, as they are personal to the user who created them.
You should also be aware that access to OneDrive for business is controlled by a privilege on Dynamics 365 security roles.
Hopefully this post has given you a good overview of the document management capabilities for Dynamics 365. And an insight into how to configure and use the SharePoint and OneDrive for Business integration. I hope I have included all of the main points which might popup in the MB 200 certification. But as always getting some hands-on time will be important in your preparation. Good luck.
I am creating a series of blog posts that collectively are designed to help anyone preparing for the Microsoft Dynamics 365 Customer Engagement Core exam. (aka MB-200) In this post I will look at concepts around charts.
In the skills measured statement (shown below) under the heading “manage user experience design”, you will see a reference to charts.
Charts can be essential to help us monitor sales performance, service levels etc etc. They can be displayed on forms, views and dashboards within Dynamics 365. Therefore, when taking the MB 200 exam, you will need to understand charts and dashboards. (I will cover dashboards in another post!)
There are two types of charts. Personal and system.
Personal charts
Tip:
Until fairly recently we could not create personal charts within the new Unified Interface. But the April 2019 release provided this capability.
System charts
Below you can see that the ability to maintain user charts is controlled by a security role setting. It is therefore possible to enable (and disable) the creation of charts for specific users. It maybe (for example) that you want your sales manager to be able to create charts but field sales people or tele sales agents may only be allowed to consume charts. (And not create new ones.)
Charts
Multiple chart types exist within Microsoft Dynamics CRM, via the chart designer interface users can create the following types of chart;
Charts maybe shown on dashboards and forms. You can also use the “Show Chart” button whilst working with views.
You can then select which chart to view, expand the chart pane and access other options. (Such as the ability to create new charts.)
The chart below shows a typical example of a sales pipeline shown in a funnel chart.
Tip: As shown below you can click on segment of a chart, then you have the ability to further filter on any field. Having selected a “drill down by field”, clicking on a chart type will show a new visualization. (Available charts types include … Bar, Column, Funnel, Line, Pie, area, doughnut and tag.)
It is also possible to export the XML of the chart, edit it and re-import. You could edit the XML to control parameters such as chart types, colour, labels, drawing style etc etc.
Note: The customization of charts using XML is “probably” beyond the scope of the MB 200 exam. But knowing they can be exported, changed and then re-imported as either a personal chart or a system chart maybe important.
Charts can be single series or multi-series. A multi-series chart can represent data using two chart types, one laid over the other. For example, a column and line in a single chart. Below you can see a sample chart showing a sum of estimated revenue with a line showing the average revenue. This is not possible on some chart types such as funnel and pie!
Another variation of a multi-series chart is a stacked chart, these apply to column and bar charts. Stacked charts are useful when comparing data. Charts can be shown as standard stacked charts or 100% stacked charts. The difference being that the stacked chart shows the actual values whilst the 100% stacked chart represents the data in terms of a proportion.
When plotting charts, it is possible to limit the data returned using options to show top “n” or bottom “n” rows. For example, the chart below shows my top 5 opportunities by estimated revenue.
Personal charts are created in the chart designer. You can access the chart designer using either the edit option (on an existing chart) or by using the New option to create a new chart from scratch.
Users cannot edit a system chart. But they could use the “save as” option to create a copy. That copy can then be amended as a personal chart.
Options within the chart designer allow us to select the chart type, limit the rows included, stack the chart, add a series etc. As part of your revision I strongly suggest you experiment with the chart designer to gain a full understanding of how to create various chart types.
Once the personal chart is saved we can use the “…” menu to edit the chart, share it with other users / teams or assign it to be owned by another user. It is also here that we can import and export charts.
The share option can be used to share personal charts with user or teams. It is also possible to govern the access level each person is given. You could opt to only allow them to read the chart. Or you can add in write, delete, assign and share privileges as required. Keep in mind that when you share a chart only the chart is shared not the underlying data. Meaning the security model is preserved.
Later you may add charts to dashboards and share out those dashboards. It is important to also be aware that the chart would need to be shared separately. Sharing the dashboard does not automatically share the charts and views on the dashboard.
Data Aggregation
Charts are a useful tool to aggregate / group data. Giving the capability to show an average, count, max, min or sum of a value.
When producing a chart containing a date field we can group the data by day, week, month, quarter, year, fiscal period and fiscal year.
Tip: As charts are graphical your best way to learn about their capabilities is with some hands-on experience. (I always like to stress that your best revision technique is to actually use Dynamics 365! )
If you are only familiar with charts within the classic web interface I would suggest you experiment in the newer Unified Client. As the main functionality is the same but you may find some minor differences that are worth learning about! For example we now have the ability to create tag and doughnut charts as personal charts. (shown below.)
Creating System Charts
It is possible to create system charts from make.powerapps.com.
The process for creating / amending a system chart is actually very similar to working with a personal chart.
First you will need to open your entity in either the default solution or by adding the entity into your own solution. (I will cover solutions in a later post!) Next you navigate to the charts option and either add a new chart to edit an existing one. Below, you can see that I have added the contact entity into my solution. (Randomly called “Neil’s POC Stuff”!) I can now access the charts option and use the add chart option to create a new chart.
Note: We also have available the classic interface for customizations. (You can access this using the “Switch to classic option”. I will however try to stick with the newer experience we have within make.powerapps.com.
You can see below that the chart designer within maker.powerapps.com is essentially the same as when we created a personal chart.
Once you have created a system chart you will need to remember to publish your changes before it becomes visible to users.
Apps
A note about Apps maybe important here! Although I will cover apps in more detail in a later post.
Model driven Apps are essentially a collections of entities and other assets. Typically we’ll create an app that contains all of the features needed for a group of users. For example, your sales team may access all of the sales entities from the Sales Hub app.
Dynamics 365 is made up of multiple model driven apps. Often an app will include all charts for a given entity. But if after creating a new system, chart is does not show then a likely reason is because the app does not include all charts!
Below you can see the list of entities within my Sales Hub app. Many entities include All charts. But on my contact entity you can see how we can select just the specific charts users of the sales hub will see.
I hope this post has given a feel for the concepts connected with charts that you’ll need to understand for the MB 200 certification. As always I strongly encourage you to get as much hands on experience of actually using / creating charts as possible. Enjoy.
I've downloaded the latest USD version for CRM and copied the PackageDeployer (v. 3.3.0.929) on our CRM server. Then I ran the setup of the PackageDeployer and choose to install the package Unified Service Desk - New Environment.
I also installed the USD client (Dynamics365-USD-3.3.0.931-amd64.exe) on my laptop and connected to our CRM on-premise organization.
Now when I want open the USD I get the following error:
APPLICATION_HOST_ERR_NO_CONFIGURED_APPS: No applications are configured for your use.
The USD log has the following errors:
Microsoft.Crm.UnifiedServiceDesk.ProcessMonitor Error 2 01/05/2018 14:28:38 Message: Exception 0x33BC0111:
Source : Not Provided
Method : Not Provided
Time : 14:28:38
Date : 01/05/2018
Error : A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread.
Stack Trace : Not Provided
======================================================================================================================
Inner Exception Level 1 :
Source : Not Provided
Method : Not Provided
Time : 14:28:38
Date : 01/05/2018
Error : Response status code does not indicate success: 500 (Internal Server Error).
Stack Trace : Not Provided
======================================================================================================================
Microsoft.Crm.UnifiedServiceDesk.ProcessMonitor Information 8 01/05/2018 14:28:39 Time Elapsed in Monitoring Hung Process :0
Microsoft.Crm.UnifiedServiceDesk.ProcessMonitor Information 8 01/05/2018 14:28:40 Time Elapsed in Monitoring Hung Process :0
Microsoft.Crm.UnifiedServiceDesk.ProcessMonitor Information 8 01/05/2018 14:28:40 Unified Service Desk process terminated with exit code 0 at 05/01/2018 14:28:40. Terminating usdmp.
Microsoft.Crm.UnifiedServiceDesk.ProcessMonitor Error 2 01/05/2018 14:28:40 Message: Exception 0x33BC0120:
Source : mscorlib
Method : WinIOError
Time : 14:28:40
Date : 01/05/2018
Error : Could not find a part of the path 'C:\Users\breedveld\AppData\Local\Microsoft\UnifiedServiceDesk\USDProcessInformation.dat'.
Stack Trace : at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.StreamWriter.CreateFile(String path, Boolean append, Boolean checkHost)
at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize, Boolean checkHost)
at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding)
at System.IO.File.WriteAllLines(String path, IEnumerable`1 contents)
at Microsoft.Crm.UnifiedServiceDesk.ProcessMonitor.Program.OnUsdProcessExit(Object sender, EventArgs e)
======================================================================================================================
Microsoft.Crm.UnifiedServiceDesk.Diagnostics Information 8 01/05/2018 14:28:40 Stopping Diagnostic tool
Microsoft.Crm.UnifiedServiceDesk.Diagnostics Information 8 01/05/2018 14:28:40 Stopped Diagnostic tool
Microsoft.Crm.UnifiedServiceDesk.ProcessMonitor Information 8 01/05/2018 14:28:40 Monitoring Process terminated with exit code 0 .
Microsoft.Crm.UnifiedServiceDesk.ProcessMonitor Information 8 01/05/2018 14:28:40 Monitoring Process terminated with exit code 1 .
Microsoft.Crm.UnifiedServiceDesk.ProcessMonitor Error 2 01/05/2018 14:28:40 Exception 0x33BC0116:Unknown exception occurred in the namedpipeserver object.
Virtual Agents for customer service are currently a Dynamics 365 preview feature, you can use them to quickly build BOTs using a no code approach.
These BOTs can “obviously” then be consumed from your external facing website. But I had an idea to use my BOT internally to help contact center agents deal with customer queries in a smarter manner.
This meant I wanted to integrated a Virtual Agent with Unified Service Desk. In this post / video I will show how I achieved this.
Often when customers phone a contact center the steps the agent should take are obvious. But this is not always true! Often the agent will have a multitude of next actions they could take, so anything that helps them select the “best next action” is potentially really helpful.
I wanted to use the new virtual agents to act as a smart assistant offering solutions / next best actions to my agents. I created this demo as a proof of concept (POC). Meaning the logic within my BOT is pretty simple. But I hope you can see that this POC could be extended to cover really complex scenarios.
In the following video you’ll see my virtual agent in action. I will then describe how I created my BOT with no code and how I integrated it with Unified Service Desk …..
I need to show a sub-grid of sub accounts on an opportunity, our sales team targets Health Care Systems, that own multiple individual hospitals. We set up the account record in this fashion where the health care system is the parent account and the hospital facilities are sub accounts Our sales team is looking for a way to have these listed on the opportunity records. My first thought is to use accounts and add a 1 to N relationship between opportunity and accounts. My second thought is to use a custom entity that would have basic account type information on it and then build a workflow to turn the custom entity records into accounts after the opportunity has been won, but I am not sure this is possible without coding or a plug in. Please provide me your insight on either options as well as other ideas.
Thank you,
Mike
I am creating a series of blog posts that collectively are designed to help anyone preparing for the Microsoft Dynamics 365 Customer Engagement Core exam. (aka MB-200) In this post I will look at concepts around business process flows.
You can see below that we have a section of the exam which covers managing the user experience. Within this section under the heading “Create and manage processes” business process flows are mentioned.
Business Process Flows – Overview
All organizations will have specific business processes they follow, these could cover lead qualification, case logging / resolution etc. Each business process will include a number of stages and each stage will contain a number of steps (or actions). Some steps may be mandatory before allowing the user to progress to the next stage in the process.
These business processes are referred to as business process flows. They may be linear with all stages applying in all situations, or they may contain condition branches. For example: Very large value opportunities may follow a different process to smaller opportunities.
The benefits of business processes include;
Dynamics 365 ships with a number of out of the box business process flows. Including common ones such as “Lead to Opportunity Sales Process” and “Phone to Case Process”. In addition, further example (ready to use) processes can be enabled. You do this by using the “Add Ready-to-Use Business Processes” option that can be found in the data management area of Dynamics 365 advanced settings.
Note:
Be aware that if you add these ready-to-use business processes they cannot be removed. So if you wish to experiment with them that is best done in a development environment.
I will often take an existing business process flow and tweak it to meet a company’s needs. It is also (obviously) possible to create new business processes from scratch.
Example Process – Lead To Opportunity Sales Process
By way of an example, I would like to look at one of the out of the box processes in greater detail. In my experience the process to qualify a lead and develop it into an opportunity is a perfect example of how to use a business process flow. So let’s look at that!
As you use this process, a few things to notice …
The lead to opportunity business process flow is shown below;
Notice that with the lead to opportunity business process flow, qualifying the lead will progress from the qualify stage to the develop stage. And load the opportunity just created. Again it is important you try this. This demonstrates how one business process can span multiple entities.
It is worth noticing that the “highlight circle” moves as the process progresses. (It denotes the active stage.)
It is also possible to click on arrows (next to the next stage button) to make a previous stage the active stage.
Tip:
If you moved all the way back to the qualify stage, the lead would be displayed. But as the lead will have already been qualified it would be read only. If you do this, don’t forget that you’d need to also reactivate the lead if you need to change it.
Enabling Entities for Business Process Flows
Before you can create business processes on an entity it needs to be enabled for business process flows. We do this by amending the properties of an entity. (As shown below.)
Each business process flow will have a primary entity. If an entity is to be used within a business process flow as a primary or “secondary” entity it must be enabled for business process flows.
Note:
Once set you can NOT turn off business process flows. But having said that, just because an entity is enabled for business process flows doesn’t mean you have to use them with it!
When we enable an entity for business process flows some fields get automatically created on the entity. Including Process Session and Process Stage. These are links to the current process and the stage within it.
Tip: We have two interfaces for maintaining customizations. The newest experience can be found at “make.powerapps.com” (I normally recommend you use this one most of the time). But we also still have a the classic experience. Currently (Oct 2019) the property to enable an entity for business process flows is only available by switching to the classic experience.
Create Business Process Flows
Below you can see that within the classic customization experience, under the processes option I have new and add exiting options.
When I select the new option I will be prompted to enter the details of my process. To create a business process flow set the category to “business process flow” and then select the required entity.
Below you can see that once my business process flow has been added into my solution using the classic interface I can see and edit it from the newer “make.powerapps.com” experience.
Tip: Notice that an entity gets added automatically which relates to the process!
Order Process Flow
It is possible for one entity to have multiple business process flows. The sequence that the process flows are presented to a user is governed by selecting the Order Process Flow option.
Below you can see that out of the box knowledge articles have more than one business process flow available. When creating a new article, the top process called “New Process” would be started. Assuming your role has access to that process.
Enabling for Roles
In addition to defining the order of business process flows they can be enabled for selected roles or all roles. Using the “Enable Security Roles” ribbon button.
Stages, Steps and Stage Category
A business process is split into multiple stages. Each stage is represented by a “dot /circle” within the business process flow.
Each stage relates to an entity. All of the stages in a process can relate to the same entity. Or different entities can be used as the process progresses. For example, with the lead to opportunity business process flow processing moves from lead to opportunity after the qualify stage.
Each Stage is made up of a number of steps. (Each step being a field that should be completed at that stage in the process.) Some steps will be mandatory, some optional.
The fields in each step will show in the business process flow but the exact same fields can also present on the form.
The stage category is really just for reporting and logically groups the stages.
Notes:
Conditional Branches
Understanding how to create a business process flow with a conditional branch will be required. Try actually creating a conditional branch, it will help you understand them! As always the best revision approach is to create “something” to see how it performs.
Below you can see that I have created a conditional branch which effectively adds an extra stage for leads. When a budget greater than 20,000, I want to make some additional information mandatory!
You can see below that once this change has been applied a different stage appears when the budget amount is greater than 20,000.
Workflows and Business Process Flows
We can also additionally add workflows into the stages on a business process flows. Dragging a workflow component allows us to trigger a workflow.
Tip:
Notice that there is a preview component to additional trigger a Flow from a Business Process Flow!
This trigger can be set to start the workflow on stage entry or exit. Importunately, the workflow you select must be an active, OnDemand workflow.
Additionally we can add global workflows. As shown below these have different triggers. For example, you could run a workflow whenever a process is completed or abandoned.
Action Steps and Business Process Flows
As described above typically workflows will be triggered on a stage entry or exit. Action steps allow users to execute an action inside a stage plus they have the ability to pass information into the resulting action.
First we create an action and then define any required inputs and steps. Below you can see that I have started the create process dialog. (Just as I would when creating as workflow, except the category is set to action.)
Notice that I have set the entity to lead, as in my example I want to generate a task from within the qualification business process flow on my leads.
Next I define the process. Importantly the property “Available to run as a business process flow action step” has been selected.
I have then entered two arguments. One being a date and another a string. In my example, I plan to use the date as the due date on my task and the string as the tasks description.
Then below the arguments I can define one or more steps. In my example I have simple added a step to create a task.
If we look at the properties associated with my task create step you will be able to see that I am using my arguments to set values for the description and due data fields.
Also notice that the regarding field has been set to lead. This will automatically link this task to the lead in question.
Next we can add the action step into our business process flow. Below you can see that I have dragged an action step component into a stage in my business process flow. Additionally you can see that in the properties I have defaulted my input parameters based on fields from the lead.
When my business process flow runs the user now sees an execute “button” within the stage.
Clicking execute will prompt the user to enter the required arguments. Notice that they have been defaulted from fields on my lead!
Finally we can see that a task has been created linked to my lead.
I admit that the first time I created an action step I found the process quite involved! But it is a really worth while step in your revision to try to create a business process flow that contains condition branches and makes use of action steps and workflows. (And you may even what to experiment with the new Flow component!)
In summary, I have covered,
As part of your preparation for the MB 200 certification you should gain hands-on experience for all of these features. Doing so will help ensure you understand the concepts involved. I hope this post has helped you understand the basics of business process flows. Enjoy!
I need to show a sub-grid of sub accounts on an opportunity, our sales team targets Health Care Systems, that own multiple individual hospitals. We set up the account record in this fashion where the health care system is the parent account and the hospital facilities are sub accounts Our sales team is looking for a way to have these listed on the opportunity records. My first thought is to use accounts and add a 1 to N relationship between opportunity and accounts. My second thought is to use a custom entity that would have basic account type information on it and then build a workflow to turn the custom entity records into accounts after the opportunity has been won, but I am not sure this is possible without coding or a plug in. Please provide me your insight on either options as well as other ideas.
Thank you,
Mike
I am creating a series of blog posts that collectively are designed to help anyone preparing for the Microsoft Dynamics 365 Customer Engagement Core exam. (aka MB-200) In this post I will look at concepts around business rules.
You can see below that we have a section of the exam which covers managing the user experience. Within this section under the heading “Create and manage processes” business rules are mentioned.
Business rules are a truly great feature of Microsoft Dynamics 365 as they allow us to configure rules to complete many actions on entities that previously would have required a developer to write JavaScript code. For example, with a business rule we can decide when fields are visible. Unlike workflows business rules are triggered as users interact with the form giving instant feedback.
With business rules we can create complex rules that conditionally effect the user experience by allowing us to;
All of these changes would have needed the assistance of a developer in earlier versions of “CRM” but now they can be achieved simply with configuration. This doesn’t mean JavaScript is redundant as it may still be required if highly complex logic is required or when limitations of business rules come into play. For example, within a business rule we can hide and show fields on the form. But we can’t hide / show sections or tabs. If that is needed we’d still resort to JavaScript.
Tip:
It is actually possible to hide a section without JavaScript if we individually hide all of the fields in the section, as once all of the fields are hidden the section will hide!
Another nice thing about business rules is we can define their scope, so that they can be applied to a specific form, all forms or even operate at an entity level. Business rules represent client-side logic that is applied on the form as the form is opened. Also, additionally, when defined as entity level the business rule logic can be applied at a server level. Meaning server side business rules run client-side and server-side. Entity level rules are triggered as users interact with the form AND they run on the server when a record is created or saved.
Note:
Business rules that have a scope of “entity” are supported with editable grids.
You should be aware that all of the fields referenced on a business rule must exist on the form (or editable grid). If we have a business rule that runs on a form that references fields that aren’t available it simply doesn’t run.
We have two methods of accessing business rules for an entity. The newer interface is “make.powerapps.com”. (I recommend you use this one.) But as this is still pretty new we do have a “switch to classic” option that will open the older style app configuration options.
WITHIN THE CLASSIC INTERFACE… we have a business rule options on the entity, form and even on fields. When viewing business rules, at an entity level we see all the business rules. When we view the business rules from a form we’ll see all the rules that apply to that form. And if we view them from a field within a form we’ll see only the business rules which could use or impact that specific field. Meaning the rules are displayed from the perspective that they are being viewed.
WITHIN THE NEWER maker.powerapps.com INTERFACE… to view, amend and create business rules open the entity. You can see a list of business rules associated with the entity. But when you load the new form editor you do not see business rules. Meaning the rules are now only display at an entity level.
Below you can see that within “make.powerapps.com” I have opened my solution and selected to edit an entity. Within the tabs available for the entity I have business rules.
Business Rules Scope
There are three options possible for the scope of a business rule;
Tip: To change the scope on an active business rule, you will need to deactivate it before making the change. (Or any change to an active rule for that matter!)
Business Rule Designer
The introduction of Dynamics 365 gave us a new form designed for business rules. Meaning we can create business rules using a drop and drag interface. The designer also gives a graphical representation of business rules that help to make them easy to understand.
When the new designer was first launched I created a blog post to describe this new feature. You may find that post useful. (It also describes the recommendations feature!) You can view that post here.
Part of your revision should include getting some hands-on experience of the business rule designer, so that you become familiar with its key features. Including the minim map and text view features.
Business Rules Example
The best way to explain business rules might be to show a quick example. Below you can see an example of a business rule.
All business rules will have at least one condition. But as you can see we can add more if required. Meaning you can create if, else if and else constructs.
Linked to each result of the condition you can add a number of actions. (or other conditions.) As already mentioned these actions can be used to hide fields, set field values etc.
When considering conditions in business rules it is important to be aware that a condition can have several parts and they can have and / or logic applied. (The default being and.)
The rule above has two conditions based on the relationship type with the account. If the account is a customer that I make the price list mandatory, and default the category and payment terms fields. For suppliers we do different things. Etc. Below you can see that because this account has been set to scustomer then the price list is mandatory, and payment terms / category has been given specific values.
Having created and saved your business rule, you will need to ensure it is activated. Once activated you need to deactivate the business rule to change it.
Each action has slightly different parameters. With set field, for example, you pick the field and then opt to set it to a value or another field. The best approach to learn how the different actions work will definitely be to try some out to see what happens.
I hope this post has given you a feel for how business rules work and some of the concepts you’ll need to cover for the MB 200 exam. As always, this is an important area to get some hands-on experience of.
I am creating a series of blog posts that collectively are designed to help anyone preparing for the Microsoft Dynamics 365 Customer Engagement Core exam. (aka MB-200) In this post I will look at concepts around business process flows.
You can see below that we have a section of the exam which covers managing the user experience. Within this section under the heading “Create and manage processes” business process flows are mentioned.
Business Process Flows – Overview
All organizations will have specific business processes they follow, these could cover lead qualification, case logging / resolution etc. Each business process will include a number of stages and each stage will contain a number of steps (or actions). Some steps may be mandatory before allowing the user to progress to the next stage in the process.
These business processes are referred to as business process flows. They may be linear with all stages applying in all situations, or they may contain condition branches. For example: Very large value opportunities may follow a different process to smaller opportunities.
The benefits of business processes include;
Dynamics 365 ships with a number of out of the box business process flows. Including common ones such as “Lead to Opportunity Sales Process” and “Phone to Case Process”. In addition, further example (ready to use) processes can be enabled. You do this by using the “Add Ready-to-Use Business Processes” option that can be found in the data management area of Dynamics 365 advanced settings.
Note:
Be aware that if you add these ready-to-use business processes they cannot be removed. So if you wish to experiment with them that is best done in a development environment.
I will often take an existing business process flow and tweak it to meet a company’s needs. It is also (obviously) possible to create new business processes from scratch.
Example Process – Lead To Opportunity Sales Process
By way of an example, I would like to look at one of the out of the box processes in greater detail. In my experience the process to qualify a lead and develop it into an opportunity is a perfect example of how to use a business process flow. So let’s look at that!
As you use this process, a few things to notice …
The lead to opportunity business process flow is shown below;
Notice that with the lead to opportunity business process flow, qualifying the lead will progress from the qualify stage to the develop stage. And load the opportunity just created. Again it is important you try this. This demonstrates how one business process can span multiple entities.
It is worth noticing that the “highlight circle” moves as the process progresses. (It denotes the active stage.)
It is also possible to click on arrows (next to the next stage button) to make a previous stage the active stage.
Tip:
If you moved all the way back to the qualify stage, the lead would be displayed. But as the lead will have already been qualified it would be read only. If you do this, don’t forget that you’d need to also reactivate the lead if you need to change it.
Enabling Entities for Business Process Flows
Before you can create business processes on an entity it needs to be enabled for business process flows. We do this by amending the properties of an entity. (As shown below.)
Each business process flow will have a primary entity. If an entity is to be used within a business process flow as a primary or “secondary” entity it must be enabled for business process flows.
Note:
Once set you can NOT turn off business process flows. But having said that, just because an entity is enabled for business process flows doesn’t mean you have to use them with it!
When we enable an entity for business process flows some fields get automatically created on the entity. Including Process Session and Process Stage. These are links to the current process and the stage within it.
Tip: We have two interfaces for maintaining customizations. The newest experience can be found at “make.powerapps.com” (I normally recommend you use this one most of the time). But we also still have a the classic experience. Currently (Oct 2019) the property to enable an entity for business process flows is only available by switching to the classic experience.
Create Business Process Flows
Below you can see that within the classic customization experience, under the processes option I have new and add exiting options.
When I select the new option I will be prompted to enter the details of my process. To create a business process flow set the category to “business process flow” and then select the required entity.
Below you can see that once my business process flow has been added into my solution using the classic interface I can see and edit it from the newer “make.powerapps.com” experience.
Tip: Notice that an entity gets added automatically which relates to the process!
Order Process Flow
It is possible for one entity to have multiple business process flows. The sequence that the process flows are presented to a user is governed by selecting the Order Process Flow option.
Below you can see that out of the box knowledge articles have more than one business process flow available. When creating a new article, the top process called “New Process” would be started. Assuming your role has access to that process.
Enabling for Roles
In addition to defining the order of business process flows they can be enabled for selected roles or all roles. Using the “Enable Security Roles” ribbon button.
Stages, Steps and Stage Category
A business process is split into multiple stages. Each stage is represented by a “dot /circle” within the business process flow.
Each stage relates to an entity. All of the stages in a process can relate to the same entity. Or different entities can be used as the process progresses. For example, with the lead to opportunity business process flow processing moves from lead to opportunity after the qualify stage.
Each Stage is made up of a number of steps. (Each step being a field that should be completed at that stage in the process.) Some steps will be mandatory, some optional.
The fields in each step will show in the business process flow but the exact same fields can also present on the form.
The stage category is really just for reporting and logically groups the stages.
Notes:
Conditional Branches
Understanding how to create a business process flow with a conditional branch will be required. Try actually creating a conditional branch, it will help you understand them! As always the best revision approach is to create “something” to see how it performs.
Below you can see that I have created a conditional branch which effectively adds an extra stage for leads. When a budget greater than 20,000, I want to make some additional information mandatory!
You can see below that once this change has been applied a different stage appears when the budget amount is greater than 20,000.
Workflows and Business Process Flows
We can also additionally add workflows into the stages on a business process flows. Dragging a workflow component allows us to trigger a workflow.
Tip:
Notice that there is a preview component to additional trigger a Flow from a Business Process Flow!
This trigger can be set to start the workflow on stage entry or exit. Importunately, the workflow you select must be an active, OnDemand workflow.
Additionally we can add global workflows. As shown below these have different triggers. For example, you could run a workflow whenever a process is completed or abandoned.
Action Steps and Business Process Flows
As described above typically workflows will be triggered on a stage entry or exit. Action steps allow users to execute an action inside a stage plus they have the ability to pass information into the resulting action.
First we create an action and then define any required inputs and steps. Below you can see that I have started the create process dialog. (Just as I would when creating as workflow, except the category is set to action.)
Notice that I have set the entity to lead, as in my example I want to generate a task from within the qualification business process flow on my leads.
Next I define the process. Importantly the property “Available to run as a business process flow action step” has been selected.
I have then entered two arguments. One being a date and another a string. In my example, I plan to use the date as the due date on my task and the string as the tasks description.
Then below the arguments I can define one or more steps. In my example I have simple added a step to create a task.
If we look at the properties associated with my task create step you will be able to see that I am using my arguments to set values for the description and due data fields.
Also notice that the regarding field has been set to lead. This will automatically link this task to the lead in question.
Next we can add the action step into our business process flow. Below you can see that I have dragged an action step component into a stage in my business process flow. Additionally you can see that in the properties I have defaulted my input parameters based on fields from the lead.
When my business process flow runs the user now sees an execute “button” within the stage.
Clicking execute will prompt the user to enter the required arguments. Notice that they have been defaulted from fields on my lead!
Finally we can see that a task has been created linked to my lead.
I admit that the first time I created an action step I found the process quite involved! But it is a really worth while step in your revision to try to create a business process flow that contains condition branches and makes use of action steps and workflows. (And you may even what to experiment with the new Flow component!)
In summary, I have covered,
As part of your preparation for the MB 200 certification you should gain hands-on experience for all of these features. Doing so will help ensure you understand the concepts involved. I hope this post has helped you understand the basics of business process flows. Enjoy!
I am creating a series of blog posts that collectively are designed to help anyone preparing for the Microsoft Dynamics 365 Customer Engagement Core exam. (aka MB-200) In this post I will look at concepts around Microsoft Flow.
You can see below that we have a section of the exam which covers integration. Within this section needing to know how to create, execute and share flows is mentioned.
What is Microsoft Flow?
Microsoft Flow is a trigger based system for creating automated workflows (aka Flows). Like “traditional” workflows, Flows can be used to automate tasks with Dynamics 365 data. But unlike traditional workflows, Flow can leverage hundreds of other connectors. Off the shelf connectors include Salesforce, SQL Server, Twitter, DocuSign, Slack, Skype, SharePoint and many more. A connector is an API proxy that allows these services to connect to Microsoft Flow. Developers can even create custom connectors if an off the shelf connector doesn’t already exist!
This concept of connectors allows us to use Flow to integrate with multiple data sources. I could for example, create a contact in Dynamics 365 each time someone adds a contact into Salesforce.
Flow is a massive topic and one I’m obviously not going to be able to cover fully in a single post! My focus is here is revision for the MB 200 exam, so I will attempt to cover some of the basics I believe we might need to revise for the exam. But as always I really encourage you to gain as much hands on experience as possible. Flow is a really cool tool so you should have fun with this experimentation!!
In addition to Microsoft Flow we also have “traditional” workflows in Dynamics 365. I will cover those in a separate post. Although you should note that when we create traditional background workflows, Microsoft give us a friendly hint that maybe we should consider using Flow. If you aren’t using Flow yet … maybe now is a good time to start!!
Creating Flows from Templates
In my opinion, one really good way to learn about the capabilities of Flow is to experiment with the many standard templates that are available. Templates allow us to quickly create Flows based on an outline someone else has previously created.
Below you can see that within make.powerapps.com I have selected the “My flows” option. Then when I create a new flow I can use the “Create from template” option.
There are hundreds (maybe thousands) of templates! And more are being added all the time. Below you can see I have searched for the word “Dynamics” ….. loads of templates have been returned.
When you select a template you’ll see an image depicting what the Flow will do and maybe some additional narrative. Additionally you will be warned what connections will be used when creating this Flow. For example, below you can see I have selected a template that will send a survey whenever a case is resolved in Dynamics 365. To make this template work I’m going to need access to Dynamics 365 (or more specifically the Common Data Service related to my Dynamics 365 instance) and access to Microsoft Forms Pro.
To use this template before clicking “Continue” I will need to sign into Forms Pro. Plus when I click continue I’ll select which of my Common Data Service environments I wish to connect with. (Aka my Dynamics 365 instance.)
What I’d like you to start to appreciate is what components make up a typical flow. A flow must include a trigger and at least one action.
All our flows start with a trigger. There are many triggers! But some common ones include users manually clicking a flow button, records being created or records being updated. You can see in our template below that this flow is triggered when a case is updated.
Having defined our trigger we can then define the actions we’d like the flow to conduct. A common type of action is known as a control action. These include conditions and even loops. (Loops might include “Apply to each” or “Do until”.)
There are loads of different actions we could make use of. In our example below other actions include getting a record and triggering the send of a Forms Pro survey.
I’ll mention some more triggers and actions later in this post. For now, I hope you can see the overall structure of a Flow. And you also appreciate that creating a flow from a template will not only be useful but will also allow you to experiment with some of the many capabilities of Flow.
Triggers
All Flows start with a trigger! So let’s have a look at some common triggers. Below you can see that I’m creating a Flow from blank and my first step is to select my trigger. In the screen shot below you can see that I’ve searched for common data service triggers.
Notice that we can trigger a flow when a common data service record is updated, deleted or created. Additionally we can trigger a flow when a record is selected. (I will explain more about the select concept later in this post.)
Whilst the focus of this post is an overview of Flow from a Dynamics 365 point of view, it is important to keep in mind that we can trigger a Flow from many other sources. For example, below I have shown the outlook triggers. Meaning I could trigger a Flow when an email arrives, an event created etc.
Buttons
So we have seen that Flows can be triggered from updates to common data service records. It is also possible to create a flow button to manually trigger a Flow. Below you can see an example Flow … this one includes a button.
Optionally clicking on a button can prompt the user for additional information. I have shown this by prompting the user to enter a “Browser Type”. Obviously they could enter any attribute you like!
We don’t really need to worry about what this example Flow actually does! This is actually a Flow I often use to change the “Browser Type” field held on records in my Unified Service Desk configuration.
What is important here is that I’m just trying to show that I can click a button to trigger my flow!
I find triggering Flows from buttons really useful when using the Mobile Flow application. I end up with buttons in the mobile app that when clicked would do various productivity tasks. You may have noticed that the above flow includes a notification to my mobile device. Meaning I click the button, it updates a load of records and then sends me a notification when its finished. Running Flows like this manually can be a real time saver!
On Demand Flows
You may recall earlier I mentioned the ability to run a flow when a record is selected. This is known as an on demand flow. Anyone already familiar with traditional workflows may be aware of the concept of an On Demand workflow.
Before you can run On Demand flows (or workflows) you may need to check your system settings. As under the customizations tab in system settings we have an option to enable flows in the site map.
Once enabled you will see a Flow option in the command bars in Dynamics 365. This option will let you run any traditional workflows defined as on demand workflows and any flows that will be triggered on select of the common data service records.
Note:
In my testing I found that only flows created under the “My Flows” option showed here! Ones I created within the solution worked but any “on select” Flows didn’t show.
My flow was a really simple example. (Maybe you can create something similar or better.)
My trigger was “when a record is selected” in CDS. And I associated this with the contacts entity. Then I simply updated the contact to have “(Updated)” at the end of their last name. Obviously this isn’t a useful Flow, I created it just to show how we can run flows when a record is selected!
After selecting multiple contacts I can now pick my Flow. A dialog (shown below) will display and if I want to continue I can click “Run Flow”.
After my flow completed, I needed to refresh my view to check the change had taken effect. After my refresh, “(Updated)” has been added to the end of the contact name.
Scheduled Flows
Another useful trigger is to schedule a flow.
Say I want to perform a particular action once per day. Or week etc. Here I can select a recurrence trigger and define the interval / frequency as required.
I have specifically mentioned scheduled Flows as they can be really useful. You may need to know that the ability to schedule “jobs” doesn’t exist with out of the box traditional workflows. So this is something Flow can do that workflows can’t.
Actions
I have already mentioned a few actions in the examples above. As we add our steps into a Flow we add actions. Actions may allow us to update records, send emails, trigger notification etc etc.
Each connector may provide a number of custom actions that can be preformed on the connected data source. To give you just one simple example, the “MSN Weather” connector provides us actions to get the weather forecast for today, tomorrow or now. (As shown below.)
Below you can see another “silly” example! Here once per day I’m getting the forecast using MSN Weather. Then I create a task in Dynamics 365 to tell everyone the weather.
In this example you can see a concept I’ve used but not mentioned yet … “Dynamic Content”! Dynamic Content is essentially the variables returned by other actions that we can then use in our Flows. For example, having run the “Get forecast for today” action I have dynamic content including fields like the weather conditions, chance of rain etc.
Sharing Flows
When I create a flow it is typically “My Flow”. I can however share the flow with other users. (See “Share” option below.)
Below you can see that I’ve shared my flow with another user. This gives them full admin style access to my Flow. Meaning they can make any changes as required.
Additionally I can list users who will be “run only” users. Meaning they can run my flow but not edit it or manage its connections etc.
Sharing might be what you want but other options for distributing Flows exist. One being the “Send a copy” option. Here I can send a copy of m flow to other users in my organisation. Doing so will send them an email. Within the email they will have a button to create a new flow using the copy flow I sent as a template. This is slightly different to sharing as they’d end up with their own copy based on your flow. (Meaning their changes wouldn’t impact your flow!)
Additionally we have export and import options. These allow us to export a copy of the Flow and import it into another instance or tenant. These options are useful for moving a Flow from one environment to another.
And it is also possible to include Flows in Dynamics 365 solutions. Meaning Flows can then makeup part of your Dynamics solution / app. They can be exported from say a development environment and imported into production using this approach. I will cover solutions in more detail in a future post. But below you can see I have a solution that includes several Dynamics 365 entities plus a Microsoft Flow. This allows me to migrate not just my Flow but a whole set of changes from one environment to another.
Note:
If we want a Flow to be part of a solution we must create it from within the solution. We cannot create the Flow under “My Flows” and then add to a solution!
Summary
I have quickly covered loads of “stuff” in this post. My goal here wasn’t to try to teach you everything about Flow but instead to flag the topics I feel you should probably revise for your MB 200 exam. Including;
I am confident there are loads more things for you to learn about Flow but I hope I have covered at least some of the key facts you’ll need to know for your MB 200 exam. I hope you enjoy your revision, get loads of hands on practice!
Hello,
I have created one "account" and there is not any documents tab under that "account".
Please help me out on this.
Thanks in advance.
Thanks & Regards,
Kunal
I am creating a series of blog posts that collectively are designed to help anyone preparing for the Microsoft Dynamics 365 Customer Engagement Core exam. (aka MB-200) In this post I will look at concepts around document management.
You can see below that we have a section of the exam which covers integration. Within this section topics such as SharePoint, OneDrive and OneNote are referenced. All of these require document management to be enabled.
The document management options in settings allow you to configure SharePoint and OneDrive for Business integration. You can access these from the advanced settings option.
Within advanced settings you will find a document management option. I have shown the document management settings option below. Notice we have several options including the ability to enable OneNote integration, define OneDrive for Business settings and manage document suggestions.
I don’t believe the MB 200 exam will test on specific SharePoint or OneDrive functionality in detail but you should understand their basic operation and installation. It will obviously be important to appreciate how these products work with Dynamics 365.
SharePoint Overview
SharePoint integration supports the storing and management of documents in SharePoint document libraries, allowing them to be “surfaced up” directly in Dynamics 365 in the context of “CRM” records. This allows users to quickly find documents related to an entity without having to search a potentially massive SharePoint repository.
One advantage of this approach is that access to the SharePoint isn’t limited to Dynamics 365 users. As the documents are available via Dynamics 365 or directly in SharePoint. Meaning, for example, you could have a sales proposal documents held against an opportunity. This proposal documents can be reviewed and amended by anyone with SharePoint access, no Dynamics 365 license is required.
Of course, you could simply attach documents to notes and not use SharePoint integration! But SharePoint offers a number of advantages, including;
It is important to remember that SharePoint does not replace the standard notes functionality. Instead SharePoint complements it, often a combination of both approaches will be used. For example, notes might be ideal for short ad-hoc comments, whilst SharePoint might be used for more complex documents. (Such as sales proposals, contracts etc.)
It’s worth knowing that SharePoint integration also supports integration with some of the other Office 365 products. Such as OneNote integration.
Document Management Settings
Before using SharePoint (or Onedrive / OneNote) you will need to define your document management settings.
Tip:
The use of OneNote is dependent on SharePoint being configured. As the OneNote notebooks would be stored in SharePoint.
Within document management settings you can define which entities are enabled for document management and also “point” to your SharePoint site.
Clicking next will validate your SharePoint site and additionally let you define a folder structure. The folder structure can based on an entity if required. (The base entities being either contact or account.)
Finally any required libraries will be created. If you have run the document management settings previously some may already exist. Any new libraries will be created and you should see as “Succeeded” status.
Working with SharePoint
Once the setup has been completed, on any of the enabled entities a document section will exist in the navigation. From here you can view and associate documents with that entity.
Below you can see the documents associated with my account record. Notice that I also have a folder called “contact”. Within here I will see a folder for each contact associated with the account. And from that folder I can see documents associated with the contact. This structure exists as in my document management options I picked the account as my base entity.
From the associated grid on the entity you can create new documents or upload existing ones. Plus, additional document locations can be added or you can edit the current location.
In the example above you can see the documents associated with an account.
It is also possible to use the Open location open to open the SharePoint document location.
By selecting the document, it is possible to interact with the document by viewing and setting document properties for example. Or manage versions by checking the document in / out.
It is also possible to delete the document. Doing so removes the document from Dynamics 365 and SharePoint. But if you delete the Dynamics 365 record then the documents would remain in SharePoint.
If two records are merged their document location information is merged. This doesn’t mean the that SharePoint documents are moved or duplicated. Just that the newly merged Dynamics 365 record will point to both SharePoint locations.
Tip:
Edit Properties might be useful to fix a broken link! If someone moves or renames a document directly in SharePoint without considering “CRM” the link between Dynamics 365 and SharePoint can become broken.
SharePoint and CRM Permissions
Firstly, it is important to understand that there is no interaction which pushes permissions from Dynamics 365 to SharePoint. It will be assumed that the user operating Dynamics 365 will already have permission on the SharePoint document library. So a common problem with permissions might be that the users have permissions in Dynamics 365 but also need to be granted access on the SharePoint side.
From a Dynamics 365 point of view two entities come into play, one for the SharePoint site and one for the document location settings. As with any entity in Dynamics 365 you can use the security model of Dynamics 365 to grant or restrict access as required.
OneDrive for Business
OneDrive for Business is included with Office 365 subscriptions. It provides a location for storing, synchronizing, and sharing work files. Files stored in OneDrive for Business are by default private but can be shared with work colleagues. Unlike SharePoint, where documents are by default shared to work colleagues.
Before configuring OneDrive for Business you will need to ensure your users have an appropriate license in Office 365 admin and OneDrive has been configured! See below that I have opened my user record in office 365 admin and initiated the provisioning of OneDirve.
Tip: Once you have started the provisions users will need to log out and back in for it to take effect!
By default, the storage space for each OneDrive for Business user is 1 TB. If you have one of the following Office 365 plans, you can increase the default storage up to 5 TB:
OneDrive can be linked to Dynamics 365, meaning users can access files stored in OneDrive for Business within forms in Dynamics 365.
OneDrive for Business works with Dynamics 365 online and Dynamics 365 on premise. All users require an Office 365 license.
As with OneNote, to configure OneDrive for Business CRM must already be configured to use SharePoint using server based integration. (Note: This statement therefore implies the SharePoint list component is not supported.)
OneDrive for Business is enabled from advanced settings / document management in Dynamics 365.
Selecting the enable OneDrive for Business option will present the following dialog. Allowing you to quickly enable OneDrive.
Once you have enabled OneDrive, an additional option will be shown that will allow you to define the folder that will be used for store personal files. The default location will be “CRM”.
Once configured OneDrive for Business can be accessed from the documents option found in the navigation on entities in Dynamics 365. (Just as with SharePoint.) When a file is uploaded you can opt to store the file in SharePoint or OneDrive. It is also possible to create new files and open them directly. (Using Excel Online etc.)
Within my account record I can change the location being viewed to be a SharePoint or OneDrive location. Then when I upload a document it will be added to the correct location. Notice below that I have changed my location to be “OneDrive”.
Notice below that I have uploaded three documents against an account. Two in SharePoint and the other in OneDrive for Business.
Notice that by selecting the document I have options to check out, check in, edit properties and also open directly in SharePoint or OneDrive.
Tip:
To share a OneDrive document you’d need to open the location of the document and share directly from OneDrive for business.
Also, you might want to consider the implications of changing an owner on a Dynamics 365 record. The ownership of files within OneDrive will not change, as they are personal to the user who created them.
You should also be aware that access to OneDrive for business is controlled by a privilege on Dynamics 365 security roles.
Hopefully this post has given you a good overview of the document management capabilities for Dynamics 365. And an insight into how to configure and use the SharePoint and OneDrive for Business integration. I hope I have included all of the main points which might popup in the MB 200 certification. But as always getting some hands-on time will be important in your preparation. Good luck.
I am creating a series of blog posts that collectively are designed to help anyone preparing for the Microsoft Dynamics 365 Customer Engagement Core exam. (aka MB-200) In this post I will look at concepts around charts.
In the skills measured statement (shown below) under the heading “manage user experience design”, you will see a reference to charts.
Charts can be essential to help us monitor sales performance, service levels etc etc. They can be displayed on forms, views and dashboards within Dynamics 365. Therefore, when taking the MB 200 exam, you will need to understand charts and dashboards. (I will cover dashboards in another post!)
There are two types of charts. Personal and system.
Personal charts
Tip:
Until fairly recently we could not create personal charts within the new Unified Interface. But the April 2019 release provided this capability.
System charts
Below you can see that the ability to maintain user charts is controlled by a security role setting. It is therefore possible to enable (and disable) the creation of charts for specific users. It maybe (for example) that you want your sales manager to be able to create charts but field sales people or tele sales agents may only be allowed to consume charts. (And not create new ones.)
Charts
Multiple chart types exist within Microsoft Dynamics CRM, via the chart designer interface users can create the following types of chart;
Charts maybe shown on dashboards and forms. You can also use the “Show Chart” button whilst working with views.
You can then select which chart to view, expand the chart pane and access other options. (Such as the ability to create new charts.)
The chart below shows a typical example of a sales pipeline shown in a funnel chart.
Tip: As shown below you can click on segment of a chart, then you have the ability to further filter on any field. Having selected a “drill down by field”, clicking on a chart type will show a new visualization. (Available charts types include … Bar, Column, Funnel, Line, Pie, area, doughnut and tag.)
It is also possible to export the XML of the chart, edit it and re-import. You could edit the XML to control parameters such as chart types, colour, labels, drawing style etc etc.
Note: The customization of charts using XML is “probably” beyond the scope of the MB 200 exam. But knowing they can be exported, changed and then re-imported as either a personal chart or a system chart maybe important.
Charts can be single series or multi-series. A multi-series chart can represent data using two chart types, one laid over the other. For example, a column and line in a single chart. Below you can see a sample chart showing a sum of estimated revenue with a line showing the average revenue. This is not possible on some chart types such as funnel and pie!
Another variation of a multi-series chart is a stacked chart, these apply to column and bar charts. Stacked charts are useful when comparing data. Charts can be shown as standard stacked charts or 100% stacked charts. The difference being that the stacked chart shows the actual values whilst the 100% stacked chart represents the data in terms of a proportion.
When plotting charts, it is possible to limit the data returned using options to show top “n” or bottom “n” rows. For example, the chart below shows my top 5 opportunities by estimated revenue.
Personal charts are created in the chart designer. You can access the chart designer using either the edit option (on an existing chart) or by using the New option to create a new chart from scratch.
Users cannot edit a system chart. But they could use the “save as” option to create a copy. That copy can then be amended as a personal chart.
Options within the chart designer allow us to select the chart type, limit the rows included, stack the chart, add a series etc. As part of your revision I strongly suggest you experiment with the chart designer to gain a full understanding of how to create various chart types.
Once the personal chart is saved we can use the “…” menu to edit the chart, share it with other users / teams or assign it to be owned by another user. It is also here that we can import and export charts.
The share option can be used to share personal charts with user or teams. It is also possible to govern the access level each person is given. You could opt to only allow them to read the chart. Or you can add in write, delete, assign and share privileges as required. Keep in mind that when you share a chart only the chart is shared not the underlying data. Meaning the security model is preserved.
Later you may add charts to dashboards and share out those dashboards. It is important to also be aware that the chart would need to be shared separately. Sharing the dashboard does not automatically share the charts and views on the dashboard.
Data Aggregation
Charts are a useful tool to aggregate / group data. Giving the capability to show an average, count, max, min or sum of a value.
When producing a chart containing a date field we can group the data by day, week, month, quarter, year, fiscal period and fiscal year.
Tip: As charts are graphical your best way to learn about their capabilities is with some hands-on experience. (I always like to stress that your best revision technique is to actually use Dynamics 365! )
If you are only familiar with charts within the classic web interface I would suggest you experiment in the newer Unified Client. As the main functionality is the same but you may find some minor differences that are worth learning about! For example we now have the ability to create tag and doughnut charts as personal charts. (shown below.)
Creating System Charts
It is possible to create system charts from make.powerapps.com.
The process for creating / amending a system chart is actually very similar to working with a personal chart.
First you will need to open your entity in either the default solution or by adding the entity into your own solution. (I will cover solutions in a later post!) Next you navigate to the charts option and either add a new chart to edit an existing one. Below, you can see that I have added the contact entity into my solution. (Randomly called “Neil’s POC Stuff”!) I can now access the charts option and use the add chart option to create a new chart.
Note: We also have available the classic interface for customizations. (You can access this using the “Switch to classic option”. I will however try to stick with the newer experience we have within make.powerapps.com.
You can see below that the chart designer within maker.powerapps.com is essentially the same as when we created a personal chart.
Once you have created a system chart you will need to remember to publish your changes before it becomes visible to users.
Apps
A note about Apps maybe important here! Although I will cover apps in more detail in a later post.
Model driven Apps are essentially a collections of entities and other assets. Typically we’ll create an app that contains all of the features needed for a group of users. For example, your sales team may access all of the sales entities from the Sales Hub app.
Dynamics 365 is made up of multiple model driven apps. Often an app will include all charts for a given entity. But if after creating a new system, chart is does not show then a likely reason is because the app does not include all charts!
Below you can see the list of entities within my Sales Hub app. Many entities include All charts. But on my contact entity you can see how we can select just the specific charts users of the sales hub will see.
I hope this post has given a feel for the concepts connected with charts that you’ll need to understand for the MB 200 certification. As always I strongly encourage you to get as much hands on experience of actually using / creating charts as possible. Enjoy.
I've downloaded the latest USD version for CRM and copied the PackageDeployer (v. 3.3.0.929) on our CRM server. Then I ran the setup of the PackageDeployer and choose to install the package Unified Service Desk - New Environment.
I also installed the USD client (Dynamics365-USD-3.3.0.931-amd64.exe) on my laptop and connected to our CRM on-premise organization.
Now when I want open the USD I get the following error:
APPLICATION_HOST_ERR_NO_CONFIGURED_APPS: No applications are configured for your use.
The USD log has the following errors:
Microsoft.Crm.UnifiedServiceDesk.ProcessMonitor Error 2 01/05/2018 14:28:38 Message: Exception 0x33BC0111:
Source : Not Provided
Method : Not Provided
Time : 14:28:38
Date : 01/05/2018
Error : A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread.
Stack Trace : Not Provided
======================================================================================================================
Inner Exception Level 1 :
Source : Not Provided
Method : Not Provided
Time : 14:28:38
Date : 01/05/2018
Error : Response status code does not indicate success: 500 (Internal Server Error).
Stack Trace : Not Provided
======================================================================================================================
Microsoft.Crm.UnifiedServiceDesk.ProcessMonitor Information 8 01/05/2018 14:28:39 Time Elapsed in Monitoring Hung Process :0
Microsoft.Crm.UnifiedServiceDesk.ProcessMonitor Information 8 01/05/2018 14:28:40 Time Elapsed in Monitoring Hung Process :0
Microsoft.Crm.UnifiedServiceDesk.ProcessMonitor Information 8 01/05/2018 14:28:40 Unified Service Desk process terminated with exit code 0 at 05/01/2018 14:28:40. Terminating usdmp.
Microsoft.Crm.UnifiedServiceDesk.ProcessMonitor Error 2 01/05/2018 14:28:40 Message: Exception 0x33BC0120:
Source : mscorlib
Method : WinIOError
Time : 14:28:40
Date : 01/05/2018
Error : Could not find a part of the path 'C:\Users\breedveld\AppData\Local\Microsoft\UnifiedServiceDesk\USDProcessInformation.dat'.
Stack Trace : at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.StreamWriter.CreateFile(String path, Boolean append, Boolean checkHost)
at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize, Boolean checkHost)
at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding)
at System.IO.File.WriteAllLines(String path, IEnumerable`1 contents)
at Microsoft.Crm.UnifiedServiceDesk.ProcessMonitor.Program.OnUsdProcessExit(Object sender, EventArgs e)
======================================================================================================================
Microsoft.Crm.UnifiedServiceDesk.Diagnostics Information 8 01/05/2018 14:28:40 Stopping Diagnostic tool
Microsoft.Crm.UnifiedServiceDesk.Diagnostics Information 8 01/05/2018 14:28:40 Stopped Diagnostic tool
Microsoft.Crm.UnifiedServiceDesk.ProcessMonitor Information 8 01/05/2018 14:28:40 Monitoring Process terminated with exit code 0 .
Microsoft.Crm.UnifiedServiceDesk.ProcessMonitor Information 8 01/05/2018 14:28:40 Monitoring Process terminated with exit code 1 .
Microsoft.Crm.UnifiedServiceDesk.ProcessMonitor Error 2 01/05/2018 14:28:40 Exception 0x33BC0116:Unknown exception occurred in the namedpipeserver object.
Virtual Agents for customer service are currently a Dynamics 365 preview feature, you can use them to quickly build BOTs using a no code approach.
These BOTs can “obviously” then be consumed from your external facing website. But I had an idea to use my BOT internally to help contact center agents deal with customer queries in a smarter manner.
This meant I wanted to integrated a Virtual Agent with Unified Service Desk. In this post / video I will show how I achieved this.
Often when customers phone a contact center the steps the agent should take are obvious. But this is not always true! Often the agent will have a multitude of next actions they could take, so anything that helps them select the “best next action” is potentially really helpful.
I wanted to use the new virtual agents to act as a smart assistant offering solutions / next best actions to my agents. I created this demo as a proof of concept (POC). Meaning the logic within my BOT is pretty simple. But I hope you can see that this POC could be extended to cover really complex scenarios.
In the following video you’ll see my virtual agent in action. I will then describe how I created my BOT with no code and how I integrated it with Unified Service Desk …..
I am creating a series of blog posts that collectively are designed to help anyone preparing for the Microsoft Dynamics 365 Customer Engagement Core exam. (aka MB-200) In this post I will look at concepts around Word templates.
You can see below that we have a section of the exam which covers managing the user experience. Within this section needing to know how to create word templates is referenced.
Overview
As with Excel we can use Microsoft Word templates with Dynamics 365. Templates allow us to create documents containing Dynamics 365 data that follow a consistent format. It will be a common requirement to use Word templates to deliver standard business documents, such as quotes, orders and invoices.
Out Of The Box Templates
One thing that is worth knowing is that Dynamics 365 ships with several Word templates of the box. These include;
Tip:
You can view the available templates by navigating to Advanced Settings and then Templates. Within the templates option you will find the document templates option. In here you will find a number of Excel and Word templates.
You can see below that I have opened one of these system templates, notice that I can enable it for specific roles as required. It is therefore possible to grant / restrict access to word templates based on role.
Using these out of the box templates is simple. Just navigate to the required entity, select (or open) a record and select the word template option. Below you can see that I have navigated to invoices, selected an invoice and then I have access to the invoice template in the “Word Templates” option.
Tip:
Above I selected a word template from a view of invoices. It is also possible to find the same option from within the invoice form. (As shown below.)
As part of your revision I suggest running some of these out of the box templates. You may decide the formatting on them isn’t fantastic! And when you do you’ll want to create your own templates.
Word Settings
Before you think about creating Word templates there are some settings you need to check within Word.
On a blank document in word, you will first want to enable the Word developer tools, so that they show in your command ribbon in Word. To do this in you document right click on the existing ribbon. (Maybe within a blank area of your ribbon!)
You can see below that I can now access an option to customize the ribbon.
To enable the developer tools simply tick the developer option and then click OK.
You will now have this developer ribbon within Word.
You are now ready to create Word templates within Dynamics 365.
Creating Personal Word Templates
To create a word template click on the word templates option and then select “Download Template”
When creating a template we first select the primary entity. We can then define what related data we require. For example on a quotation template I might want to show product information and other related data. In my example below you can see that I have selected additional related data for each of the relationship types. Those being 1 to many (1:n), many to 1 (n:1) and many to many (n:n).
To explain my example, each quote can have many quote lines (1:n), each quote can have one account (n:1) and each contact can have many quotes and each quote can have many contacts (n:n).
You can now open the template in Word. But before you can edit the template you will need to click, the “Enable Editing” button.
You can now start to build your document. Obviously the formatting could take some time and involves your Word skills. I am not trying to teach you Word in this post! So I will focus on explaining how to add the data from Dynamics 365 into your Word template. You add fields from the XML Mapping Pane within developer tools.
When you have opened the XNL Mapping Pane you will need to select the correct custom XML part. Using the dropdown you will find the name of the template you have opened. (Clue, it will have “crm” in the name!)
From here I can now open my quote entity to view all of the fields on the quotation.
Additionally scrolling down to the bottom will enable me to see and open the related data I included in my template. Here I can access further details from the account, quote lines and contacts.
To insert fields into your template, simply click on the area of your document that needs to contact the field. Then right click on the required field name. Select “Insert Content Control”. Finally you need to pick the content type, which is typically going to be “Plan Text”.
You may want “repeating” content such as product lines on a quote. To achieve this you first insert the fields required on your quote. (Typically in a row within a table). Next highlight those details fields and navigate to the entity relationship name in the XML content pane. In this example that would be “Quote Lines”. The right click and select “Insert Content Control” and select the “Repeating” option.
Once you have completed all your formatting save the Word document ready to be imported back into Dynamics 365. In Dynamics 365 select the “Word Templates” option again. Then select “Word Template” and use the Upload option to import your file.
Now back in my quotation I have a new personal template. (I will discuss a concept of system templates in a second)
On second (or maybe third) attempt my quotation looked like the one shown below.
My quotation still isn’t perfect but I wouldn’t expect my first (or second) attempt to be perfect!!
Which leads me to a top tip …. You may want to delete this personal template, alter your word document and import a new version. Use the “view all my templates” option to see and manage your personal templates.
Within this option you can manage your templates, including downloading the template and deleting them. I will often repeatedly download, delete and re-uploaded amend templates!
Creating System Word Templates
System administrators and system customizers can create system Word templates. So far I have only mentioned personal templates which could be created by users with the required permissions. But it maybe common that you’ll want to create a personal template and once happy upload it as a system wide template.
In the settings, templates options developers can select the document templates option.
Here the developer can use the “UPLOAD TEMPLATE” option in a very similar manner to that we’ve already seen with personal templates.
Tip:
The resulting template will be enabled for all security roles. So at this point the developer may need to amend the enabled roles.
Having uploaded my template you can now see that my “Example Quote” template is available as a Word Template. Notice that I had also previously uploaded it as a personal template and is therefore showing twice. This is actually something I commonly do! As a developer I create a personal template and only once I am happy do I upload it as a system template. If I follow this approach I would now use advanced find to delete my personal template as it is no longer needed.
Within Dynamics 365 we can use solutions to move the assets in our application from instance to instance BUT I would like you to appreciate that document templates are not solution aware. Meaning they cannot be added to a solution. Therefore, if you have multiple instances of Dynamics 365 the templates would need to be manually imported into each.
I hope this post has given you a good overview of Word Templates and covered the key information you’ll need to revise for the MB 200 exam.
I am creating a series of blog posts that collectively are designed to help anyone preparing for the Microsoft Dynamics 365 Customer Engagement Core exam. (aka MB-200) In this post I will look at concepts around Excel templates.
You can see below that we have a section of the exam which covers managing the user experience. Within this section needing to know how to create Excel templates is referenced.
An Excel template allows greater formatting options than a standard Excel export. A template can be created and imported, data can then be repeatedly presented from differing views using the same layout.
Templates can be held as personal templates or uploaded as system templates.
Note:
In this post I am going to focus on how to create Excel Templates in Dynamics 365. Meaning I am not going to try to fully explain how to use Excel to create pivot tables, charts etc. However I may give a few Excel tips along the way!!
Opening an Excel Template
First off let’s look at how to open an Excel template. I’ll cover creating and maintaining templates in a second! First find the Excel template option in the ribbon, below you can see its location on opportunities. Now simply select the template you want to open and if you want to open in Excel or Excel Online. An out of the box templates option exists for opportunities called “Pipeline Management”.
Having selected “Pipeline Management” you can see I get two options, one to open the template in Excel Online and another to download it.
The Excel Online option is perfect if you want to quickly view the data. Downloading lets you open the template in the full Excel App. Great if you want to make changes and then upload later.
Dynamics 365 does come with a number of pre-built templates the “Pipeline Management” template on opportunity being one example, shown below opened in Excel Online. This is great to get you going but you’ll quickly want to create your own templates. So I’ll discuss that next.
Creating a template
Use the download template option to begin the create process.
Having selected the download template option you’ll see a dialog similar to the one shown below. In the first instance I am going to click “Download”, this will create and open an Excel file. Notice that from this dialog you could opt to change the entity or initial view.
Once the download is completed, you can open the spreadsheet. It should look similar to the one below. You can now edit this to include whatever formatting you need. Typically, this formatting will include adding charts and pivot tables! (Don’t forget to click “enable editing” before you try to alter anything!)
Tip: You could add your pivot tables directly above (or below) the data grid, just insert a few rows. However, in my opinion, this might not always be a good idea. If the length of your pivot tables will differ then you’ll need a varying amount of space above the grid. A cleaner approach might be to add a second worksheet. Maybe calling it “Dashboard” or some such thing. In my test I decided to create a “dashboard” that showed details of opportunities.
One tip is, when naming the ranges for the pivot tables make sure you select the whole range of the table returned from CRM. Meaning the pivot table is referencing the table name not the column / row range. This is because the amount of data returned will differ each time your template is used.
I’m not going to cover how to use Excel here. I’ll assume you know that already! I ended up with a test spreadsheet which looked like the one below. This is obviously a test, I’m sure you can create a better looking and more meaningful spreadsheet!
One useful tip is that any pivot tables you create will probably need to show the latest data when you load your template. (Removing the need for users of your template to have to manually refresh them. To do this right click on the pivot table, select pivot table options. Then in the data tab of the options ensure the option to “refresh data when opening the file” is selected.
Now save your spreadsheet. And you are ready to turn it into a template. Back in Dynamics 365 select the excel template button again but this time opt to upload a file.
Tip:
When you save your spreadsheet give it a meaningful name! As the name of the template in Dynamics 365 will come from the name of the spreadsheet.
This time you’ll see a dialog similar to the one shown below. Do as instructed! Choose your file and then click “upload”.
You are now ready to test your template. Return to opportunities and you should see your newly created template. If you don’t see it you may need to refresh your browser session! Notice below that a personal Excel template has been created. And I have an option to download in Excel or Excel Online.
Below you can see my newly created spreadsheet shown in Excel online directly from Dynamics 365.
View All Templates
You may have noticed above that my template didn’t have a very “pleasing” name. Additionally you may wish to upload new versions of a template and then maybe you’d want to delete the old version. Use the “view all my templates” option to make these types of changes.
Within this option you can delete, edit, share and download your templates.
Tip:
The share option might be really useful if one of your colleges would like to use a template you have created!
The edit option will allow you to enter a description of the template and rename it.
System Templates
So far I have only really made reference to personal templates. Personal templates can be shared but if you’d like to make a template available to the entire organization then converting it into a system template maybe a good idea.
Within the advanced settings option will find
The document templates option allows me to upload Excel or Word templates.
Having clicked upload I simply need to select either a spreadsheet or a word document template.
Once uploaded, as with personal templates I can change the name and add a desacription. I also have access to an “enable security roles” option.
By default your newly created template will be available to all security roles. But you will probably want to use the “enable security roles” option to restrict access to specific roles.
One thing you should be aware of is that document templates are not solution aware. Meaning if you create a template in a development instance moving it to production will involve manual steps.
Hopefully I have covered all of the basic concepts around Excel Templates that you’ll need to revise for your MB 200 exam. But as always I really encourage you to not rely on theory! Experiment by creating multiple templates to explore their capabilities and limitations fully. Enjoy!
I am creating a series of blog posts that collectively are designed to help anyone preparing for the Microsoft Dynamics 365 Customer Engagement Core exam. (aka MB-200) In this post I will look at concepts around workflows.
You can see below that we have a section of the exam which covers managing the user experience and within that workflows are mentioned.
There are several types of processes in Dynamics 365 including;
Note:
With Dynamics 365 we also have the ability to use Microsoft Flow which is Microsoft’s newer workflow engine that provides many more capabilities. (I will cover Flow in a separate post!) As shown below, you may sometimes see Microsoft recommending you consider using Flow in preference to background workflows!
In this post I will concentrate on workflows but will cover other aspects of processes in future posts. (Such as business process flows.)
Workflows – Overview
Workflows are a powerful tool which can be used to automate business processes. Think of them as a macro that can be triggered from within the Dynamics 365 application.
They can be configured to run in background or in real time. When fired in background the user can continue to use the application. When fired real-time the user cannot continue until the workflow finishes. (Meaning they have a direct impact on performance!)
Some typical uses of background workflow include;
Real-time workflows can run as the user who caused the triggering action to take place. Meaning, for example, if a new record is created by the workflow it would automatically be owned by the user who caused the workflow to start.
Alternatively real-time workflows can optionally be run as the owner of the workflow. (Often this will be an admin user proving additional security privileges over the user who changed the record.)
Workflows can start automatically, for example being triggered by a record being created or a field updated. Or they can be run manually “on demand” by a user.
Workflows can enter a wait state. Meaning they can be triggered when something happens but then wait a period of time until continuing. For example, we might send out an email to customer two days after a case was resolved.
Workflows do not required input from a user to run. (Dialogs are used when user input is required.)
Workflows – Security Roles
A users role will grant them privileges to run workflows. There are separate security privilege to control real-time workflow activation. See below that in the customization tab of security roles you can allow someone to execute workflows and activate real-time processes as two separate security privileges.
Additionally if you wish your users to be able to run OnDemand workflows or flows then you may need to show the Microsoft Flow option in the Dynamics 365 site map. To do this open the PowerPlatform admin center and check the settings for your environment. https://admin.powerplatform.microsoft.com
Running an on demand workflow
Below you can see that I have selected multiple leads. I can then select the “Flow” option! No under the run workflow heading I can access my on-demand workflow. This is demonstrating a nice feature of on demand workflows. As they can be manually fired on one or multiple records.
Note: As mentioned in the security section above you must have Microsoft Flow enabled in the site map to access the on-demand workflows! Also this hints at another feature to run Flows on the selected records. (Giving us multiple options for triggering workflows against selected records!)
Before the workflow is triggered I will be given a confirmation dialog. Notice that it will tell me how many records this workflow will be run against. It might be important to check that number is correct before clicking ok!
Tip: I often find on demand workflows are useful in support situations! Say I have a number of leads that are missing a vital piece of information. I can quickly create an on demand workflow, run it against the effected records. Another tip is that this approach will also work on “qualified” leads. Which are read-only and can’t normally be updated using a Dynamics 365 form. (Hence why I find this approach useful in support situations!)
Creating and Amending workflows
We have two ways to amend customizations! Classic and the newer make.powerapps.com experience. We can amend workflows from our solutions within make.powerapps.com or from within the classic experience.
But to create a new workflows you’ll need to swap to the classic experience. I typically do this from the “switch to classic” button from within PowerApps.
Within the classic experience you will find a processes option. You will find a New option here!
The first step will be to give the workflow a name and select the entity associated with the workflow. Each workflow is always triggered or manually run from a specific entity.
In this example I opted to create a BACKGROUND workflow. If I unselected the “Run this workflow in the background” option, it would have become a real-time work flow.
Next you will be presented with a screen similar to the one below. Before we start defining the steps / actions we have a number of other fields to consider.
The table below describes all of the fields you might need to consider before build the actions the work flow will actually execute;
Field | Description |
Process Name | This is the name of the workflow you will have given in the first step, it can be changed. |
Activate As | For now, we are going to leave this option as “Process”. But you could change it to “Process template”. Say you have a number of workflows that are very similar, then you could create a template and use that as a basis for future processes. |
Entity | This is read-only and therefore cannot be changes. The entity is defined in the first step of creating the workflow. If you get it wrong, you need to start again! |
Category | Also read-only. You can’t convert a workflow into a business process etc! |
Run this workflow in the background | This option appears to be read-only! But you will find a “Convert to a real-time workflow” option in the ribbon bar that can be used if you decide this workflow really should be a real-time workflow. |
As an on-demand process | If you want users to be able to manually run this workflow then select this option. |
As a child process | A workflow can call another workflow. (Known as a child workflow.) Selecting this option would make this workflow capable of being called from another workflow. |
Automatically delete completed workflow jobs | Each time a workflow runs a system job is generated. Having access to these can be very useful when debugging a problem. But they can also take up space. Selecting this option will remove these system job records after the workflow successfully completes. |
Scope | The options include User, Business Unit, Parent Child Business Units and Organisation. The default is User.
Each workflow has an owner. The workflow will run as that owner. The scope defines if it will be applied when just this user updates a record, anyone in their business unit, anyone in the child business units of their business unit or if the workflow applies to the whole organisation. Note: Personally, I almost always select the organisation option. A common support issue will be that the workflow runs for some users and not others. If this happens the scope will be incorrectly set! |
Start when – record is created | As it sounds, if selected the workflow will start as a record is created. |
Start when – Record status changes | If the status of the record changes that the workflow will be created. For example, running a workflow on change of status on a lead would allow you to say if the status = “qualified” then do ….. |
Start when – Record is assigned | If the owner of a record changes this triggers the workflow. |
Start when – Record fields change | If this option is selected, you then click the “Select” button to choose which fields will cause this workflow to be triggered.
|
Start when – Record is deleted | Trigger a workflow if someone deletes a record.
With a background workflow the workflow is executed AFTER the record is deleted. You cannot “pull” any information from the deleted record. If that is needed use a real-time workflow, as they can run before the delete is actually applied. |
Having decided the scope of the workflow and when it will be triggered, we can move our attention to the steps it will perform. Workflows can be very simple or very complicated! As you can see below I have quite a few options on possible steps. Including steps for creating records, updating records, sending emails, starting child workflows etc.
Tip: It is also possible for developers to create custom workflow actions that can further extend the available steps. If you have some Dynamics 365 Apps installed you may notice some custom workflow actions that relate to these. (For example, below you can see that I have Field Service installed and therefore below the out of the box actions I have additional ones relating to bookable resource, invoices etc.)
Just as an example I’ve shown a very simply workflow below. Notice that above each step in the workflow I can add a comment. Doing this makes them easier to understand and therefore maintain.
The best preparation at this point will be to create several workflows and experiment with the capabilities. Therefore I am not going to cover all of the capabilities of the steps within a workflow in this post!!
Notice how I have a “Set Properties” button next to the send email option. You will see this on several types of steps. Including send email, update record and create record. Clicking this button will open a screen allowing you to define the fields needed in the email etc.
Note: I have simply added steps to my workflow. This is quite typical. But there is a concept of creating stages and then having multiple steps within each stage. This is sometimes useful to help organize large workflows into logical parts. But speaking honestly I have rarely use stages!
Wait Conditions
If I create a wait condition step, I can make the workflow pause until a condition is met and then continue. Often this might be based on waiting until a particular value on the record is set. But I can also wait a predetermined amount of time. For example, below I have set my wait condition to wait for 7 days after the order was created.
Tip: The first field of “Process” will default to looking at the entity of the workflow. Changing it to process lets me select the timeout option. I can then say 7 days after created on etc etc.
Below you can see I have shown an example workflow using a wait. When an order is created I send a thankyou email. Then after a week I send another email checking the customer is happy with their purchase. (Great customer service, zero effort. Nice!)
It is also possible to wait for “n” months, days, hours or minutes before a date.
Tip: You can also create parallel wait conditions!
NOTE:
Be very careful with wait conditions if using real-time workflows, don’t forget the real-time workflows prevent the user from continuing!
ALSO NOTE: Also consider the implications of having large numbers of workflow waiting for potentially long periods of time. Wait states are great but you need to be mindful of performance and maintainability if you end up with large numbers of workflows waiting around for “stuff” to happen. Think of them as chocolate. A lovely thing but too much of a good thing can be bad!!
Real-time Workflows
Below I have converted my workflow into a real-time workflow. Hopefully you can immediately see that the options have changed!
Real-time workflows have some additional options to consider! Including when they will start and who they will execute as;
Field | Details |
Start When | The “start when” section is important!
Notice that we can opt to select that the real-time workflow runs before or after the trigger. Importantly the options for when a record is created or deleted are read-only. Meaning real-time workflows are always triggered before the delete has been completed. (Plus logically you couldn’t start a workflow before a record was created!) You can change the value of start when it either after or before for record status change, record is assigned or fields changing. Typically, you will leave this set to after. But occasionally running a workflow knowing the original values is useful. If example, if the owner is changed I might want to send the old owner as email! |
Execute as | Here I can define if the workflow will run as a using running the workflow or the user who changed the record. Often I want the workflow to run as the user who changed the record and that is the default. But say you need to create a record on an entity that the user doesn’t have access to. Then you might have the workflow owned by the system administrator and run it as the owner of the workflow. |
Workflows are a very important part of Dynamics 365 as they enable you to quickly automate the key processes. It will be very important for you to spend time learning how these work and the best way to do that is to create and test multiple variations. Think of this post as starting point or revision guide only! Hopefully it has given you the basic information you will need for the MB 200 exam.
I am creating a series of blog posts that collectively are designed to help anyone preparing for the Microsoft Dynamics 365 Customer Engagement Core exam. (aka MB-200) In this post I will look at concepts around currencies.
You can see below that we have a section of the exam which covers solution deployment and testing, within that we have a section regarding system administration. Currencies are included under the heading “Perform system administration”.
Very occasionally the customers I work with operate in just one currency. It is becoming more and more common for even the smallest companies to trade across wide geographical areas. For example, via the internet it is very easy to promote products in many countries. Sometimes you can “get away” with only selling your products in just Dollars or Pounds. But often you’ll need to produce quotes, price lists and orders in multiple currencies. Microsoft Dynamics 365 “obviously” has the capability to handle these multicurrency scenarios.
Microsoft Dynamics 365 you can maintain the various currencies you require in the currencies option in business management under settings. (via the advanced settings option.) (See below.)
Additionally, if you are using the newer power platform admin center then you will find a currencies option in settings. (Having selected your environment!)
https://admin.powerplatform.microsoft.com
Currency Setup
Within the currencies option you can configure additional currencies and their exchange rates as required. Before we review these options lets discuss the concept of the base currency.
Whenever you first create a new Dynamics 365 organization you must define your default (base) currency. The base currency applies to all momentary values across the whole system. For every currency value two values are always available the base currency value and the corresponding “local” currencies value. Often you will find these values will contain the same information but they will start to differ when alternative currencies are created. (We’ll look at this in more detail a little later.)
The base currency always has an exchange rate of 1. Meaning all other currency values are derived from this base. The base currency cannot be deleted and cannot be changed. (Although you can revise some details such as precision, display name and symbol.)
Now we understand the base currency we can add others. Let’s imagine I trade in US Dollars and Euros in addition to my base currency of Pounds Sterling.
Currently you get €1.24 (Euro) to £1 (Pound). And $1.41 (US Dollar) per £1 (Pound.) — Or you do in my example!
The configuration details for both euro and US Dollar are actually held within Microsoft Dynamics as preconfigured system currencies. When you create these you’ll simply need to enter the exchange rate you want to use.
As you add a new currency you are prompted to select system or custom currency. (I’ll cover a custom currency in a second!) For now, I am going to select a system currency.
Now because I’m using a system currency I can select my currency code from one of hundreds of preconfigured currencies.
Very occasionally you might find you want to define a currency doesn’t exist. Let’s say a new currency is created (maybe something like Bitcoin) and you want to add it. Then you’d use the custom option, when you create a custom currency you will need to enter the currency code, name, precision and symbol. In addition to the exchange rate.
Notice that the exchange rate to your base currency can include up to 10 decimals. But the maximum precision on a currency value is 4 decimals places.
As a slight aside, I haven’t worked on a real project using Bitcoin, yet!! But I believe that bitcoin is a currency that could be expressed as up to 8 decimal places. (In Dynamics 365 we have a maximum precision of 4.) One day knowing the currency precision allows a maximum of 4 digits might be useful knowledge!
Having created the three “local” currencies plus my base currency …. my currency list looks like this;
Note: It is important to keep in mind that exchange rate changes are managed manually. If the exchange rate fluctuates you will need to change it here under the currency settings. (I will expand on the impact of exchange rate changes later in this post.)
Using Multiple Currencies
Firstly, it is important to be aware that each user can set their own default currency. Below you can see that I have opened my user settings and changed my default currency to Bitcoin.
Having changed my default currency to Bitcoin any new records I create using a currency “may” default to Bitcoin. It is important to understand the implications / meaning of this. Existing opportunities aren’t going to suddenly change to be Bitcoin, they will remain in whatever currency has already been set.
If I create a new opportunity from an account that has “USD” set as its currency then the opportunity would be in USD. (Say by pressing + on a sub grid of opportunities on the account.)
But if I create a new opportunity directly from an opportunity view no account will be selected yet. So, the currency would be for my default. (Which is now Bitcoin.) Whilst my opportunity has defaulted to Bitcoin if I try to apply a price list already configured to work in say pounds sterling the system will give me a warning message.
On accounts, leads, contacts, products, price lists and discount lists you can define a default currency field. Once you have set a different default currency on an lead/contact/account then any new transactional record created for them will default to that currency. (Not forgetting that you will then also have to select an appropriate price list with a matching currency.)
Note: The default currency from say account will only be applied to opportunities (etc) created directly from the account form. If you open a new opportunity and then manually add the account the opportunity will default to the currency assigned to the current user.
Money Values Explained
Whenever a developer adds a field to hold a money value multiple fields will be automatically created! Meaning we always have three fields connected with each money value. Firstly a currency lookup will get created (if one doesn’t already exist). Then two value fields will be created. The first value field will hold the actual currency value, the second will hold the base currency value.
To try to demonstrate this I quickly created a custom entity containing a money value. (The following logic applies to all money fields on all entities.)
Below you can see my entity. As a developer I just created a field called “A Money Value”. Three fields were created by doing this. As a demonstration I added them all of them to my form.
Field Name | Explanation |
Currency | Currency is a lookup to whatever currency is required.
It will have defaulted to the currency set as the user’s default but that can be changed as required. Note: When no user default exists my organization’s base currency will be used. (It is not possible to save a record with a blank currency lookup, try it you’ll get an error!) |
A Money Value | “A Money Value”, this is simply the name for a field I created as a currency field.
Notice that this field is editable, so the user will enter the currency value into this field. Also notice that the correct currency symbol and precision is used for the currency selected. |
A Money Value (Base) | Automatically another field was created for me called “A Money Value (Base)”. Importantly notice that this is a read-only field.
Whenever a record is saved the value entered in the “A Money Value” will have an exchange rate applied to show the money value in terms of a base value. (The exchange rate will have come from the currency selected in the currency lookup.) Commonly this base value will not be shown on forms. So, users might not be aware of it but knowing it exists can be very important! Say they want to show a total money value of all opportunities in the sales pipeline. The opportunities could be in multiple different currencies, so to get a meaningful total it is normally this base value we use in reports. |
You can see below that I have added a number of records to my demo entity. The money value column includes the values the users will have entered. Whilst the base currency value has been calculated in terms of pound sterling. (As pounds are my base currency.)
Exchange Rate Changes
Let’s quickly consider the impact of exchange rate changes. What if the Pound to US Dollar rate changes from 1.41 to 1.8? (Not actual exchange rates!!!)
Well firstly I’d return to my currency settings and change the exchange rate. But what does that do?
To demonstrate this I have created two records. One before my exchange rate change and one after. They have the same dollar value but the base currency value differs.
The above actually demonstrates a potential challenge of multi-currency! Because if the exchange rate fluctuates you may need to consider manually amend any active opportunities to reflect the required price revisions.
Hopefully this post has given you a good understand of the basics of using multiple currencies in Dynamics 365 and helped in your preparation for the MB 200 exam.