Implementing Enterprise Search in Microsoft Dynamics
- Posted on July 10, 2019
Building a better enterprise search experience
Providing good search capabilities is a key feature in modern business applications to support usability and end user satisfaction. We have seen how the search capabilities of the Microsoft Dynamics platform has evolved from providing "Quick Search" and "Advanced Find" to "Relevance Search". The goal of the platform search features has been to support users to find the relevant information they need in the quickest and easiest way possible. These search features are out-of-the-box and easy to enable, configure, and use. As the platform progresses to offer richer features to users and enable them to search with more precision, the demand for richer and better search techniques growing. We see instances where the platform capabilities cannot meet user demands solely with its out-of-the-box capabilities. Before going further about advanced search scenarios, you can read about the platform out-of-the-box search capabilities in this official documentation. In this post, I’ll share why we may decide to implement a search solution of our Dynamics solution using Azure Search Service.
Search Enterprise Data Store
In enterprise implementations, business applications are not the only systems used in the organization. We often see call center agents and sales representatives who need to obtain their required information from various systems to serve customers. Searching users in every system is a cumbersome job which may cause setbacks in end-user adoption. Integrating Dynamics with Azure search offers consolidation of search operations in one specialized search service with the ability to connect to various data sources and apply modern search techniques to find the most relevant data. A practical example of this scenario can be seen in one of my recent experiences where the organization’s users had to search for user information across CRM, SharePoint, Sybase and a pool of CSV files.
Customized Search Experience
To facilitate more user adoption, using customized search techniques is highly favorable. In all modern search engines, we see use of "Auto complete", "Suggestions" and "highlighting" features which can be added to the Dynamics solutions search experience. Displaying search results by support of "Document Preview", "Document Opening in a customized containers", "Facets", "Filter" and "Sorting" are examples of ways that enhance your Dynamics solution's capabilities.
Customized Search Behavior
The true power of search is demonstrated when different pieces of information are linked together to make sense of a bigger picture. Extracting words and sentences from documents including images and PDF files, extracting key phrases, people’s names, location names, languages and other custom entities with the help of AI is another unique feature that you can add to your Dynamics's search capabilities. Another amazing search capability you can have in your Dynamics implementation is the ability to search based on geolocation information, i.e. you can search for all your partner network from CRM or get the location of your field service force. The beauty of implementing your own enterprise search lies in the fact that you can search information in your data stores and link them using AI to generate knowledge and better insight to your data.
Customized Search Result
Customized search in your Dynamics solution gives you the ability to refine your search result profile. When you use AI in your search, the system gives you the power to see how relevant search results are in relation to your search keywords. By knowing this, you can refine your search profiles to generate a different result for the same keywords. This way you train the AI engine to work better for you and enable users to get more accurate search results.
Dynamics integration with Azure Search service can be integrated by taking the following steps:
- Integration through web resources: These web resources will host a web application acting as a client to the search service. The web resource can be an HTML file or an iFrame hosted on forms. The important point in this approach is to ensure cross-origin settings in the client application and writing your html in a secure way and according to best practices.
- Integration through custom power platform controls: You may build your own custom control which sends REST requests to the Azure Search and displays results by consuming REST responses. The custom control can call Azure Search services using Actions or direct REST calls to Azure Service.
- Push CRM searchable data: Azure Search works based on indexes and your first step is to push your CRM searchable data to Azure Search indexes. This can be done using Microsoft Flow, Microsoft App Logics, custom solutions or Azure Data Factory. I have used all these tools in my implementations, and you can opt to any of these tools based on your requirements.
- Create indexes in Azure Search: Once the data is in your data store, you can create your indexes in the Azure Search. You can go for separate indexes for each data source or combine multiple data sources in one index. Each approach has its own requirements which will need to be met either in your client web application or a separate Azure compute resource. Once indexing is done, you can use Azure Search Rest API directly or use Azure API management to expose your search service to your Dynamics solution.
Summing these all up, it is apparent that as business application products get more sophisticated and organizations move from data to Big Data, engineers now must look for innovative approaches to implement Dynamics solutions. Microsoft Azure, along with the Dynamics platform, offers the necessary tools to solution architects to design such solutions. If you’d like to learn more about driving better search experiences with Microsoft Dynamics, connect with our award-winning experts.