Create a support Queue in D365 CE

I thought I should share my best practice of creating a quick Support Queue purely to receive Emails in Dynamics 365.

In my example below, the support email address is a User in Office 365 assigned any license that has Exchange Online service present. My example user needn’t have a Dynamics license for purely for the purpose of a Queue. Your application may vary.

Let’s take a look!

Support Queue Email

Now, typically a Support Queue’s Email is purely to track support requests raised over the email address provided. Typically, support@emailaddress.

  1. To start off, I’ll create a user in Office 365 called Support Queue and the login address I choose is support@cft146.onmicrosoft.com and assign only the license which is needed for the Queue i.e. any license having Exchange Online service in it, (E5 in my case) you may chose any other.
    licenseAssigned.png
  2. Then, I make sure my Mailbox is created in a few minutes post assigning the licence and then I’m good to go once I setup the Timezone and Language on the mailbox.
    mailboxReady.png

 

Create a Queue in D365 CE

  1. In D365 CE, directly head-over to create a Queue in D365. Assuming you are a System Admin, head over to Settings > Service Management and go to Queues. And then create a new Queue.
    queueInD365

    newQueue

  2. Enter the details as below, remember to keep the email address the same as the Exchange Email address for this user and click Save.
    createQueueDirectly.png
  3. Once you click Save, the Mailbox will be automatically created.
    SupportQueueMailBoxCreated.png
    That’s it. Now, let’s head towards enabling the mailbox for Server Side Sync.

Enable Server Side Sync on the Support Mailbox

To enable Mailbox, the Email address needs to be Approved by the Global Administrator of O365. [Your org could even be set to not requiring any Approval prior to enabling synchronization, you may need to ask you Admin for the same]. But assuming it’s required – approveEmail

Note that Incoming Email and Outgoing Email above is set to Server-side Synchronization or Email Router. [Incoming enabled is a must to receive emails in the system]. Click OK.
clickOKApprove

Once this is confirmed, see in the next step – the warning message disappears which is shown previously and you can now Test & Enable Mailbox for Server Side Sync. Now, click on Test & Enable Mailbox
test&Enable

Make sure that if you have multiple environments and you want to sync with only the current environment, check the option as below and then confirm.
confirm1EnvironmentOnly

Now, once the test is completed, you’ll be able to see the Success in the Active Mailboxes
enabledSuccessfully.png

 

Testing the Queue

Now, the Queue is ready to receive emails already. If you take look at the Queue, the test emails must have already come in by now.
QueueIsCorrect.png

Now, let’s say that a user has submitted an email to support@cft146.onmicrosoft.com [Your support email here 🙂 ], it will appear in the Queue as below
emailSent.png
itemReceived.png

And then you can continue to build your Queue use cases as per your requirements.

Hope this helps!

Create new Sandbox and copy Production over to it in PowerPlatform Admin Center

This is one of the standard approaches if you want to copy over a Production instance over to a Sandbox one. Most common scenarios being when you’ve on-boarded a new client to Dynamics 365 / PowerPlatform and you’re nearing Go Live for the first time!

You need a Sandbox to then follow new customization on the Sandbox and avoid doing anything on the Production. Here’s how you copy over from Production to Sandbox!

 

Creating a Sandbox

  1. Create a new Environment by clicking on the +New button as below
    newButton.png
  2. Now, you can directly create a new Sandbox environment in the PowerPlatform Admin Center (https://admin.powerplatform.microsoft.com/environments)
    Remember: Both the source and target environments need to be in the same region to copy.
    createSandbox.png
  3. Additionally, I’ve selected the Create a Database option too since I want to speed up the process.
    addingDatabase.png
    Note that you can chose which all apps you want to deploy if you chose Enable Dynamics 365 apps

And that’s it. You’ll need to wait for some time until this is processed!

While this happens in the background, you can see the message on the Environments section on the Power Platform Admin Center
preparing.png

 

And upon completion, you’ll see the below message
completedCreation.png

Copying From Production to Sandbox

Next step is to copy over the Production to the newly created Sandbox environment.

  1. Select the Production environment you want to copy over and look at the ribbon, you’ll see a copy button.
    copyButton.png
  2. Once you click on the Copy, you’ll be asked about the target environment, chose the created Sandbox.
    selectTarget.png
  3. Once you confirm, the copying process will start. And you’ll be taken to this page which tells you what stage the process is in –
    currentProcess.png
  4. Once all the copying is completed, this notification will appear. Now, the next step is to turn off Administration Mode. Click on settings link as shown below by arrow.
    copySuccess.png
  5. Once you flick the switch and Save, Administration Mode will be disabled letting others to log in as well. Additionally, now we have the option to keep Background Operations On as well while keeping Administration Mode On as well.
    disableAdminMode.png

Now, you are all set. Hope this helps!

What is “Does not support untyped value in non-open type” ODataException in creating records in D365 CE?

One of the most common errors we come across while calling API to create records in Dynamics but isn’t clear what it means? One such issue is – “An error occurred while validating input parameters: Microsoft.OData.ODataException: Does not support untyped value in non-open type.

On the console of the browser, you’ll see this –
consoleLoggedError

But, if you open the <objectName>.responseText of the Failure message of the call, you’ll see the below –

originalErrorA more zoomed view of the error would be below –

badRequest

This is because of my typo in the code [Which is the case for most scenarios] where you mistype a name of the field and neither does the error itself doesn’t specify which field you’re missing out on nor what it means!

Reason

This is because of a simple typo  in one of the fields in the object I was creating using AJAX

faultLine

In my case, this should have been “entity.duration” and not “entity.durationn“.

It was a simple issue which led me wander troubleshooting in areas which I shouldn’t look into.

Hope this saves you some valuable time! Happy 365ing!