Showing posts with label Microsoft CRM. Show all posts
Showing posts with label Microsoft CRM. Show all posts

Tuesday, June 19, 2018

Approvals for Dynamics 365 using Microsoft Flow


One of the business requirement which I have encountered is to provide an ability to approve or reject a request (for example lead or Opportunity) in an email without having to open Dynamics 365.
This is now possible using Approvals in Microsoft Flow. Below is an example.
Business scenario – When a lead is created in Dynamics 365, send an Approval email to user/s. Provide some details of the lead in the email. Once the user approves or rejects the lead, capture the response with the comments in Dynamics 365.
   
        I have setup the following environments –
a.       Dynamics 365
b.       Microsoft Flow
c.       Outlook online - Office 365

     Create a new Approval flow with Dynamics 365. In this example an approval email is sent when a Lead is created. I have connected to the demo org and selected the Lead entity.
Flow trigger - When a lead is created

Next step is to create the Approval.  The approval sends an email to the approver with a link to the record and some details info. The approver can review the email, approve or reject the record from within the email and add comments to it.

Approval email config
When a Lead is created in Dynamics 365 the approval is triggered and it sends an email to the person/s who need to approve. The email is shown below. The email is from Microsoft. I am not sure if this can be modified. The body of the email is as configured and shown below

email body
The approver can select Approve or Reject from within the email and also add comments.
The next step is to set a condition for updating the response into Dynamics 365. I have added the condition below. I have also added 2 custom fields to the Lead entity to store the response in the Lead record.

Conditional action
If approved I want the Lead record to be updated with the response and comments.

Update lead

I can also add a condition if the Approver rejects to update the lead with the response and comments.
Here is the end result with the Lead entity record updated in Dynamics 365.

Lead record updated
Microsoft has provided ability to track the run history and performance of the flow with Power BI analytics.


Run performance

This is a simple way to perform Approvals in Dynamics 365 using Microsoft Flow. I hope this helps you to try the Approvals and let me know your experience with it. 






Wednesday, October 4, 2017

What’s new in Dynamics 365 v9.0 – Part-1 User Experience enhancements

Microsoft has recently announced the release of Dynamics 365 v9.0. This blog focusses on the new enhancements to Dynamics 365 (D365) Customer Engagement applications including – Sales / Customer Service / Field Service / Project Service Automation.  This is a major release from Microsoft and also it was much awaited. I had the opportunity to be part of the preview program and got to test out some of the new functionalities and enhancements.

The Part-1 of this blog is on enhancements to the User Experience.


New form design for v9.0
       D365 v9 has vastly improved user experience with a new form design, tabs and consistent spacing. One of the pet peeve of many clients was the amount of white space on forms. This version aims to reduce / eliminates the white space as shown above and detailed below.

a.      The forms are now divided into containers for content display. There is a border along each container
b.      The spacing of sections and fields is standardized and the fonts on the form are standardized
c.      There are horizontal tabs and buttons, making it easier for a touch enabled experience
d.      The empty sections have a default message for the user
e.      The colors of the sub-grid can be customized (example - Recent Cases). 

Add color to Sub-grid on a form

f.   There is a new system wide setting for text wrap that Admin can enable or disable.

Text wrapping feature
g.    There are now 3 standard themes to select from – Customization > Themes

New themes
h.      Search – Advanced find now has the “Does not equal” operator. For example - I want to find all contacts which are not in the State of NY.
"Not-In" operator



Let me know your feedback on the new user experience enhancement. In my next part of this blog, I will write about the other enhancements in v9. Thanks for reading.

Mihir Shah





Thursday, August 3, 2017

Dynamics 365 online or on premise ?

        This is an age old question and I thought that cloud had won the battle. But that is not always the case and business are still debating about going online and staying on premise. There is also not one single answer to the question, as each business case is different and needs to be evaluated. Businesses focus on the costs or/and features (capabilities) of going online in the cloud vis a vis staying on premise. 

      There are many other aspects that needs to be considered before deciding on the route of going online or on premise with any business app including Dynamics 365. I think the points below are relevant for all business app cloud decisions and needs to be considered by management. This blog focuses on the aspects and differences in the cloud decision for businesses considering Dynamics 365. 

The major aspects to be considered are –

1.      Strategic
2.      Security
3.      Financial
4.      Dev Ops / Maintenance
5.      Functionality / Features


1.      Strategic – Moving the business applications to cloud is a strategic decision. There are many factors –
a.      Gain competitive advantage - IT and business users can focus more on building and supporting their core business applications and improving operations instead of managing the supporting IT infrastructure needed for on premise apps management.
b.      Go Digital faster – Going digital with business applications enable faster go to market capabilities for business and keeps them ahead of competition. Customers needs and demand change and to respond to the same it becomes imperative to embrace the cloud platform
c.      Cultural change – Once a decision is made to go online it is also important to stay online. This requires a cultural change for both IT and business ops teams. Some of the changes include embracing design thinking and agile development and delivery.
d.      Microsoft cloud – Dynamics 365 alone cannot be the consideration for going online. We also need to include Office 365 and Azure platform in the decision making.  Businesses need to be able to add and manage all 3 Microsoft cloud offerings

2.      Security – Security was a major concern when moving to the Cloud. With Azure active directory integration it enables the D365 online app to be as secure as on premise. In addition Microsoft has built data center for major countries / regions for example data center for Euro. Also data centers are created for Government agencies requiring FedRamp and Hippa supported. This make security a less of a concern than before for major business apps.

3.      Financial – CFO and Controllers make decisions on the financial aspects of going online or on premise with business apps. From a pure licensing cost basis it may look like staying on premise is the way to go. But this is deceiving. As there are other on premise costs which needs to be accounted for like – IT infrastructure support which includes the hardware, server, ongoing maintenance, services, rent…
      At the same time the cost of Cloud needs to be considered with the following - 
      1. App development
      2. IT infrastructure - upgrade / update / IT re-skilling
      3. Data migration & user training
      4. Integration


4.      Dev Ops / Maintenance – IT team have over a period of time built and fine-tuned the development and maintenance for on premise business applications. There can be multiple on premise integrations built that now may need to be moved to the Cloud. In addition there is the concern of being forced to update / upgrade every year with new release of Dynamics 365.

All the above requires a change in how the IT operations are managed. The IT teams have to be trained and re-skilled to learn new technologies like Azure. IT teams have to embrace agile development and delivery and focus on the customer benefits for each deployment (Design thinking). IT teams have to be prepared and ready for the change to be able to move and mange the business applications online.

5.      Feature / Functionality – Microsoft is going with its Cloud first mission and delivering new and advanced functionality in the Cloud. The below lists a set of functionality that is only available for Dynamics 365 online. As new capabilities gets added (especially with Azure and Cortana) and functionalities change the below list may also need to be updated.

#
In Dynamics 365 online only – as of July 2017
1
App designer and Site map designer
2
Connected Field Service (IOT)
3
Data export service
4
Customer Insights
5
Azure Cognitive Services
6
Document suggestions
7
Exchange booking integration
8
Gamification
9
Learning path
10
Mobile – with Relationship insights
-        Intune device management
-        Mobile offline
-        Task based exp.
11
Office 365 Groups
12
Portals – Partner Portal
-        Customer Portal
-        Self-Service Portals
14
Project Service Automation
15
Relationship Insights
16
Relevance Search
17
Resource scheduling optimization
18
Azure Machine Learning
-        Product recommendation
-        Knowledge base suggestion
19
Organization Insights dashboard
20
One note integration
21
3rd party S2S inbound authentication

In preview – Under development
1
Bulk data loader service
2
Cortana Integration for Sales
-        Sales Digest
-        Account overview
-        Deal overview
-        Meeting prep
3
Customer backup and restore – Azure storage
4
Linked In connector for Lead Gen
5
Relationship Analytics


As detailed above there are many factors for choosing between Dynamics 365 online or on premise. Let me know your views and experiences. Thanks for reading.


Thursday, May 11, 2017

Managing Solutions in Dynamics 365 - Part-2

As discussed in Part I of this blog, the solutions management is important for the ability to effectively maintain customization's between environments. Microsoft has provided OOTB capability to do solution versioning, patching and updating which is discussed in this blog.  


Solution segmentation / versioning.

The solution versioning can be in the following format – Major.Minor.Build.Revision
For example - AA.BB.CC.DD where,
AA = Major version #
BB = Minor version #
CC = Build #
DD = Revision #

1. Create a base solution – version 1.0.0.1

You can create a base solution in a source environment. We will include the entities and related assets, customization's…, that needs to be in the base solution. Let’s version this base solution as Release-1 version 1.0.0.1
And add the following assets –
Entity – Account – field – Account number
Entity – Contact – all assets
We can export the base solution as a managed solution and import the same into a Target environment.

2. Update base solution – Clone a Patch - version 1.0.0.2

Next lets us add a new custom entity called Hobby and add the same to the base solution. Now if we want to update the base solution we can create a patch of the base solution in Source environment.
Select the base solution and click on Clone a Patch button as shown below.


This will open another window where you can update the patch build and revision # as shown below.


Click Save.
Now there are 2 solutions, the base solution version 1.0.0.0 and a patch to the base solution version 1.0.0.1


In the source environment they will be as unmanaged solutions.
You can export the patch as a managed or unmanaged solution and import the same in the target environment where the base solution was imported. This blog will focus on deploying as managed solution.

Once a patch is created the base solution becomes a parent solution, it is locked in the source environment and no changes are allowed in the base solution. Also you cannot export the base (parent) solution from source environment.  If you delete all child patches of a parent solution, the parent solution becomes unlocked and it can be changed in the source environment.

You can create multiple patches for the base parent solution. More details on patches is given below (reference-1) -

·        A patch represents an incremental minor update to the parent solution.
·        A patch can add or update components and assets in the parent solution when installed on the target system, but it can’t delete any components or assets from the parent solution.
·        A patch can have only one parent solution, but a parent solution can have one or more patches.
·        A patch is created for unmanaged solution. You can’t create a patch for a managed solution.
·        When you export a patch to a target system, export it as a managed patch. Don’t use unmanaged patches in production environments.
·        The parent solution must be present in the target system to install a patch.
·        You can delete or update a patch.
·        If you delete a parent solution, all child patches are also deleted. The system gives you a warning message that you can’t undo the delete operation. The deletion is performed in a single transaction.
·        If one of the patches or the parent solution fails to delete, the entire transaction is rolled back.

3. Updating the solution – Cloning

Once all necessary patches are applied to a base solution you can update the solution using the Clone Solution button. Please note the following about updating solutions. (Reference-1)

·        When you clone a base solution, all child patches are rolled up into the base solution and it becomes a new version in the source environment. You can add, edit, or delete components and assets in the cloned solution.
·        A cloned solution represents a replacement of the base solution when it’s installed on the target system as a managed solution.
·        Typically, you use a cloned solution to ship a major update to the preceding solution.



Cloning a solution will combine the base solution and all the patches into an updated solution and also allow the solution version to be updated. As seen below we now have a Release 1 solution with version 1.1.0.0 in the source environment which is an upgrade of Release-1.


Now you can export the upgraded version as a managed solution and import in the Target environment.

The import process will detect this as an update and will offer the following import options.

1. Stage for upgrade – This option allows you to import the upgrade but not merge the solution with the base parent solution
2. Maintain customizations – This will allow you to maintain any unmanaged customizations in the target environment for the components in the managed solution
3. Overwrite customization's – This option will overwrite any unmanaged customization's in the target environment for the components in the managed solution


Once the update is imported the results window will show the button for applying the solution update.
You may want to not apply the solution update immediately. As this will combine the base solution and all the patches into the updated solution version 1.1.0.0.

The following figure shows the base solution with 2 patches and the upgrade solution in the target environment.


I would recommend to first do a test and make sure the customization's in the solution are all working as designed and then do the update of the solution. If there are any errors you can delete the version of the patch and the upgrade solution 1.1.0.0 and it will roll back the changes.

Once you are ok with the upgrade you can select apply solution upgrade button as shown below.


This will apply the upgrade and will update the solution to version 1.1.0.0

I hope the above helps in understanding the solution versioning, patching and updating process for managed solutions. It is important to take caution when deploying managed solution as even a small error can lead to lot of trouble. And if it is done correct, deploying managed solutions can eliminate many deployment issues and save considerable effort for the team.
.
Please do let me know your experience with managed solution and thanks for reading.

Reference-1 - MSDN - Create patches to simplify solution updates. - https://msdn.microsoft.com/en-us/library/mt593040.aspx


Monday, April 3, 2017

Monitoring Dynamics 365 using Organizational Insights

Once Dynamics 365 (CRM) is deployed to Production it becomes vital to monitor the health of the environment. Statistics that need to be monitored are - 
  • Performance - Identify any issues and be able to troubleshoot quickly
  • User adoption - Track # of users using the system 
  • Usage & storage - Track what is used and capacity
The above would have required a custom dashboard in earlier version of Dynamics CRM. In the current version 8.2 of Dynamics 365 online, Microsoft has provided an app (there is an app for that!) to help in monitoring the instance and it is available on Microsoft AppSource.

 In this blog will walk through the installation process of Organization Insights and discuss the visualization available.

How to get Organization Insights – (only for version 8.2 and above)

1. The below link is for the Org. Insights app on App source.  Make sure to log in to the App source using your System admin Office 365 account and select the Get it now button. Agree to the terms and conditions.

  1. https://appsource.microsoft.com/en-us/product/dynamics-365/mscrm.04931187-431c-415d-8777-f7f482ba8095?tab=Overview




2.  Select the correct organization and add the app to D365

3. The solution will be now seen in Installation Pending status in your Office 365 > Dynamics 365 Admin > Manage Solutions view. Confirm the solution shows as installed.


4. Once the solution status is installed in Office 365– confirm in Dynamics 365 that the managed solution is available.

5. In D365 go to > Settings > Admin > System Settings > Previews > Agree to T&C and enable Org Insights Preview. (This step may not be required in the future once Org Insights is out of preview) 


6. Now you should see the Organization Insights in Settings area 



Organizational Insights consist of dashboards (web resources) that has all the information needed to monitor, troubleshoot and track all in one place. It has the following dashboards - 

1. Home - This is the default dashboard that you can customize. You can add / remove / resize / re position the charts in this dashboard. There are currently 21 charts / views available to show on the home page. 

There are Date / Time filters also available to view different data over time. 

2. Active Usage - This contains information on the active users, api calls, CRUD operations in the specified time. 


    3. System Jobs - This dashboard provides details on the workflows & system jobs.


    4. Plug-ins dashboard - This shows the execution and performance of plugins.


    5. Storage dashboard - This shows the storage used by the tenant, instances and tables in D365.


    6. API Calls Statistics - This dashboard shows the API calls performance - useful for monitoring and troubleshooting of API calls

    

     As mentioned before Organizational Insights is a very useful tool for System Admins to monitor the performance, usage and storage of Dynamics 365 instances. For consultants it is one less thing to customize for D365.

    Hope you make use of Organizational Insights and do let me know about your experience with it.
    Keep reading !!

    Mihir Shah @MihirCRM