Use Sales Copilot to see the pipeline (Dynamics 365)


Using the “Sales Copilot” we can get the list of opportunities assigned to us.

For this, we can use the “Show my pipeline” prompt

To enable Sales Copilot, Inside Sales Hub, navigate to App Settings >> Copilot (General Settings) and specify the Sales Apps in which we want the Sales Copilot to be enabled.

To see it in action, open the Sales Copilot Help Pane, select the Sparke Icon to open the Prompt Guide, then Get Info >> Show my pipeline

The result shows the opportunities sorted based on the estimated close date.

Clicking on “Show all” opens the corresponding opportunity view.

Hope it helps..

Advertisements

Use the theme assistant Copilot to style emails (Dynamics 365 Customer Insights – Journey / Marketing)


Using Copilot’s theme assistant we can fetch the styles from a website and apply it to our email. Microsoft strongly recommends using Theme Assistant only on websites owned and not on 3rd party websites.

To use this feature, open an existing email record, enter the Website’s URL in the theme assistant section, and click on the Fetch Styles button.

The theme assistant will fetch the styles from the website and apply them to the theme of the email. We can also see the changes in the email editor.

If we are happy with the theme applied we can select the Keep and
close option or we can select Start over to specify another website.

We can further edit the theme as required.

Get all the details

Hope it helps..

Advertisements

Fixed – InvalidStateError: Failed to read the ‘responseText’ property from ‘XMLHttpRequest’: The value is only accessible if the object’s ‘responseType’ is ” or ‘text’ (was ‘arraybuffer’).


Recently we got the below error when we tried to download and zip the files from within CRM’s Web Resource. The files were stored in Azure Blob Storage. We were using JSZipUtils for it.


Access to XMLHttpRequest at ‘https://abcnon…..’ from origin https://abc-dev-abc.crm6.dynamics.com’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.
BlobAttachmentPreview.js:663 Uncaught Error: InvalidStateError: Failed to read the ‘responseText’ property from ‘XMLHttpRequest’: The value is only accessible if the object’s ‘responseType’ is ” or ‘text’ (was ‘arraybuffer’).
    at f.onreadystatechange (jszip-utils.min.js:1:1544)

As we can see in the details, the error turned out to be the CORS issue.

Mistakenly we had the forward slash added to end of the URL specified in the Allowed origins.


Before – https://abc-dev-abc.crm6.dynamics.com/
After – https://abc-dev-abc.crm6.dynamics.com
Removing the slash at the end fixed the issue, as the Azure Blob Storage CORS rules typically require exact matching for allowed origins
.

Hope it helps..

Advertisements


 

Advertisements

Fixed – Invalid type. Expected Integer but got Number (Power Automate)


In one of our Cloud Flows, for Parse JSON action, we got the below error –

ValidationFailed. The schema validation Failed.

“Invalid type. Expected Integer but got Number”

The generated schema had data type defined as integer instead of number type for certain properties, and the response was having decimal value to it.

So replacing the “integer” with “number” in the Schema of Parse JSON action fixed the issue.

Hope it helps..

Advertisements

Analyzing PowerApps Canvas and Model-Driven Apps Performance


Analyzing PowerApps Canvas and Model-Driven Apps Performance

How to – Submit multipart/form-data using HTTP action in Power Automate (Dataverse)


Recently we were calling an API (that expects multipart/form-data) to pass the image uploaded in Dataverse’s Image Column.

We used Power Automate for this i.e. to get the image uploaded and use HTTP Action to call and pass the Image details to it.

Below is the specification of the API

https://vision.foodvisor.io/docs/#/paths/analysis/post

We used the “Download a file or an image” action to get the Image details

Below is how the HTTP action was used to pass the required details.

The successful response –

The body of the HTTP action –

{
"$content-type": "multipart/form-data",
"$multipart": [
    {
      "headers": {
        "Content-Disposition": "form-data; name=\"image\"; fileName=\"@{items('Apply_to_each_2')?['filename']}\""
      },
      "body": @{body('Download_a_file_or_an_image')}
    }
  ]
}


If we want to pass more than one data, we can have multiple headers defined as shown below

Helpful post –

Hope it helps..

Advertisements