Dynamics 365 Sales mobile app (preview)


The new Dynamics 365 Sales mobile app (preview), has been introduced specifically for the field sellers who need quick access and intuitive management of the customer information on the go while travelling / meeting the customers.

Check other posts on 2020 Release Wave 2

To enable the App, navigate to Advanced Settings from the Sales Hub and then to Administration > System Settings > Mobile Client tab
We also need to enable Relevance search on the environment for the mobile app’s search to work.

For iOS

https://go.microsoft.com/fwlink/p/?linkid=2151689

For Android

https://go.microsoft.com/fwlink/p/?linkid=2152008

After installation open the app and sign in

From the list of apps, select the App to be used. Here we clicked on the Sales Hub app.

Below is the home page of the app.

The home page provides quick access to recent contacts and recent records along with reminders and insights.

More on Assistant –

https://docs.microsoft.com/en-us/dynamics365/ai/sales/assistant

The + option allows for the quick creation of Note and Contact records.

The more options allow access to the navigate to other part of the apps – dashboard and the other entities.

Search suggestions provide results while we are typing and grouping of search results to quickly find the information needed.

Other sub grid and form tab improvements in the app –

https://nishantrana.me/2020/09/28/sub-grid-and-form-tabs-improvements-in-power-apps-mobile-app/

The meetings option shows the calendar view and the meetings that are scheduled in the outlook.

We cannot create meetings from the Sales Mobile app.

Get all the details here –

Overview of the Dynamics 365 Sales mobile app

Hope it helps..

 

Recent Posts – 

Fixed – 401 Unauthorized error while calling Dynamics 365 Web API


We were recently getting the below error while trying to call Dynamics 365 Web API through Postman.

“401 Unauthorized”

It turned out that we were using the incorrect Token.

To generate the correct token,

For OAuth 2.0 token endpoint (v1) Version 1

  • We need to specify resource with Dynamics 365 URL.


For OAuth 2.0 token endpoint (v2) Version 2

  • We need to specify scope with
    Dynamics 365 URL followed by .default instead of a resource.

The correct token results in the successful call to the Web API

References –

https://matthijs.hoekstraonline.net/2020/04/27/v1-and-v2-identity-and-access-tokens-with-azure-active-directory/

https://crmchap.co.uk/generating-oauth2-v2-0-endpoint-tokens-for-dynamics-365-the-common-data-service/

Hope it helps..

Check user’s access to a record – upcoming feature in Dynamics 365


Was going through the Model-Driven Apps documentation and found the below article

https://docs.microsoft.com/en-us/powerapps/user/access-checker

It talks about a Check access button on the command bar of a record which will list down all the rights/access/privileges on that particular record.

And also how the user has got those accesses, through security roles directly assigned or through the team the user belongs.

We can also check the access of the other users as well through user lookup.

More on Access in Dynamics 365

Hope it helps..

Power Platform for Admins connector (preview) in Power Automate


The Power Platform for Admins connector (preview)

let’s us perform following Actions


The connector allows us to access the Business Applications Platform (BAP) API.

Below is the example of the Create Environment action, followed by Create CDS Database.

Here we are creating a trial environment in Asia region followed by a CDS database in it with base language – Hindi and currency code as INR

Let us run the flow and see the results

In Power Platform admin center can see the environment created along with the database specified.

All the key URL(s) for Power Platform Admin

Get all the details below –

Power Platform for Admins (Preview)

Power Apps and Power Automate Administration and Governance – Tools and Labs

Hope it helps..

Use CrmServiceClient to execute web request against Web API – Dynamics 365


In the previous post we saw how to use CrmServiceClient to connect to CDS using Authentication Type – OAuth and execute web request using Organization.svc service

https://nishantrana.me/2020/11/09/sample-code-to-connect-to-cds-dynamics-365-ce-using-oauth/

Here we will extend the same example to execute web request using Web API.

  • Create the contact record with first name and last name populated

using Microsoft.Xrm.Tooling.Connector;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;

namespace SampleConsoleApp
{
class Program
{
static void Main(string[] args)
{
string ConnectionString = "AuthType = OAuth; " +
"Username = [username]@[domain].onmicrosoft.com;" +
"Password = [password]; " +
"Url = https://[orgname].crm.dynamics.com;" +
"AppId=51f81489-12ee-4a9e-aaae-a2591f45987d;" +
"RedirectUri=app://58145B91-0C36-4500-8554-080854F2AC97;" +
"LoginPrompt=Auto";

CrmServiceClient svc = new CrmServiceClient(ConnectionString);

// specify OData Headers
Dictionary<string, List<string>> odataHeaders = new Dictionary<string, List<string>>
{
{ "Accept", new List<string>() { "application/json" } },
{ "OData-MaxVersion", new List<string>() { "4.0" } },
{ "OData-Version", new List<string>() { "4.0" } }
};

if (svc.IsReady)
{
// create a contact record with firstname and lastname populated
dynamic contact = new JObject();
contact.firstname = "Meeska";
contact.lastname = "Mooska";
string jsonContact = Newtonsoft.Json.JsonConvert.SerializeObject(contact);

// create the contact record
// Parameters - HttpMethod, QueryString, Body, Customer Headers, Content Type
HttpResponseMessage httpResponse = svc.ExecuteCrmWebRequest(
HttpMethod.Post,
"contacts",
jsonContact,
odataHeaders,
"application/json");

if (httpResponse.IsSuccessStatusCode)
{
var contactUri = httpResponse.Headers.GetValues("OData-EntityId").FirstOrDefault();
Console.WriteLine("Contact URI: {0}", contactUri);
}
else
{
Console.WriteLine(httpResponse.ReasonPhrase);
}
}
}
}
}

  • Retrieve first name and last name for all the contact

// retrieve first name and last name of all the contact records 
HttpResponseMessage httpResponse = svc.ExecuteCrmWebRequest(
HttpMethod.Get,
"contacts?$select=firstname,lastname",
string.Empty,
odataHeaders,
"application/json");

 

Get the details here – ExecuteCrmWebRequest

Hope it helps..

Power Automate vs Azure Logic Apps


Power Automate

Azure Logic Apps

Power Automate is built on top of Azure Logic Apps
It is a SaaS service for workflow automation across several different apps and SaaS services. It is a PaaS service for workflow automation across several different apps, SaaS services, and IaaS services for enterprise integration.
For more of self-service and simple integration scenarios. For complex/advanced integration scenarios
Targeted for Business User, Citizen Developers, Developers, IT Pros. Targeted for Developers and IT Pros.
Brower based designer and mobile app UI only


In-browser as well as Visual Studio
Office 365 Service / License / Subscription Azure Service / License / Subscription
Flow specific Connectors

Power Automate Premium Connectors

Logic App-specific Connectors – SAP, IBM MQ, IoT, Liquid.

Logic Apps Connectors

Power Automate are specific to an environment There is no environment concept, each logic app is an independent entity.
Pay by run Pay by action run and by connector run.
Button flow

Create a button flow

Modern Approvals

https://nishantrana.me/2020/08/31/approvals-power-automate-dynamics-365/

Flow can be extended as Logic Apps

Export flow and deploy to Logic Apps

Power Automate is supposed to be designed and tested in a non-production environment and then promoted to the production environment. The solution makes it possible with connectors requiring reconfiguration. Connection references can be considered here https://flow.microsoft.com/en-us/blog/move-flows-across-environments-without-resetting-connections/
Logic Apps has ALM possibilities.

Automate deployment of Azure Logic Apps

Admin Experience through Power Platform Admin Center. Admin experience through Azure Portal.