So much new! Doing a Sandbox Reset

There is so much new; although, there is huge value in deeply understanding all that is old. Something I really, really appreciate about the Microsoft Platform. 

Anyway, I decided with so much new that it was time to do a really clean rebuild of my CRMLady instance. I have long used this ORG for various experiments, testing, and knowledge reinforcement. I also use it to totally understand how Microsoft communicates to their CRM Online customers. I am a customer.

The ORG has been a bit beat up over the years and it was showing it's wear and tear. Data was not much of a challenge in this ORG so I decided to do a full replace and start fresh. I wanted to do this without having to create a support ticket so I did a bit of reach out and research.

Low and behold the team over at Power Objects actually have a great blog post on the subject, complete with the steps on how to reset an ORG. I love the CRM Community, so much knowledge share and empowerment!!

So the first step was I needed to switch my Production ORG to a Sandbox ORG.

I did this through the new Microsoft Online 365 Azure Administration Center (https://portal.microsoftonline.com) which now allows you to pick from a selection of administrator centers. I went to the Dynamics 365 Administrator Center, Picked Instances, picked my instance and set it to a Sandbox. Once this was done I had the ability to choose the RESET button.

 Isn't it great when you want to get something done and you can just do it without a lot of hassle? 


XRMTOOLBOX - A Microsoft Dynamics 365 resource must have!

I have recently been checking out some of the other tools in the XRMTOOLBOX. 

If you have not discovered these tools and you are a Microsoft Dynamics Consultant or Developer, you definitely want to check them out. They make many of the manually intensive configuration steps much more efficient. Take for instance the need to create a set of views. You can use the XRMTOOLBOX tools to create one view and then replicate it to the others within an entity.

The XRMToolbox also includes a very long list of cool. 

Here is a short list of some favorites:

  • Bulk Workflow Execution
  • Document Template Export
  • FetchXML Record Counter
  • Manage N:N Relationships
  • View Layout Replicator
  • Bulk Default Setting of Personal Options/User Settings
  • Duplicate Rules Mover

  


Do you know where your bottleneck is? Microsoft Dynamics 365 for CE

Now that we are running in larger data centers with the power of Microsoft Azure and with hardware technology such as solid state storage (moving away from the limitations of rotating platters) we all want to take a deep breath and make a sigh of performance joy. 

Unfortunately when you eliminate one bottleneck the data moves to the next. Additionally bottlenecks are not just hardware.

Consider a rock wall layered in a stream of water, you remove the rocks blocking the water, and the water rushes to the next barrier. The same concept applies to data. 

If you are working with millions or hundreds of thousands of data records you might want to consider:

  • Performance Tune the Microsoft SQL Server Database (SQL Server gurus can appreciate this one!)
  • Adding MS SQL Server Indexes to your largest Entities.
  • Watching out or reviewing JavaScript (JavaScript is a language that allows developers to inadvertently and easily create application bottlenecks) Luckily OOB Dynamics 365 has been deeply tested for bottlenecks continuously over the years and has continued to pass with flying colors.
  • Consider Latency (Microsoft now offers data center distributed processing for their Worldwide Dynamics Customers, reducing the trips across the oceans)
  • Understand if you have a bottleneck and where it is (Dynamics actually ships with a Diagnostic tool to check latency and bandwidth: Use https://[your crm url]/tools/diagnostics/diag.aspx  
  • If you are hosting your own environment, you can also tap into the Microsoft Professional Field Engineering teams Performance Analysis and Tuning Services (the PFE Sustainability Engineers Rock) or
  • you might consider a powerful tool such as ThousandEyes:  https://blog.thousandeyes.com/monitor-dynamics-crm-performance/ and https://www.thousandeyes.com/solutions/dynamics-365-monitoring 

What are your favorite tips and tricks for performance? 

Oh and as a last note .. there are customers processing 100,000s of data records a DAY with the Microsoft Dynamics platform. The power is incredible with a little love.

 

 

 

 


Microsoft Dynamics 365 for Customer Engagement - Search

The following table provides a brief comparison of the four available search options in Microsoft Dynamics 365 for CE. Microsoft often provides many options for achieving the same goal (just look at all you can do with Outlook!)

The link to this information and to read more https://docs.microsoft.com/en-us/dynamics365/customer-engagement/basics/search-and-find-header

Functionality

Relevance Search (Online Only, the power of Azure)

Full-text Quick Find (also called Categorized Search)

Quick Find

Advanced Find

Enabled by default?

No. An administrator must manually enable it under system settings.

No. An administrator must manually enable it under system settings.

Yes

Yes

Single-entity search scope

Not available in an entity grid. You can filter the search results by an entity on the results page.

Available in an entity grid.

Available in an entity grid.

Available in an entity grid.

Multi-entity search scope

There is no maximum limit on the number of entities you can search. Note: While there is no maximum limit on the number of entities you can search, the Record Type filter shows data for only 10 entities.

Searches up to 10 entities, grouped by an entity.

Searches up to 10 entities, grouped by an entity.

Multi-entity search not available.

Search behavior

Finds matches to any word in the search term in any field in the entity.

Finds matches to all words in the search term in one field in an entity; however, the words can be matched in any order in the field.

Finds matches as in a SQL query with “Like” clauses. You have to use the wildcard characters in the search term to search within a string. All matches must be an exact match to the search term.

Query builder where you can define search criteria for the selected record type. Can also be used to prepare data for export to Office Excel so that you analyze, summarize, or aggregate data, or create PivotTables to view your data from different perspectives.

Searchable fields

Text fields like Single Line of Text, Multiple Lines of Text, Lookups, and Option Sets. Doesn't support searching in fields of Numeric or Date data type.

All searchable fields.

All searchable fields.

All searchable fields.

Search results

Returns the search results in order of their relevance, in a single list.

For single-entity, returns the search results in an entity grid. For multi-entity, returns the search results grouped by categories, such as accounts, contacts, or leads.

For single-entity, returns the search results in an entity grid. For multi-entity, returns the search results grouped by categories, such as accounts, contacts, or leads.

Returns search results of the selected record type with the columns you have specified, in the sort order you have configured.

Wildcards (*)

Trailing wildcard supported for word completion.

Leading wildcard supported. Trailing wildcard added by default.

Leading wildcard supported. Trailing wildcard added by default.

Not supported.

 


Dynamics CRMUG FOCUS - Houston - Cracking open the brain with reminders and new tips shared.

The power of the user group is that listening to peers, experts, partners, consultants, business users, financial advisors and so many more, opens the mind to interesting ideas. 

CRM USER GROUP - FOCUS - in HOUSTON

9:49am and here are the first few tips 

1) Have you considered holding your sales team to task by using SLAs on LEADS, measuring when the lead was first contacted or when a lead reached a key milestone in the qualification stage? 

2) GOALS, so under appreciated and yet so powerful. Add goals in unique and creative ways to take full advantage of the complex hierarchy offered from this little feature. 

3) Task Flows : Originally for Mobile Only, but now embedded across the new UI. Take for instance OOB Follow-up to a meeting. A sexy dialog. 

4) DOCK your business process flow on the right side of your form so you can see the fields. Always learning, this is a cool one, although I thought a TAB approach might be useful as well. Some people like that old style form view. 

5) Did you know you can use an Out of the Box action to move a business process flow to the next stage automatically (so your user doesn't have to press next)? 

6) Has your partner added an APP or APPS to your configuration? If not, you are missing out.


In the world of Dynamics 365, configuration/customization/extension does not equal the old world assumptions of "custom software"

When thinking of the experiences or backgrounds needed for any specific project, don't let assumptions trip you up. These terms can help with your communications. 

 

 

Configuration – knowing of and Answering all the questions related to setting up the system for a specific customer. These include all the options under SETTINGs including but not limited to items such as turning on auditing, configuring number formats, turning on relevance search, setting up duplicate detection, configuring territories, setting fiscal year end and more. This is done on every Dynamics 365 project (hopefully) and there are more than 50 questions.

 

Customization – A functional consultants power to configure the system for specific business models such as renaming entities, adding entities, adding system charts, lists/views, adding workflows, creating business rules, formatting the data entry fields and forms, creating PowerApps, setting up relationships between entities and more. The term customization often waffles between configuration and extensions depending on who is using the term.

 

Extensions – extending the functionality of the system using developer resources and many, many, many different code options (.Net, C++, JavaScript, AngularJS, and about 30 more) and includes items such as creating an integration layer with queuing to manage external data integration (although this is shifting to configuration), adding new advanced features, adding advanced automation, extracting/manipulating and resaving data from numerous entities, onSave/onChange/onLoad have the data jump through hoops and blink, etc. The platform is built to be extended and extensions upgrade as they are built using a predefined best practices Software developer kit (SDK) from Microsoft.

 

The world of technology is deep and wonderful. 


Related Entity fields in Calculated Field Formulas: Microsoft Dynamics 365 for Customer Engagement v9.0.x.xxxx

Someone once asked my why "Blog" when there is so much information already available. My immediate answer: My blog is my knowledge base and if I can help others by sharing, I am going to share. 

To include fields from a parent or N:1 referential related entity in a calculated field use the following format.

entityschemaname.fieldschemaname

(replacing Entity schema name with your Entity Schema Name and replacing Field Schema Name with your Field Schema Name)

so for example if your publisher is set to use the prefix "abc" and you had a custom entity called (abc_customentity) that the account referenced you could use the following to add a number from the custom entity and a number in the account. The key is that little DOT 

Account 

Action

Set account abc_wholenumbercalc to 

abc_customentity.abc_wholenumberfield + account.abc_wholenumberfield

(where account.abc_wholenumbercalc is a calculated field and abc_customentity is the Custom Entities Schema Name and abc_wholenumberfield is the custom field schema name in the custom entity and account is the schema name of account and abc_wholenumberfield is a custom field in account)

 


Microsoft bringing the stack together

This week I presented Microsoft Dynamics 365 and Microsoft Azure for the XRMVirtual User Group. (www.xrmvirtual.com) I found this experience very uplifting for I was able to emphasize all of the great work that two very different Microsoft development teams working together have achieved. The ability to offer the right technology for the right need is so powerful and is a game changer for the line of business applications in so many different ways!! hashtagfun hashtagmicrosoftazure hashtagpresenter hashtagmicrosoftdynamics


Understanding the Maturity of a Feature

As Microsoft releases more and more features, modules and wonderful goodness into the Microsoft Dynamics 365 platform it is good to build out your understanding of the maturity of each feature. The maturity defines the number of layers of updates or changes that any given feature might have experienced as well as it's depth of functionality. You can also relate this to the version of a feature; although, the version is not always the deciding factor. It is possible to have a very mature version 1.0 feature. 

Why is this important? It helps to set the expectations of where the strengths and weaknesses are as you adopt the platform and extend the features. It also helps you understand and manage your expectations around what the speed of change will be with regards to a specific set of features. 

Extract from the people on your team who have worked with the platform for many, many years - You need to knowledge share around the age and growth of key features. It is also important to have these conversations so you can stretch all resources into considering alternative approaches including the experienced team members. Change is not only constant in this wild world of the Microsoft Stack, but it is also speeding up.

So how do we go about understanding maturity? 

As much as I would like to list every known feature in the system (I might save that for a future blog post), I think the key area to start with on each project is with a list of the features that are relevant. When working on a custom service/call center project you might not care as much about the sales automation processes or when working with an xRM or AnyRM project you might not need to be as concerned with cases and knowledge management.

So once you have a high level understanding of the areas of the platform that you want to leverage, make a quick chart of maturity.  There are a few items that you want to capture as follows:

1) When was the feature released? What version (your choices include version 1.2  all the way up to version 9.1.x.xxxx)

2) Understand how the feature or area of the platform fits within the Microsoft Roadmap. Is this a feature that is waning into deprecation or is it positioned for rapid growth? 

3) Acknowledge what the team knows about the strengths and weaknesses of the feature. A good brain sharing exercise. 

4) Understand the feature dependencies. Take for instance, Cases - Cases have a wide set of dependent entities and functionality that goes fairly deep from SLAs to Contracts to Knowledge Base(s) and Closures. 

5) Acknowledge what can and can't be configured. 

6) Understand which ISVs (third party vendors) have bundled offerings that extend the features so you know your choices. Take for instance Accounts - There are numerous offerings that validate addresses and that help with extracting data on accounts from the internet. There are also numerous social engagement offerings including Microsoft's own Microsoft Social Engagement (MSE) Offering.

7) Always keep an open mind for the way that you would solve a problem on your last project is not always the same way to solve the exact same problem on your current project. 

and lastly do a little deep diving into who on the product team or what group among the product team owns the feature set. This research is a key exercise for anyone attending one of the many conferences. Understanding or even meeting the product team who updates and extends features can help you better understand the vision and growth. 

 


SLAs. SLAs, SLAs - The simplicity and complexity of Service Level Agreements in #DYN365

Using SLA's with Cases

There are a number of features built into Microsoft Dynamics that support the configuration of an SLA associated with the Case Entity. When working with any of the features in Dynamics it is always a good idea to understand what the programming team has already created AND what the strengths, maturity and weaknesses of these features are. When it comes to SLA's and CASES there are layers on each.

Take for instance CASES. Cases are not just one simple entity, cases include both the case entity and the Case Resolution Entity. When a case is resolved, key information is captured in the case resolution entity. Each are interdependent. Additionally each offer SOME customization and SOME you can't change that. It is that "you can't change that" which generally trips people up.

SLA's also have layered complexity. An SLA has both FIRST RESPONSE and COMPLETION functionality. You will want to consider what rules you would like to use to indicate a first response and what rules you would like to consider for the completion. Technically these get applied as two separate line items within one SLA and when the system runs these line items they are two separate, but dependent system generated workflows.

I have tried configuring without using a first response and the system just doesn't like this configuration. At this time I always recommend a first response even if the first response doesn't mean much to the end user.

So to use SLA's with Cases

1) Setup your service Calendar

2) Setup your Holiday Calendar

3) Create your SLA and associate the calendars, Add your SLA Line items with both a First Response line item and a Final SLA Line Item.

Pretty Straight forward? Well not exactly for there are some tricks. The first trick is all about those working hours. The working hours in  the calendar can significantly impact the end date for your SLA. PowerObjects has a nice screen shot, by screen shot blog post on setting up the service calendar.  

Key items to consider.

  • Are your users working in different time zones?
  • Have your users configured their Personal Options?
  • Will there be different working times on different days?
  • Do you want to stick with the 24 hour clock? *most likely
  • What time zones are using the results of the SLAs?
  • Do you want your due date to be updated by the SLA?

The next item to consider is your holidays. You need to decide which holidays need to be applied to the Calendar used by the SLA and these need to be entered into the Holiday Calendar. If you have holidays from different countries a reconciliation will need to be decided upon or different SLAs for different countries.

One last trick on calendars: Both the Service Calendar and the Holiday Calendar do not deploy as part of your solutions so update your pre-deployment checklist to include creating these calendars before you deploy to any downstream environment.

3) SLA Line Items - SLA's do not like to stop on activity status = inactive and as such it is always better to find a different way to end your SLAs. On case they might be slightly happier, but on a number of different projects .. ending an SLA line item on activity status = inactive has tripped us up. Each SLA line item that is triggered against a case is reflected as a workflow on the case. The clauses that you defined based on trigger for success, warning and failure are converted in Wait and If conditions.

When it comes to out of the box configuration there are also decisions that need to be made around pausing an SLA. For instance if a CASE is put on HOLD, you can set system settings to pause the SLA. Take a look at Allan Mira's write up on how to pause an SLA on a case (again great screen shots and recreating screen shots seems a bit redundant) 

For more on using SLA's on CASE, here is a STEP by STEP by Vishal Grade.

Using SLA's with a Custom Entity

The Components that make up an SLA include

  •  Customer Service Calendar – defines the business hours to be used in the SLA calculation. A business can have multiple calendars to support different SLAs i.e. 24x7, 9-5 business days, Customer specific calendars
  • Entitlements – defines the agreed number of Cases or Time that has been contracted with the customer for support. Entitlements can only be associated to one SLA. An SLA can be associated to many Entitlements.
  • Service Configuration – define which statuses place an SLA on hold (shortcut to System Settings). Note that the pause and resume statuses apply to all SLAs and thus are not SLA specific.
  • Holiday Schedule – defines the dates that are considered holidays in a particular region. If you work in multiple regions then you may have multiple holiday schedules. Holiday schedules can be applied to the Customer Service Calendar to be observed.
  • Service Agreements – define the rules that apply to the agreement, when a SLA is triggered, when and what should occur if the SLA is successful, non-compliant or nearing non compliancy. (thanks to MVP Stephan for summarizing these in his insiders guide to SLAs post which is another great read)

BUT when configuring SLA's to work on CUSTOM Entities there are a number of other steps that also need to be configured.

1) The Custom Entity must be enabled for SLAs  (there is a checkbox on the Entity to enable SLAs) "A few words of caution! SLA needs a committed relationship. Once you have selected that checkbox and saved, (by the power vested in you by Dynamics CRM and the position of a configurator) SLA cannot be disabled for the entity."

2) The Custom Entity must have a relationships established with the SLA Entities (such as the SLAKPIInstance Entity)

3) You must use Enhanced SLA's with Custom Entities that need SLAs

 To configure the relationships for your Custom Entity with SLAs you can follow the Microsoft Customer Engagement Team's step by step. I have summarized it below, but there is more on the full post such as setting up timers and some key things to remember so I recommend you jump on other to the post.

  1. Enable the custom entity
  2. In the same Customization window, expand the SLA KPI Instance entity.
  3. Click 1: N Relationships.
  4. Click the New 1-to-Many Relationship button.
  5. Select custom <entity> in Related Entity dropdown. Here is a catch! As soon as you select custom entity in the Related Entity dropdown, the Name field gets auto populated to “new_ slakpiinstance_custom entity”. You can use it as it is, but you will face issues if you want to export the SLAs created in this org to an org that also has SLAs enabled for customentity. This is because while importing the SLAs, the system will attempt to create this relationship in the target org. Since there will be a relationship already existing in the target org, the import will fail. So it is strongly recommended to add a different name or change the name to a GUID (with underscores).
  6. Fill the Display Name to your taste
  7. Save and close

 

I have found that I still wish there was more documentation available on Microsoft Dynamics 365 SLAs. They are almost entire module unto themselves.

Happy SLA'ing!

 


NH/VT Dynamics CRMUG New England User's Group Meeting - September 27th, 2018

Come help us kick off the initial meeting of the Microsoft Dynamics 365 CRMUG NH/VT New England Chapter Meeting!

  • Where: Hanover, NH
  • When: September 27, 2018
  • Time: 10:00am - 12:00pm
  • Questions: Reach out to Anne Stanton, Evan Workin or Jeff Hudgins
  • Subject: What's new in Microsoft Dynamics 365 v9.x.x.x !

Let's deep dive on what came out in the Spring 2018 release and what is about to be released as part of the

Fall 2018 Release. We will also round table questions and share industry wide experience and knowledge.

Want to help? Invite your friends, put together your questions, create a carpool, get involved!

 


Editable Grids

Have you discovered the joy of editable grids? This feature was introduced in December of 2016. Editable grid is a custom control in Microsoft Dynamics 365. 

"You can enable editable grids at the entity level to use in the main grid, or at the form level to replace read-only sub-grids (associated grids) with an editable grid." An editable grid is similar to entering data into an Excel spreadsheet and has a number of usability benefits. For instance, users can quickly enter lots of data on different records without needing to open new windows or the editable grid usage can align to business processes that include popping in and out of Microsoft Excel.

Additionally, configuration teams can adjust what a grid looks like based on a set of parameters or data.  Editable grids also support business rules and form scripting so you can apply custom business logic according to your organization's requirements.  

If you want to learn more about how to work with and configure editable grids you can reference the following article  or if you want to see some examples of how editable grids are used this TechNet Article has some interesting use cases.


Don't forget the Glossary and the overwhelming desire to over use status fields

Project Considerations

1) Start with the concept of a glossary and agree on terminology. This seems like such a trivial concept, but has huge ramifications as the systems grow and mature. If everyone agrees on terminology then when fields are named, and option sets defined, the terminology is consistent throughout the system. In fact I know of a company that has a department that defines and manages all of the option set values in every system that they release. This three person team keeps terminology consistent not only in one application, but across all applications created for internal use.  Alignment to the bigger picture and more consistency for the entire company.

2) Now about those status fields. If the status field(s) are option sets then aligning the values to a glossary offers more common understanding.  Each option has a reason and these reasons generally align to business rules. Given the sometimes difficult nature of understanding business rules, common vocabulary can help.

There is a beauty to simplicity.

So how do you simplify complex business rules? Focus the system on the people who are using it and what they care about. Complex business rules are not complex to those who work with them every day. This is their life, so make sure that business rules align to the roles of those who need and care about them.

Eliminate noise: User's do not want to see what they do not care about. Use good definitions of security to allow the system to hide what people don't need to see. This also greatly simplifies the system for their use.

Leverage the power of the out of the box ability to segregate data by business units. Business units are all about segregating data, eliminating noise, speeding up processing and so much more and although they occasionally line up to offices, defining offices is not their primary goal.

Very, very, very carefully consider why and how many status fields you are using and determine a way for the system to manage and keep these status fields updated based on normal human day to day activities.

Understand the personality types of the users in different roles. Are these people task driven? Do they like to complete a list of things to do or are they more organic givers and workers who react to the day? Make sure the system can handle multiple styles of getting work done.

Re-evaluate and Refactor as many times as is necessary to simplify the system.

 

 

 

 

 

 


Developers? Are you ramping up as a Microsoft Dynamics 365 Guru? #msdyn365

Start at the Dynamics 365 for Customer Engagement Developer Center

The CRM Developer Center https://msdn.microsoft.com/en-us/dynamics/crm/crmdevelopercenter.aspx

Download the SDK https://www.microsoft.com/en-us/download/details.aspx?id=50032

You also have access to a full suite of training materials by logging into Customer Source https://mbs.microsoft.com/customersource/northamerica

Or if you are a partner or Microsoft employee

The Partner Learning Portal https://mbspartner.microsoft.com/Landing

 

You can also reference blogs and link lists within the world of blogs to find even more resources and training such as the Virtual XRM User Group

Lastly there are a set of YOUTUBE VIDEOS that can help, and the Microsoft Dynamics YouTube Channel

like these

XRM in a Nutshell I: Defining the Data-centric Business Application built using Dynamics CRM https://www.youtube.com/watch?v=XbmYhAy3ouM 

and this one https://www.youtube.com/watch?v=G_WPaHZZk7k

And this one https://www.youtube.com/watch?v=L7MRO7ttRIM


Q101: What are my options with regards to Microsoft Dynamics 365 for Customer Engagement Online Administrator and administrator roles. Is there a role that is not Azure Global Administrator?

What are my options with regards to Microsoft Dynamics 365 for Customer Engagement Online Administrator and administrator roles. Is there a role that is not Azure Global Administrator?

“You can now assign a Microsoft Dynamics 365 (online) administrator at the tenant level, in the same way that you manage other Office 365 services such as Exchange, Skype, and SharePoint. The new Dynamics 365 (online) administrator role can manage instances, do Dynamics 365 system admin functions, and access the Dynamics 365 application if they are licensed to use Dynamics 365” https://roadmap.dynamics.com/#application=326f31ea-2992-e611-80dc-c4346bac0910


Q100: How many instances per Tenant? #MSDYN365CE

It is time for a series of questions with answers, because for some reason sometimes the hardest information to find is the answer to simple questions

How many instances can be included in a single Microsoft Dynamics 365 for Customer Engagement Online Tenant?

A tenant can include up to 50 Dynamics 365 (online) production instances and up to 75 non-production (Sandbox) instances. https://technet.microsoft.com/en-us/library/dn722373.aspx


Oh Internet Explore

If you have started having difficulty with Microsoft Dynamics CRM or Microsoft Dynamics 365 for Customer Engagement and you are using Internet Explore v11 then you want to make sure you have the latest KBs. The March 20th updates broke a few things, the March 27th updates fixed these.

For Windows 8.1 and 7 SP1 Users

KB4016446 - https://support.microsoft.com/en-us/help/4016446

KB4016446 Download Link - http://www.catalog.update.microsoft.com/search.aspx?q=KB4016446

For Windows 10 users search the catalog for

Windows 10

http://www.catalog.update.microsoft.com/search.aspx?q=KB4016635 

If you have other Internet Explorer Issues then you might want to walk through this set of Articles.

Compatibility Settings https://support.microsoft.com/en-us/help/3124955/compatibility-with-microsoft-dynamics-crm-2016

Internet Explorer: Web application requirements for Microsoft Dynamics 365 https://technet.microsoft.com/en-us/library/hh699710.aspx

Internet Explorer: FAQ for IT Pros https://technet.microsoft.com/itpro/internet-explorer/ie11-faq/faq-for-it-pros-ie11

Microsoft Edge Deployment Guide for IT Pros https://technet.microsoft.com/itpro/microsoft-edge/index

Compatibility Changes in IE 11 https://msdn.microsoft.com/library/bg182625(v=vs.85).aspx

 

 


Extending and Developing with the Microsoft Dynamics 365 Platform - PART II

If you like video

How about Building an xRM (Anything Relationship Management) Solution in a three part video series.

https://blogs.msdn.microsoft.com/crm/2015/11/25/building-xrm-solutions-a-three-part-video-series/

AND Does your Enterprise have access to http://www.pluralsight.com?

Well there are some awesome Dynamics developer classes via plural sight, put together and released by David Yack.

You can start here

 


Extending and Developing with the Microsoft Dynamics 365 Platform

One place to look for information regarding leveraging the Microsoft Dynamics 365 PLATFORM is in the Microsoft Dynamics Software Developer Toolkit (SDK). The Microsoft development teams have included a wealth of samples, knowledge and tips inside the SDK.

With Microsoft Dynamics 365 we have  three areas to consider and this post is about the third

1) Configuration : Walking through a series of questions found in the settings section (Business, Admin, Data, Services, etc.) of the platform, you can change how the system reacts based on your answers.

2) Customization : Using a business interface add new tables, fields, views, charts, dashboards and data entry forms.  

3) Extension : Writing additional code to extend the powerful Dynamics 365 Platform to meet even more business needs.

 So what are some of the resources available to you and things to consider when it comes to Extending the Microsoft Dynamics 365 platform.

Microsoft Dynamics 365 Developers Center

Microsoft Dynamics 365 Visual Studio Development Toolkit

A Community Alternative to the Visual Studio Development Toolkit for Dynamics 365

AND BECAUSE you want to write the absolute BEST extensions possible, and you want it to be something that any other Dynamics developer can praise, you also tap into the following community shared wonderful practices shared by Minal:

http://minaldahiya.blogspot.be/2016/03/coding-standards-for-dynamics-crm.html?spref=tw

Microsoft Dynamics 365 Development Best Practices

xRM Best Practices

 

 


Microsoft Envision Business and Networking Event: Join the Wave of Digital Transformation

You have heard the buzz about Microsoft Dynamics 365, but you are not really sure what it is all about. Is it Customer Relationship Management (CRM) or Enterprise Resource Planning (ERP) or something in between or better yet something beyond?

You are thinking that perhaps you have or are using applications that are holding you back, that need to be upgraded or replaced. You are perhaps reconsidering what you are getting out of the technology you currently have. You want to leverage more of the power of the cloud and more from the latest and greatest technologies. You want to be empowered by technology to help you make even more business decisions.

You can start planning now to attend Microsoft Envision the week of September 25, 2017.

Microsoft Envision

Book your tickets to Orlando, FL! Start thinking about interviewing and aligning the right internal and external people and teams for your project. Think about your business processes and at a minimum start documenting what you do today and what you want to be doing tomorrow. Pick the right product, one that can grow with you and can be configured AND extended to meet your needs. Honor the three People, Product and Processes to a successful project.

Come Swim in the Sun in Orlando!

And think about these awesome words from the Microsoft Envision Website

Longevity in this business is about being able to reinvent yourself or invent the future.” Satya Nadella, CEO, Microsoft

 


Application Performance: Everyone's Worry

A bottleneck (in the world of data) is a point where the flow of data is restricted or stopped entirely. When you remove one bottleneck, the data then flows until it hits the next bottlenecks.

Many people assume that bottlenecks are caused by hardware. It is true that SOME Bottlenecks are caused by hardware, but you can also find and create application bottlenecks or database bottlenecks. You can create bottlenecks with hard drives or cables or  JavaScript or C# .. There are many ways in which bottlenecks can be created.

The challenge is then to find your bottlenecks, eliminating each and then eliminating the ones that you find once the upstream bottlenecks are removed.

Ideally you want to move the bottleneck to the point where it is simply hitting  how fast a user can work.

So where do we start?

One starting place is to prove that Microsoft Dynamics CRM does not have an application bottleneck. To do this a subset of awesome people did some testing on Microsoft Dynamics CRM Online. They published their findings in this new White Paper: Microsoft Dynamics CRM Online 2016 Update 1 Performance Benchmark 

Take a Look


The Power of Zzzzz's : Keeping a clean house

ZDoNotUse - (original name) 

ZToBeDeleted - (original name)

ZNotinUse - (original name)

ZDepreciated - (original name)

The power of the Z's. Why Z? When you tag a field with the first letter Z and your sort alphabetically the field or entity or view or chart or dashboard appears at the bottom of the list.

When you browse field in Advanced find, the fields starting with Z appear at the bottom of the list and when you are looking to do a quick cleanup, having all fields you want to delete start with Z can make life just a little bit easier.

So why would you flag a field ZToBeDeleted - (original name)? Why not just delete the field?

Well, if you have not experienced this first hand, Microsoft Dynamics 365 Build and Release processes MERGE, so if you delete a field in your development environment and you don't delete that field in your test environment, then the field will still exist after your build and release.

It should be noted that there are MANY different types of builds and releases and managed solutions bring a different dimension into this conversation, so let's just assume unmanaged solutions and manual build and release (for the sake of this conversation)

If you train your team to name every field that needs to be depreciated ZToBeDeleted - (original name) and you define a process where you then delete these in batch in ALL environments, then you can save yourself numerous hours of detective work.

The other tidbit is to mark any fields that are labeled with a Zxxxx - (original name) with an unchecked SEARCHABLE AND the awesome team at Microsoft slipped in a little handy trick for doing this quickly. You can now select a set of fields and use BULK EDIT to change three things.

1) AUDIT Yes/No

2) SEARCHABLE Yes/No

3) REQUIRED Yes/No

  Bulk Edit

 


Editable Grids

So it has been two months since Editable Grids were released (approximately) and there was a great wave of HURRAY's at the time.

For those online, just another awesome plus added to your environment.

For those on premise, it is time to move! Technology is moving too fast not to get into the fast lane so you can help your business stay always current with the latest and greatest options.

If you want to read more about editable grids, Sonoma Partners has a great little write up


Microsoft Dynamics 365 Software as a Service with Bling (updates/Service Packs in addition to the drip changes)

In my last post I talked about keeping up with what's coming (https://roadmap.dynamics.com) but I want to talk a little bit more about how I keep up.

One of the tricks is to know and understand the real versioning or the back channel versioning that you can see when you select HELP/ABOUT in the software.

Microsoft Dynamics 365 actually includes all features/functions/updates/service packs of version 8.2.x.xxxx

So consider the growth from the last numerous years 

v1.0.0.0

  • v1.2.0.0
  • v2.0.0.0
  • v3.0.0.0
  • v4.0.0.0
  • v5.0.0.0
  • v6.0.0.0
  • v7.0.0.0
  • v8.0.0.0
  • Etc 

and all the version in between and now we are at v8.2.0.000

 The Microsoft Dynamics team recently posted more insight on this concept of Updates in the following post

https://blogs.msdn.microsoft.com/crminthefield/2017/02/01/podcast-and-overview-december-2016-update-for-dynamics-365-aka-microsoft-dynamics-crm-2016-update-2-0-service-pack-2/ 


Dynamics 365 Growth and well WOW!

I have been working at Microsoft now for four and half years and one of the most awesome benefits of this is the learning culture and we get to attend TechReady and/or watch TechReadyTV. This is a time when internal resources are ramped up on all the latest and greatest and get opportunities to mix and mingle with the various product team members, program managers, visionaries, architects and more. We also get to get our questions answered and to build powerful relationships that help as we work with our clients. Go OneMicrosoft.

So I can't talk about the details, but I can tell you that: Well WOW, you will not believe what is coming on the Dynamics platform and this is also motivation to go look at what was just released in December 2016.

The increased internal recognition and appreciation for Microsoft Dynamics 365 as a powerful line of business application platform and the investment in adding to the platform in the same, great supported manner, just continues to blow me away. I also LOVE, LOVE, LOVE how closely the Dynamics R&D Team members are working with the other R&D teams, like the AZURE Teams and the Office 365  teams and so much more. 

The platform power together and the speed in which it is growing (major options every 6 months), just sends shivers down my back.

 You can keep your eye on the growth at https://roadmap.dynamics.com

Put your learning hat on and Embrace the change and growth.


The team behind Microsoft Dynamics 365 makes time to share (#msdyn365)

The team behind Dynamics 365 makes time to share, but some times goodies slip under the bridge and out of site. This post is to raise awareness of the CRM Team Blog and some f the goodies on GitHub for cool shares.

Take for instance this post from the awesome Jim Daly!

"I’m pleased to announce we have published two new mobile samples to GitHub.

Both of these samples demonstrate the same ActivityTracker functionality provided by earlier samples. They have been updated to use the Dynamics CRM Web API and they support iOS9 and Android 6 platforms. The iOS application is written using Swift 2, rather than Objective C.

ActivityTracker is a reference scenario for the sample apps. ActivityTracker helps a user quickly search for contacts, access recent contacts and easily report ‘check-in’ activities in CRM. It is designed for sales and customer service professionals to quickly access and update information on the go. With the published source code, the app can be easily modified by developers for your own scenarios and requirements.

For both samples, you will find complete instructions about how to build the sample applications. Find them here:

https://github.com/DynamicsCRM/iOS-Activity-Tracker-for-Dynamics-CRM-Web-API

https://github.com/DynamicsCRM/Android-Activity-Tracker-for-Dynamics-CRM-Web-API

Learn more at https://msdn.microsoft.com/dynamics/crm/mobilesdk.  "


Are you ready to exceed the expectations of the 72% of customers who expect a response to a complaint in under 1 hour?

Are you ready to  exceed the expectations of the 72% of customers who expect a response to a posted complaint in under 1 hour?

Thanks to one of my associates, Nick Fratello, for taking the time and energy to put this little video together which shows how to

  • Listen & engage customers on popular social channels
  • Understand customer's sentiment & intent toward your brand and organization
  • Escalate & resolve customer care issues consistently
  • Collect customer feedback & measure results
  • Transform customers into Fans

Dynamics CRM is not just C or X Relationship Management (CRM or xRM) anymore and as such the expansion to Microsoft Dynamics 365!

Microsoft Dynamics 365 is PACKED with powerful features that are fully configurable and can also be extended. Additionally a huge amount of resources, talent and energy are going into adding even more. If you want to keep up with the Microsoft Dynamics Development teams keep an eye on both the development team blogs and on the official Microsoft Dynamics Roadmap

Dynamics CRM is not just C or X Relationship Management (CRM or xRM) anymore and as such the expansion to Microsoft Dynamics 365!


Team: Prescribed vs. Defined

I must be getting old for I am having more of the Carousel experiences of life. 

Take for instance that one of the benefits of getting older is that you get to walk into situations where you have been before. You have multiple similar experiences to draw from based on many other projects. It is a gift to clients, because some processes that are less efficient can be avoided and they get more cream of the crop (potentially).

So the thought of the day?

When defining user stories, gathering requirements, detailing out the current processes of the day. Think really, really hard about defining the specific issues, problems and current state without including the solution.

Ideally what you want is a team solution. A solution that pulls from the experiences of all members of the team. This is harder than it sounds, because it requires that each person really listens to and understands the full scope of the problem. It then requires that the team jointly agrees on the issue or problems and once agreed, solutioning can begin.

Solutioning will need to include the technical best choices and training among the team on the strengths and weakness as well as the business best choices.

Now in an ideal world this would all be done with any egos parked at the door, but rarely is this the reality. People have strong opinions. Humans are designed to compete or culturally trained to compete and thoughts outside of the comfort zones, make people uncomfortable. Mix in the awesome power of diversity and the energy can get very confused.

YET when this energy is aligned and diversity and multiple opinions come together as one. Amazing happens.

So keep stretching for Amazing  and keep learning, because the more we push ourselves to learn outside our comfort zones, the more we learn to listen and hear and the more we learn to share, the better the experiences will be!


Automatic Testing and Dynamics in the world of CRM

Automatic testing is a bit of a niche skill and every application is different in terms of what is needed or what tools can be used. In this situation I depend on knowledge shared, because there is absolutely no reason that we can't learn from each other. Following please find some notes from the field on Microsoft Dynamics "CRM" Automated Testing

Knowledge shared is a powerful skill in the world of technology. It requires that you admit that you might be wrong, that you might have more to learn and that being vulnerable is worth the risk. Yes, it is very much worth the risk in this crazy fast paced world of growth.

 

Tools that the field mentioned:

Sessions discussing Automated Testing

Other Videos in this arena

 

 


Virginia, Maryland and Washington D.C. Dynamics Users (CRMUG)

There is nothing like connecting with other people who are using Microsoft Dynamics CRM and the best way to do this is to get involved in the Dynamics Communities.

How do you get started? Check out http://www.crmug.com and signup for the upcoming local chapter meeting

The next meeting in Virginia, Maryland and Washington D.C. Area is on November 16 at the Cobalt Office in Alexandria. Full Details and registration here. This is a special meeting and it is in Virginia. 

Most meetings in the D.C area are in the Microsoft Chevy Chase Office and if you want specific chapter information check out: http://www.crmug.com/washington


SLAs are not just for Service anymore - CRMOnline v8.1.X.xxxx

You now have the capability to use service level agreements (SLAs) for entities apart from Case

OH You are not using SLA's for cases yet either ... Well .. they are a unique learning area and you need to understand the strengths and version 1.0 variables. So tune up the grey matter and take a look at some of the following posts.

How to Configure SLAs

Enable Entities for SLAs

Add a Timer to Forms

Configuring SLA Timers

Enhanced SLAs and Entitlements


Microsoft Social Engagement: Empower Each Individual and listen to your own sources

The awesome Jesper Osgaard has a great write up on how MSE has met the much demanded need to listen to RSS and Atom Feeds ..

Listen to custom sources in Microsoft Social Engagement

"Custom sources offer a way to get additional data from your favorite public RSS and Atom feeds. You can create search topic rules and filters to gain further insight into all your sources"

 

Is it time to listen to what is being said about your company?


Knowledge Management : KB Articles in Microsoft CRM

A few resources to ramp up on all that is new in Knowledge Management in Microsoft CRM 8.1.0.00xx (2016 Spring Release)

Dynamics CRM Knowledge Management by the Microsoft EMEA Support Team

New Knowledge Management Features Introduced by the Microsoft Product Team

New Customer Service Features in CRM 2016 discussed by MSDynamicsWorld

Tip of the Day Video (series): CRM Knowledge Articles

One Minute Overview Video on Knowledge Articles

Streamline Knowledge Management in Microsoft CRM Video

You will also want to ramp up on the new Interactive Service Hub (ISH) which offers even more access to the wealth of data in Microsoft CRM.

Tip of the Day : Interactive Service Hub

Overview of the Interactive Service Hub

Working with Cases in the Interactive Service Hub

 

 


Keeping a Clean House: Sometimes it is about the data

Microsoft CRM supports tracking of e-mail messages and e-mail messages often come with attachments. If you want to prevent Microsoft CRM from storing an e-mails attachments you can set the file size within Configuration to 0.

What if you don't want to block all attachments or what if you inherited a system that has a ton of attachments stored in the database?

You can purge e-mail attachments from the CRM Database.

Take a look at the EMEA Support Teams Blog Post on the subject for more.

Kids-cleaning


Building a Demonstration Environments : Data

Microsoft CRM is tightly married to Microsoft Excel and as such some of the EXCEL functions can come in very handy.

When putting together a demonstration system check out the RANDBETWEEN() Function for generating random numbers in Excel. It can also be used for randomly picking values from a list and many other derivatives.  

 


Associating "One Knowledge Base Article" to a Case based on Case Type

In Microsoft CRM you can have many knowledge base articles associated to a case, but what if you wanted to always associate a specific article to a specific case based on the type of case?

This can be done using CONFIGURATION.

Create a new N:1  relationship between Case and Article. This sets up the field for the CASE form to associate 1 article to the case. Once the relationship is configured, add the relationship to the CASE form of your choice.

Most likely you don't want to select and pick the article when you create the case (although that is an option), but rather you want the system to automatically associate the article based on the case type.

To do this you would add a process of type workflow that looks at the case type and appends the article you indicate. It is important to realize that an article can not be appended to the case until the case is created and as such the order in which the workflow fires is a variable.

Items to Consider

  1. The Security on Case and Article might need to be updated to support Append and Append To.
  2. The Case Types might need to be expanded to cover all case types needed.
  3. The Articles should be created before you create the workflow so that you can pick the article you want to associate.
  4. CRM 8.1.0.00xx has three different knowledge base article entities as depreciation occurs so understanding which article to use is helpful.
  5. Workflows can be ASYNC or SYNCHRONOUS and each have their own strengths. In this situation there are advantages to ASYNC because of the timing of case save.

Out of the Box (OOB) Microsoft Customer Relationship Managment (CRM)

If you don't know what you get out of the box, then you might be inclined to ignore all the greatness and create your own entities. This is an option, but what it tends to bypass are all of the OOB integrations and small enhancements that offer some incredible power.

Take for instance "Case" and "Case Resolution" These two entities are a married pair. The first tracks the incoming details on any specific case and the second tracks all of the different derivatives of the resolution to that case.

For instance a case can be cancelled with a reason or it can be completed with a failure or a success.

It should be noted that when closing a case, the configuration offers choices. The status reasons can be modified for each Status of ACTIVE and INACTIVE.  

Status Active - Status Reasons

Status Resolved - Status Reasons Status Cancelled - Status Reasons

 


Scoring and Assigning Complexity

Microsoft CRM and Calculate Fields offers some real power for adding scoring to a specific record.

Take for instance a situation where five different departments work on a specific opportunity. You can configure the system so that each department adds a score to the opportunity record, such as a value from 1 (great fit) to 5 (Gaps), and the system can then add up these five scores and give the opportunity a more realistic probability for close.

  • Department 1 Score (1-5):  2
  • Department 2 Score (1-5): 3
  • Department 3 Score (1-5): 4
  • Department 4 Score (1-5): 1
  • Department 5 Score (1-5): 5

Total Score : (Calculated by the System) 15

Now tie the 15 to a business rule that sets the opportunity to Hot Fit (Red), Warm fit (Orange), Cold Fit (Blue)

If Total Score =>1 and <=5 then set Opportunity Fit to "Hot Fit (Red)"

If Total Score >5 and <=15 then set Opportunity FIt to "Warm Fit (Orange)"

If Total Score >15 and <=25 then set Opportunity Fit to "Cold Fit (Blue)"

 You can even set the "colors" on the option set values for some super cool feature growth ...


Field One: The Mobile Workforce and Microsoft CRM

Did you know there are more field services technicians in the US then sales people in the entire world?

Field One took Microsoft CRM and mastered the platform. What does this really mean? Mastering the platform?

Microsoft CRM as a platform is a parallel growth paradigm. The product grows and matures every day as the developers on the Microsoft teams build, define, refine and release while the teams (external partners, ISVs, other resources) building extended solutions are doing the same. Each team must work closely with the vision of today and the visions of the future. Decisions are not just meeting a requirement or request, they are meeting a requirement or a request in a manner that fits into this parallel growth.

Field One Mastery (now under the Microsoft Umbrella) continues to offer incredible, already mastered, solutions to some of the most complex field services organizations.   

  • Resource Management
  • Complex Scheduling
  • Durations
  • Territories
  • Mobile
  • Routing
  • Modern
  • and so much more

   So what do the developers work on, if the above is already so well matured and defined?

Oh there is so much more that just flows into what you have as time goes one.

Consider the Microsoft Platform and all that is available.

Consider Machine Learning and Predictive analysis and the speed in which Microsoft Azure offerings are growing. Consider Microsoft Portal and Microsoft Project Services within CRM  and, and, and ....

So if you have not taken a few minutes to start thinking about Field Services then perhaps it is time to start? Take a look at Field One.

FieldOne-Sky-devices-medium


Learning, Learning, Learning: 5 Features of Microsoft Dynamics CRM v8.1.0.xxx (Spring 2016 Release) to think on

Learning, Learning, Learning

5 Features in Microsoft Dynamics CRM 8.1.0.xxxx (aka CRM 2016 Spring Release) to think on

1) INTERACTIVE:  The new interactive experience offers  redesigned forms  that help users experience CRM in a whole new way. This is a new interface with new potential so if you have been working with Dynamics CRM for years you will want to expand your thinking and your back pocket of options. You don't have to delete how you use to do things, you just have even more options to meet the demands of today. Start by looking at the configuration of your system. Look within your CRM Solution and the settings on each entity. You will see  Options for Entity. (step one for your new road of enlightenment)Options for Entity - Interactive 2016 SpringConsider this summary from the CRM Help and Training Guide (there is help and training available)

  • "The customer card in the forms gives a complete view of your customer’s touch points
  • The timeline gives a unified view of your customer’s interactions across channels, and lets you act on them quickly
  • The related pane lets you search and act on related records without losing context of customer data and interactions"

Interactive Hub - Spring 2016

 

 

2) C O L O R S: Sometimes Themes and Colors really make a HUGE difference, people like colors. So when you dive into your configuration and you are looking at your entities understand that you have a number of layers of different options when it comes to themes and colors. For CRMOL users there are theme settings for the whole system in https://portal.office.com and for all CONFIGURATION users there are color settings on entities and layered throughout. You can go as deep as setting colors on values in option sets and oh you can have so much fun!

 Color Codes - 2016 spring

Colors on Option Sets Spring 2016

 

3) CHANGE TRACKING: Not as new as Spring 2016, but new enough to mention that it exists and what it is given that they slipped it in without too much fanfare. This is a new option in the SDK that allows a developer to tap into a drip feed of changes for integration into other systems and other cool developer type techniques.  A NEW SDK feature that is worthy of understanding. You can enable change tracking on a specific entity or on all entities. To read more on change tracking tap into the CRM DEVELOPER CENTER. Change Tracking Spring 2016
4) SOLUTIONS: When adding ENTITIES to Solutions, when in doubt or if you have not learned the strengths and yet to be matured areas of the new solution options then  CHECK the ADD ALL ASSETS option.

Add All Assets Spring 2016

 

5) Discover PROJECT SERVICES: a managed solution available from the Microsoft Dynamics CRM team that offers incredibly deep resource management and project alignment. Gone are the days of using the external Microsoft Project software for CRM projects - USE CRM ! Your entire project team will get hands on day to day use of the software they are deploying for their customer.

Project Services - Spring 2016


Microsoft Dynamics CRM and the Outlook Client

One of my greatest passions is helping and learning. Today as I walked the bridges of information helping where I can and learning, I discovered a few new links that are worth tucking into your CRM back pocket.  

There is a new tool in town for solving the complexity of issues in this world of many, many  different applications and just as many versions of applications and operating systems.

Enhancements have been released to last months announcement regarding the

announced release of a CRM diagnostic scenario included in the

Microsoft Support and Recovery Assistant (SaRA)

So take a stroll and learn a little and along the way pay it forward.  


Five CRM Thoughts

1. Workflows can be REAL TIME (Synchronous) or ALMOST REAL TIME (asynchronous) and if you are a business user creating workflows you want to coordinate the timing. In the world of plugins and extensions timing coordination of steps is all part of the job, but in the world of workflows sometimes it is easy to forget about what we are really asking for.

2. Deleting and Cleanup in the world of customization and multiple environments are a specialized thought process. The system supports a merge mindset so when you want to do cleanup (and you are using unmanaged solutions) you want to make sure you cleanup all your environments. I like to use the technique of naming fields, business rules, forms, views and other such configurations in DEV with a prefix of something like ZToBeDeleted so that after a deployment to TEST and PRODUCTION it is easy to do house cleaning.

3. You are not the only one extending and configuring. Coordination equals huge successes and incredible power and depth. It is a product that is always evolving from the power and insight of the incredible team at Microsoft and then there are the other new features that are purchased, reviewed, updated, coordinated and released. If you are writing unsupported code you are asking for headaches OR if your hired gun is writing unsupported code. Take the time to get it done right. Take the time to vet your resources. A low hourly rate does not mean long term reduction in cost.

4. Software as a Service (SaaS) in the world of Dynamics CRM means that you are continuously getting the chance to improve your businesses cutting edge differentiator through the use of the newest technology and business techniques. Get the Learning Mindset and embrace the wave while also taking bite sized, very manageable growth steps forward. Setup your environment so you have a DEV, TEST and PRODUCTION instance so that you can have DEV upgraded first, then TEST (with a release to TEST and Regression Testing) and then roll to production. For smaller firms perhaps only two instances, but always give yourself that learning arena for the larger feature releases.

5. Just because it looks pretty, and has a really cheap initial price does not mean that you won't be paying more in the long run. In the world of ONLINE and the CLOUD do your research with other customers. Understand the 1, 2 and 3 year average costs and understand what you get for the money. The models can be very different.  There are hundreds of applications that can be replaced by Dynamics CRM and with the right resources (trained helps) the price is right. Just because Access and Excel are available with office, doesn't mean they are the right solution for a multi-user environment where people need to share real time data across many different devices. Oh and then there is the Out of the Box integration to the Office 365, SharePoint, Microsoft Excel E-Mail, and so much more. 

It really is mind blowing.....