Voice of Customer available for CRM 2016 Update 1 Online

As mentioned in CRM Team Blog, Voice of the Customer surveys is now a feature in Microsoft Dynamics CRM Online 2016 Update 0.1 and out of preview. Using which you can create surveys to capture feedback regarding your product or service from CRM. Recipient can take the survey on any web enabled device and the response is logged into CRM. This captured data can be utilized for generating reports, analyzing trends and making appropriate changes to your product/service. More information on the product is available here.

Enable CRM tenant for Voice of Customer

Though late as my CRM online tenant was set up in APAC region, yesterday my org was provided with an option to install two new solutions, Voice of Customer and Fantasy Sales team. To use these features, your O365 admin should install and enable these solution for the organization. Details for doing it are available here.

Once the solution is installed and displayed on your O365 page, you can navigate to your CRM 2016 tenant.

Configure Voice of Customer

Successful installation of the solution will add new tab to the ribbon named “Voice of Customer” which contains all related entities.

Before you can start using the service, you are required to enable it.

For enabling it, navigate to Settings à Solutions à Voice of Customer solution.

Select the agreement check box and click “Enable Voice of the Customer” button.

Once this is done, you are ready to start using the feature.

The configuration page of solution also provides you a link to Configuration Entity for VoC.

This configuration entity consists of details like default email template, Organization Id, Content Delivery Network path, etc.

Creating a new Survey

To create a survey, navigate to Voice of the Customer à Surveys and create a new record.

On the New Survey page, we have 3 options

  1. Survey: This page has all configuration related data for the survey like Survey Appearance (Theme, Logo, Redirect URL, Redirect Text, and Header Text), Invitations and Actions, Feedback, etc.

  2. Designer: This page allows us to create the UI for the survey. It provides options to add pages, questions, ratings, etc.

  3. Dashboard: Here we can see the details regarding the response obtained for the feedback.

Once a survey is created, you can preview it from the Survey page itself before publishing it.

No feedback data of the preview will be stored in CRM.

Creating a Survey Activity

** We are creating this manually but I’m sure we should be able to automate it using processes too.

A survey activity can be created from most of the entities in CRM like Contact, Account, Case, etc. We will be creating one form Contact.

Navigate to Contact and open a record for which we want a survey. In the related records, select Survey Activity and “Add New Survey Activity”.

Set the activity details like Regarding, To, Survey, etc. Once saved this will generate the survey invitation Link that can be sent to users for providing feedback.

Executing/providing the feedback

End users can provide feedback simply by clicking the feedback link provided to them. Below is the sample feedback that I created for capturing the session feedback (one of the hobby project I’m working onJ)

Page 1

Page 2

Page 3

Tracking the Survey Response

Survey response can be tracked from related Survey Response for Survey Activity.

I’m still exploring the feature more. Please comment if you have anything to share on same.

Advertisements

OnLoad event for SubGrid in CRM 2015 Update 1

Till CRM 2011 we used to use Xrm.page.getControl(“grid”) to get a grid control available on form and perform any runtime activity like changing the view/query, etc. Also we were required to write the complete script on OnLoad even of form and add a timeout till the subgrid is loaded as subgrids are loaded asynchronously after the form is loaded. There was no way we can have a trigger on load of a subgrid till CRM 2015 Update 1. What we used to do is explained in older post here.

But with CRM 2015 update 1, we now have an option to execute scripts when data is loaded in subgrids. Because of which we are not required to have any timeout added in the script and iterate it till the data is loaded into subgrid.

With addition on GridControl.addOnLoad method, we can now add event handler for OnLoad event of subgrid which is more reliable than the form OnLoad event for form with a timeout. This event will get triggered whenever data is bound to a subgrid.

The steps to add this event is not similar to adding a form OnLoad event (from form customization popup), the way to add it is by invoking it using a code from other events (e.g. form OnLoad) by making use of GridControl.addOnLoad method. Similarly, use GridControl.removeOnLoad to remove event handlers.

Xrm.Page.getControl(“Contacts”).addOnLoad(myContactsGridOnloadFunction);

References:

https://msdn.microsoft.com/en-us/library/dn932137.aspx?f=255&MSPPError=-2147217396

https://msdn.microsoft.com/en-us/library/dn932126.aspx#BKMK_subgridAddOnLoad

https://crmcooking.wordpress.com/2015/07/15/writing-scripts-for-subgrids-with-crm-2015-update-1/

Configuration Migration tool for CRM 2015

Note: Contents re-blogged as it is from TechNet blog.

The Configuration Migration tool enables you to move configuration data across Microsoft Dynamics CRM instances and organizations.

The Configuration Migration tool allows you to:

  • Select the entities and fields from where you want to export the configuration data.
  • Avoid duplicate records on the target system by defining a uniqueness condition for each entity based on a combination of fields in the entity, which is used to compare against the values on the target system. If there are no matching values, a unique record is created on the target system. If a matching record is found, the record is updated on the target system. If no duplicate detection (uniqueness) condition is specified for an entity that is being exported, the tool uses the primary field name of the entity to compare against the existing data on the target system.
  • Disable plug-ins before exporting data and then re-enable them on the target system after the import is complete for all the entities or selected entities.
  • Validate the schema for the selected entities to be exported to ensure that all the required data/information is present.
  • Reuse an existing schema to export data from a source system.
  • Embed the exported modules created from this tool (schema and data files) in other programs. For example, you can use the exported data in Microsoft Dynamics CRM Package Deployer along with other solutions files and data to create and deploy packages on a CRM instance.
  • The Configuration Migration tool does not support filtering of records in an entity. By default, all the records in the selected entity will be exported.

The following diagram illustrates how the Configuration Migration tool is used for migrating configuration data.

i

Get data from Dynamics CRM 2015 to Power BI using connector

Update 20th Feb 2016: 

Connecting CRM 2016 to Power Query in Excel 2013 with updated Odata feed

Original Post:

The Microsoft Dynamics CRM content pack for Power BI Preview allows you to easily access and analyze CRM data in Power BI. The content pack uses the OData feed to create a descriptive model, with all the entities and measures needed such as Accounts, Activities, Opportunities, Product, Leads, Users and more.

After you have Power BI subscription, Click Get Data on the welcome screen.

Select Microsoft Dynamics CRM and click Connect.

Important:

Make sure your popup blocker is disabled or is set to allow popups from app.powerbi.com.

Provide the OData URL associated with your account. This will be in the form “https://mytenant.crm.dynamics.com/XRMServices/2011/OrganizationData.svc

When prompted, provide your credentials (this step might be skipped if you are already signed in with your browser). For Authentication Method, enter oAuth2 and click Sign In:

After connecting, you’ll see a dashboard customized for a Sales Manager, populated with your own data:

 

For more information, see below link. Happy analyzing the data J

https://support.powerbi.com/knowledgebase/articles/462791-microsoft-dynamics-crm

CRM 2015 Web API preview documentation

**[Original Post from Microsoft CRM Team Blog]

CRM 2015 introduced a new API for enabling creation of applications across multiple platforms.

This new Web API is available as a preview feature to Microsoft Dynamics CRM Online organizations that use Dynamics CRM Online 2015 Update 1.

To support this preview feature we have put together documentation and samples you can find at https://msdn.microsoft.com/dynamics/crm/webapipreview.

In this topic

DID YOU KNOW? List component for SharePoint integration deprecated with CRM 2015 Update 1


[Referencing The Microsoft Dynamics CRM Blog]

The Dynamics CRM to SharePoint integration has always been a key solution to document management within CRM.  With two currently available solutions, the List Component and new server-based SharePoint integration, CRM is pleased to focus our efforts on the server-based integration.  Dynamics CRM 2015 Update 1 will deprecate the List Component as a result of SharePoint’s deprecation of the sandbox solution, a dependency of the List Component.

Customers with List Component are advised to upgrade to the server-based SharePoint integration.  With CRM 2015 Update 1, server-based integration gains hybrid support between CRM Online and SharePoint On-Prem.  In a subsequent release, CRM will support CRM On-Prem to SharePoint Online and CRM On-Prem to SharePoint On-Prem.  SharePoint Online or SharePoint Server 2013 SP1 and above is required for server-based integration.

DID YOU KNOW? You can update owner and status with a single Update request in CRM 2015 with Update 1

Before CRM 2015 Update 1 release, specialized messages were required to update certain entity attribute values. These were AssignRequest to change owner of a record, SetStateRequest to change status of a record, SetParentSystemUserRequest, etc. In this release, UpdateRequest can now be used to set these attributes.

Thus with Update 1 release following specialized message will be deprecated.

  1. AssignRequest
  2. SetStateRequest
  3. SetParentSystemUserRequest
  4. SetParentTeamRequest
  5. SetParentBusinessUnitRequest
  6. SetBusinessUnitRequest
  7. SetBusinessEquipmentRequest
  8. SetBusinessSystemUserRequest

These specialized messages will continue to work with the 2011 endpoint. However, the recommendation is to use the UpdateRequest or Update method when possible to set these attributes. The Update message simplifies the SDK API and makes it easier to code standard data integration tools used with Dynamics CRM. In addition, it is easier to code and register a plug-in to execute for a single Update message instead of multiple specialized messages. The AttributeMetadata.IsValidForUpdate property for the above listed attributes has been changed to true in this release to enable this capability.

For plug-ins, when update requests are processed that include both owner fields plus other standard fields for business owned entities, plug-ins registered for the Update message in pipeline stage 20 and/or stage 40 execute once for all non-owner fields, and then once for the owner fields.

For workflows, when update requests are processed that include both owner fields plus other standard fields, workflows registered for the Update message execute once for all non-owner fields, and then once for the owner fields. Workflows registered for the Assign message by users continue to be triggered by updates to owner fields. When update requests are processed that include both state/status fields plus other standard fields, workflows registered for the Update message execute once for all non-state/status fields, and then once for the state/status fields. Workflows registered for the Change Status step continue to be triggered by updates to state/status fields.

DID YOU KNOW? Connecting a Microsoft Dynamics CRM on-premises deployment to Yammer requires disabling secure channel.

Yammer gives colleagues at your organization a central place to have conversations, create and edit documents, and share information without sending a single email or attending any meetings.

After you set up your organization to work with Yammer, employees will see posts in a newsfeed on their Microsoft Dynamics CRM dashboard whenever people update customer info, and they’ll be able to join in the conversation with their own posts.

If you are connecting a Microsoft Dynamics CRM (on-premises) deployment to Yammer that is not using Internet-facing deployment (IFD), you need to run the following PowerShell commands to disable secure channel HTTPS.

You shouldn’t run these commands if you are deploying Microsoft Dynamics CRM (on-premises) with IFD.

  1. Open a Windows PowerShell command window.
  2. Add the Microsoft Dynamics CRM PowerShell snap-in:

    Windows PowerShell

    Add-PSSnapin Microsoft.Crm.PowerShell

  3. Enter the following:

    Windows PowerShell

    $itemSetting = new-object ‘System.Collections.Generic.KeyValuePair[String,Object]'(“AllowCredentialsEntryViaInsecureChannels”,1)

    $configEntity = New-Object “Microsoft.Xrm.Sdk.Deployment.ConfigurationEntity”

    $configEntity.LogicalName=”Deployment”

    $configEntity.Attributes = New-Object “Microsoft.Xrm.Sdk.Deployment.AttributeCollection”

    $configEntity.Attributes.Add($itemSetting)

    Set-CrmAdvancedSetting -Entity $configEntity

  4. Then, run the following command at a command prompt: iisreset

More details steps can be found here.

DID YOU KNOW? Setting default price list for opportunities in CRM 2015

New system setting is introduced Sales territory change in CRM 2015 to set default price list in opportunity. If this setting is set to No following territory configuration won’t work. This setting comes in picture while setting Territory based default price list.

Default Pricelist 1

For this, create a territory (e.g. USA) -> add Manager. Multiple members can be added by clicking Members in Common section in left navigation -> Add members.

Once territory is created, create price list –> add price list items -> in territory relationship grid add territories (e.g. USA) for which current price list should be default.

Default Pricelist 2

Save changes and now as per our configuration, for territory manager and members inside territory, Shirts Price list becomes default i.e. pre-populated while creating new opportunity. Price list can be changed if required.

Another approach to set default pricelist for opportunity is to create a simple business rule on opportunity form which sets value of field Pricelist. Once business rule is activated, for every new opportunity default price list is set.

Note: Business rule overrides Sales Territory settings. System setting shown above does not affect business rule.

Please refer below link for more information

https://technet.microsoft.com/en-us/library/dn531129.aspx

The new form rendering engine

***[Referencing to Microsoft Dynamics CRM Team Blog]

In Microsoft Dynamics CRM Online 2015 Update 1 (v7.1), a new form renderer was built to provide better performance. Forms will load significantly faster and more efficiently. The new renderer is based on previous generations and has the same functionality and behavior. However there are some things that admins and developers need to do to ensure full compatibility when upgrading.

What will users notice?

End users will not notice anything different, other than forms loading faster. The new form rendering engine has full support for client scripting (Write code for Microsoft Dynamics CRM forms), uses the same XML definition (Form XML schema), and has the same behaviors all around. There have been no fundamental changes made in terms of what the form does.

In order to help catch unsupported customizations, we added a dialog that displays the issue when script errors occur so that they do not fail silently. If these symptoms occur then it is likely there are unsupported customizations in the system.

What changed?

All the changes have been focused on how the form load process can be optimized. There are 2 main changes that have been made: loading process of the form, and handling of cache.

In terms of loading process, we have parallelized as many operations as possible to eliminate time wasted because the browser is idle. We increased the content that’s cached, moved rendering processes partially to server-side, and optimized the initialization of controls.

Form load used to be a very linear process. Since the new form renderer is more parallelized, the rendering engine now constructs the form and XRM model first and binds the data whenever the server responds. The diagram below is a rough approximation in order to illustrate the differences between the 2 rendering engines and may not reflect the exact changes.

Forms also used to waste a lot of resources. Since they were hosted in iframes, the iframe would be discarded and reloaded on each form load. The new form renderer does not discard iframes and instead keeps the iframe around. All common scripts are already parsed and never need to be loaded again. This introduced the design to load custom scripts and ISV scripts in a separate iframe which is the one that’s discarded when the form closes.  Previously, these scripts would be loaded in the same iframe as the form.

In summary:

  • Iframes are now kept throughout the user session
  • Custom scripts are loaded in separate iframes
  • No changes in supported scripts or form
    capabilities

What do I need to do?

As an admin or developer there are some things to be aware of. Because the new form rendering engine makes changes to how iframes are organized, any attempt to access unsupported APIs or use direct DOM manipulations may fail and need to be fixed.

Customers should all make sure to test their organization in sandbox mode to preview before upgrade. This way, should any symptoms show up around forms not loading/script errors, you will be able to catch and fix it
before upgrade.

Examples of things that will break:

  • Any attempt to access DOM in the content iframe using JS, jQuery or other 3rd party libraries (document.getElementById() or jQuery selectors)
  • Creating a new HTML content in the parent window for persistent content (and assumed that the parent window was the main CRM iframe.
  • Window.load, parsing iframe/form URL
  • Attempting to use unsupported (non-XRM) APIs, especially undocumented ones that may have been shipped with CRM for internal usage only
  • Accessing window.parent() from a web resource that may assume for example there’s a variable set in the current window context.

In order to help identify potential issues, the CRM 2015 custom code validator can be used. It’s primary purpose is to identify usage of deprecated APIs but it will also attempt to flag usage of unsupported APIs. The tool can be found here: https://www.microsoft.com/en-us/download/details.aspx?id=45535.  Developers should also review their scripts to ensure only supported APIs are being used.

Customers that have 3rd party solutions should reach out to their partners for updated solutions that have been verified to work with the new form rendering engine. While most are expected to continue to work, those with unsupported customizations need to be updated.

Fallback options

In case there is difficulty identifying the issue or a backup plan is needed post-upgrade, we have introduced an organizational-level fallback to temporarily allow usage of the legacy rendering engine. This will ensure compatibility at the cost of performance. Do not rely on this solution long term as the plan is to remove this option in the following release.

This setting can be found under Settings -> Administration -> System Settings -> General. Select “Yes” under “Use legacy form rendering” to enable this mode for all users.

If script errors are showing up, or if forms are not behaving as intended, this setting can be used to diagnose if the problem is specific to the new form rendering or not. If it is due to the new form rendering engine, then most likely there are some unsupported customizations.

If you are the owner of the scripts, make sure that there are no unsupported customizations. Otherwise reach out to the provider of the solutions for an updated solution.

View article…