Dynamics 365 Customer Engagement Application Portability

The Customer Engagement Application, formerly Microsoft Portals (and before that, ADXStudio Portals) is a Software-As-Service (SAS) web application run by Microsoft in the Cloud. It utilizes Microsoft CRM as the persistence layer for business data and application metadata. The latter defines the web application's look, feel, behavior, and restrictions. Deployment of such Portals in version-controlled scenarios may present substantial challenges that prevent efficient testing of the target environments and make it problematic to roll back any deployed changes. In today's blog, we will review the issues, available tools, and options to solve the task, as well as detail the methodology of achieving positive results.

Let's start by discussing the challenges. Typical Portal deployment consists of three steps:

  1. Deployment of Portal solutions into the target CRM
  2. Deployment of business customizations related to the Portal (entities, forms, views, option sets)
  3. Transfer of the data stored in Portal-related entities

In the typical scenario, Microsoft provides step #1 by installing a new Portal into the target CRM instance. Once this is done, Microsoft also populates Portal configuration entities with sample data and makes a Portal available for modification. This approach assumes a single production environment and does not imply any development anywhere other than the target CRM. Such development may involve business customizations to the CRM objects, as well as modification and expansion of the Portal configuration data.

In the development workflow, where any business customizations are done in DEV environment and then ported to the target PROD or QA CRM, Step #2 above is managed consistently and presents no challenge. However, in case when both source and target CRM environments are bound with appropriate SAS Portal applications, any development related to the source Portal represents data that requires transfer to the target CRM, presenting the following challenges:

Now, let's discuss our options. Presently, there are only two tools available to transfer Portal data:

Next, let's examine our solution. The happy path for Portal data deployment must follow this sequence of events:

  1. In the target environment, the Portal record is renamed for archival purposes and to avoid name collision with the new Portal.
  2. The source data is extracted and stored into a file.
  3. In the source data file, all GUIDs identifying Portal records are replaced with the new ones to avoid collision with any of the target entities.
  4. The modified source data is imported to the target CRM – the new Portal record and dependent data set is created.
  5. In the target environment, the Portal SAS application is switched from the archived Portal record to the newly imported one.
  6. If testing of the new Portal is failing, the SAS application may be switched back to the archived Portal record.

Step #3 is a simple regular expression replacement of an existing found GUID. For example:

[a-fA-F0-9]{8}-([a-fA-F0-9]{4}-){3}[a-fA-F0-9]{12}

However, we must not forget that many unique record identifiers may be referenced multiple times within the data source file (linked entities), and such repeating GUIDs must be replaced with the same new GUID as the first one met. A further complication is related to the fact that we want to replace only GUIDs defined as record IDs in the data file, not the GUIDs that are referenced only: this is because many records refer to the entities outside the scope of contents of the Portal schema.

The solution is a simple command-line tool developed internally as a universal Reg-ex replacer with default patterns searching for record IDs, building a dictionary for those mapping them to the new GUIDs, then replacing all GUIDs in the file according to the dictionary. Those GUIDs not in the dictionary are not replaced.

This tool had produced a data file that, when imported, creates all brand-new target Portal entities and all brand-new dependent entities, while any of the imported entities linked to existing data outside of the Portal schema stay properly linked.

Since the new record set is created in the target environment, there is no issue with deleting obsolete configuration records: those stay linked to the archived versions of configurations and will be deleted automatically when the old Portal records are purged.

The only insubstantial complication in the suggested deployment process is related to the contacts assigned with the web roles. We are not porting or updating the contacts during deployment. We cannot assume that the contacts in the target environment will match those from the source. So, the web role assignments will be lost if we attempt to transfer them. For the purpose of clean data transition, it is recommended to drop all web role assignments in the source environment prior to exporting the Portal data. Those assignments may be backed-up before and restored in the source later to maintain the ability to unit-test in DEV.

In summary, with a simple command-line tool developed internally, we can use the standard CRM Configuration Migration application to transfer the Portal data from the source environment to the target in such a way that the new Portal record and dependent child records are created, making it available for SAS application to switch to. At the same time, the previous versions of the Portal records in the target environment are not destroyed or overwritten, thus making it possible to roll back the SAS assignation to any previous state of release.

A special note: with the slight modification of the default search-replace regular expressions, it is possible to use our tool to condition the data file extracted by XRMToolbox plugin for the Portals. While the data transfer experiment was successful, it is still not recommended to use because of the internal issues found within this plugin, as well as its inability to migrate M:M relationships properly.

Don't forget to subscribe to our blog for more!

Happy D365'ing!

What is a Mobile-responsive CRM Portal and How Does It Drive Business?

Thinking about a CRM portal or wondering how you can update your current portal to be mobile-responsive? In today's blog, we'll define what a CRM portal is, why making it mobile-responsive is important, and see examples of how mobile-responsive CRM portals are deployed in the real world. But first, let's go over a couple of definitions and answers to some common questions regarding portals.

Mobile

What is a CRM portal?

A CRM portal is a central hub for providing access to information that is stored in your organization's CRM, without actually giving the user access to CRM. It can provide customers, vendors, and partners an easy-to-use web interface that syncs directly with the information in your CRM, in real time.

What does "mobile-responsive" mean?

Mobile-responsive means that anybody accessing the portal on a mobile device such as a tablet or a smartphone, has an experience that is designed to fit that particular device. So, a mobile-responsive portal is one that no matter the device, scales to an appropriate size for the device. It also means you only have to build one portal, as opposed to building a special version just for mobile as might have been done in the past.

Aren't CRM portals automatically mobile-responsive?

Not all portals were built to be mobile-responsive. Be sure to pick a platform or let your developer team know that is your intent. A good software vendor would advise you on their suite of tools and their mobile-ready options. For example, PowerObjects recommends all new investments in portals to be mobile-responsive.

Why is mobile-responsive so important for my CRM portal?

When users of your portal interact with your brand online, they are likely doing it via mobile device over half of the time. It's important to show that your organization cares about user productivity on any device anywhere. That's why you create a portal in the first place--to help people do more with your organization anytime, anywhere.

Picture your customer. Let's say that estimated 50% of them use a smartphone or tablet. Do those customers, partners, external sellers or stakeholders ever come up to look for your brand or product online?

Chances are they might be using popular search engine Google, which has already down-ranked sites that are not mobile-responsive. Microsoft's Bing isn't far behind—it started highlighting mobile websites that are mobile friendly earlier this year.

What do search engines and their visitors have to do with my CRM portal?

First, CRM portals have pages that are public, such as a login or registration page. If you have a knowledge base or community forum, those could be public too. Each one of those acts as an index-able page for search engines, that's why it's important even those are immediately mobile ready.

Even if your CRM portal is more private, you can make some of the top level core elements visible in the menu, such as My Account, My Incidents or Orders. This allows users to see that those pages exist, but require a login to access. A user and a search engine computer will both welcome seeing these links.

Second, many users search on their phones via personal digital assistants like Siri, Cortana or Google Now. Those assistants, while smart and very cool, also rely on basic web search engines to fetch data. You want to be part of the returned searches, and only the top (as we learned mobile ready) responses get called out.

What are the downsides if my CRM portal is not mobile-responsive?

1. Your competitor might show up first! The best mobile-responsive result wins.

2. Other online forums and other websites that might have competitor info, or an external community discussing or reviewing your brand product or service.

3. You are no longer the top and first impression your mobile users or prospects have.

Since most service seekers do their own search online [Google Trends, 2013] before connecting with our brands, we might be losing opportunities that never come back around to our brand entirely. They may get distracted by other brands or simply diverted into other online communities and affected what they see there.

Benefits of controlling your own mobile-responsive CRM portal experience:  

1. Control your brand experience for today's demanding educated customer.

2. Demonstrate that your company is ready to serve via any device ahead of purchase relationship.

3. Reap the rewards of accelerating business that portals gains to business in first place.

Three examples of CRM portals done right!

Let's take a look at a few example business scenarios when using CRM Portals benefits from mobile-responsive capability.

Customer Point of View: Finding a Knowledge Base

Evolution: Let's say a customer's preference self-service—they want to find answers themselves before asking for help via chat or voice channels. The easier customers can find answers, the greater their satisfaction.

Bottom line: Deflection from a costlier service channel or losing a customer by not catering to an evolving consumer customer care preferences.

Business User Point of View: Searching for a New Vendor

Evolution: Today's business decision makers research independently and invite you into a process in much later stages than before. If a business user can find your vendor portal in a search for your brand, they will be relieved to see that doing business with your organization will be easy, even on the go. Vendors that are easier to work with get more channel mindshare from distributors' sales teams.

Bottom line: Reduced effort and easy of doing business has tangible returns on investment.

Customer: Move Along in a Process

Evolution: Equipping a process like application or claim filing with portal is an excellent first step. Notifying customer via email or SMS is a great second step. Providing a method to review and move the process along for those customers right from their mobile device via CRM portal is the most natural as users already has the device in hand.

Bottom line: Increase the speed your customer can get back to you on their device of the moment, without resorting to getting back to my PC to do it later. Think of the number of applications or processes that can be moved along quicker each week.

Two Follow-up Next Steps

Find out more about how a CRM Portal from PowerObjects can benefit your business—check out our recorded Webinar "What can CRM Portal do for my business?" In it you will see examples of mobile-responsive CRM portals we offer in action.

You can learn more about your options on our CRM Portals page, including plug-n-play platforms, custom developed portals and add-ons such as PowerWebForm and PowerSurveyPlus. All of our technology options are Mobile-responsive enabled to serve needs of your demanding and evolving user base today. We encourage you to request a personalized demo of any of our offerings.

Happy CRM'ing!

Creating a Custom Portal API to Retrieve Data

The portal offers a great way for users to view and search data in Microsoft Dynamics 365, but it currently does not provide a robust API. This presents a challenge when needing to retrieve data asynchronously. To accomplish this, we can create a new page that executes the query and returns the results in JSON format.

Follow these steps:

1. Create a new "Web Template" record. This will execute the search (lines 1-3) and format the result in JSON (lines 4-19).

API

2. Create a new "Page Template" record. Make sure to uncheck the "Use Website Header and Footer" option.

API

3. Create a new "Web Page" record.

API

4. Execute the request!

Your portal pages can now retrieve data asynchronously! This will give a more fluid user experience and can be easily expanded for additional searching and filtering.

Be sure to search our blog for more Dynamics 365 tips and tricks!

Happy Dynamics 365'ing!

Solution Spotlight: Managing Patient Needs with a CRM Portal [VIDEO]

PowerObjects worked with Brighton and Sussex University Hospital to develop a digital solution for the Virtual Fraction Clinic. The Virtual Fracture Clinic streamlines rehabilitation plans for patient fractures using a Dynamics 365 portal. In this Solution Spotlight, hear from Pavlos on this example of digitizing the healthcare system.

Thanks for watching the Solution Spotlight!

Try the New Portal Add-on for Microsoft Dynamics CRM Online

As you may or may not know, Microsoft acquired ADX Studios, a web portal provider, late last year. Since then, they've been working hard to integrate portals as an add-on service for Microsoft Dynamics CRM Online. Their endeavor has proven to be successful, so customers can now choose a portal add-on that integrates seamlessly with Dynamics CRM Online.

Being that web self-service is now the most popular way for customers to make sure their voice is heard, we set out on a mission to see if we could activate a trial of the portal add-on in one of our test CRM environments. And guess what? We can! Luckily for you, we've documented our experience in six steps so that you too can give it a try.

Step 1: Request a Trial

The first step to adding a trial of the portal add-on to any CRM instance is to request a trial. Navigate here to request a portal trial.

Portal Add-on

Step 2: Wait for the Email

Now you just need to wait for your portal trial activation to be emailed to you. For us, it took about half a day before we received the email below. Click on the Activate link in the email and sign in with your Office 365 username and password. In order to complete the next steps, you should be a global admin in your Office 365.

Portal Add-on

Step 3: Configure the Portal

Not too bad so far, right? The next thing you'll do is configure the basics of your portal. To do this, navigate to the Office 365 Admin Center and click on CRM. In the CRM Online Administration Center, you'll see an "Applications" area, which will have the newly activated Portal Add-on listed under it. Click Manage.

Portal Add-on

Step 4: Name That Sucker

This is where things start to get exciting! Under the general settings, you can choose the name of your portal, the URL (which it clearly states can be updated with a verified domain after the portal is provisioned), the language, and lots of other things.

Two things you'll want to pay extra close attention to is the Portal Audience and the type of portal you're deploying. These will decide what is imported into your CRM system, and what template is originally used when provisioning your portal. We've decided to go with the most popular type of portal – a customer self-service portal. After you've filled everything in to your satisfaction, click on Submit.

Portal Add-on

You'll have to agree to some basic terms of service with Microsoft, and grant Microsoft CRM Portals permissions to access what it needs to, but after you've agreed to those things, your portal will begin being provisioned!

Step 5: Access Granted

After a few hours, you'll be able to access the portal. How, you ask? Navigate back to your CRM Admin center, click on the Applications area again, and click Manage. Under the portal details, you'll see your Base Portal URL. Exciting, right?

Portal Add-on

If you navigate to that portal URL, you'll see the template that's been spun up for you. Pretty fancy for not having done any customizing yet, we'd say!

Portal Add-on

Step 6: Finish Things Up

Chances are, you don't want to leave all of the defaults on the portal template. Lucky for you, all of the pieces to help you manage your portal have now been placed inside of your CRM system. There's a new "Portals" tile in your navigation, and boy is there a lot to customize!

Portal Add-on

Now you can explore your way through all of the different areas of the portal to set everything up and customize it yourself! However, if you're looking for a little bit of help along the way, reach out to PowerObjects. We've got experts that can help you get a useful, integrated portal set up, with minimal investment.

Contact us if you're interested in learning how we can help.

Happy CRM Portal'ing!