Admin Center URLs under M365 – Power Platform, Teams, SharePoint, Power BI

Here’s a quick summary of the Admin Center URLs of each of these Dynamics 365 / Power Platform Admin Centers –

All Admin Centers under M365 Admin Centers

Here’s the link to all Admin Center under your O365 tenant based on your subscription and your Role in the tenant – https://admin.microsoft.com/Adminportal/Home?source=applauncher#/alladmincenters

Power Apps / Power Automate / Power Platform Admin Center (PPAC) / Dynamics 365

Here’s how you can access the Power Platform Admin Center

  1. http://admin.powerplatform.com/ – It will redirect to –
    https://admin.powerplatform.microsoft.com/

    From here, you can access the D365 Environments

Power BI Admin Portal

Here’s the URL for the Power BI Admin Portal – https://app.powerbi.com/admin-portal

It’ll open up the Admin Portal which looks like this

SharePoint Admin Center

Here’s how you can check the link of the Admin Center for SharePoint – https://cft158-admin.sharepoint.com/

So basically, https://[domain]-admin.sharepoint.com/

Here, domain is the one that you created while creating the tenant. Example: you didn’t add a custom domain and your domain then look like this in your username admin@[cft158].onmicrosoft.com

And it will look like this –

Teams Admin Center

Here’s a link to the Teams Admin Center and it’ll look like below- https://admin.teams.microsoft.com/dashboard

Hope this was useful.

Here are some more D365 / Power Platform Admin related posts which might be helpful –

  1. Turn Teams On / Off at Org Level, provisioning users | M365 Admin Center Tip
  2. Convert environments between Production and Sandbox | Power Platform Admin Center [Quick Tip]
  3. Create new Sandbox and copy Production over to it in PowerPlatform Admin Center
  4. New ‘Capacity’ analytics on PowerPlatform Admin Center
  5. Create new CDS Environment and Database quickly from PowerApps Admin Center
  6. Sign up for a Dynamics 365 Project Operations (Lite Deployment) environment and provision a new instance | Power Platform

Thank you!

Recover deleted D365 PowerApp environment using PowerShell

To get the most important things out of the way, this can be done only within the first 7 Days.

Deleted Environment

At times, you want to delete an environment you don’t need. But you feel you do need it back. Deleting an environment from the Power Platform Admin Center will Soft Delete it and you can get it back within the first 7 days only.

Here’s some info by Microsoft on that: https://docs.microsoft.com/en-us/power-platform/admin/backup-restore-environments#how-long-are-my-manualon-demand-backups-and-system-backups-retained

Here’s what we can do within the first 7 days to get it back using PowerShell!

Get PowerShell Support for PowerApps

Before we are able to Run PowerShell directly to recover, you’ll need to get the support for PowerApps in your PowerShell first.

Refer this full Microsoft Documentation for full details: https://docs.microsoft.com/en-us/power-platform/admin/powerapps-powershell#power-apps-cmdlets-for-administrators-preview

  1. Open PowerShell and remember to Run it as as Administrator.



  2. Here’s how you can install the capabilities

    And then

    Here are the 2 commands which I used in the screenshots above in PowerShell. Below is the screenshot I took from Microsoft Docs so that you can visualize how the commands look
  • Install-Module -Name Microsoft.PowerApps.Administration.PowerShell
  • Install-Module -Name Microsoft.PowerApps.PowerShell -AllowClobber

    or if you don’t have Admin Access, below code can be used in PowerShell
  • Save-Module -Name Microsoft.PowerApps.Administration.PowerShell -Path
  • Import-Module -Name Microsoft.PowerApps.Administration.PowerShell
  • Save-Module -Name Microsoft.PowerApps.PowerShell -Path
  • Import-Module -Name Microsoft.PowerApps.PowerShell


4. Now, let’s say you are all set to execute your recovery process.

Recovery of Environment

Assuming you have completed the above steps, you can now proceed towards recovering the environment.

  1. Now, in PowerShell, run the below command “Get-AdminPowerAppSoftDeletedEnvironment

  2. You’ll be directed to a Login screen. Enter environment credentials there.


  3. You’ll get the Deleted environments’s details as below. In my case, only 1 Deleted environment was retrieved

    Note the first line i.e. EnvironmentName. Copy that GUID

  4. Next, run the below command after you copied the GUID –
    Recover-AdminPowerAppEnvironment -EnvironmentName 35545668-80c2-4d88-811d-b698bb1bcf59 -WaitUntilFinished $true

  5. Once completed, you won’t see any message but the cursor will be on the new line ready. And some details about the success of the operation.

  6. And in the Admin Center, the environment will be recovered.


    Hope this helps!!


    Here are some more Power Platform related posts you might want to check –
    1. Create new Sandbox and copy Production over to it in PowerPlatform Admin Center
    2. New ‘Capacity’ analytics on PowerPlatform Admin Center
    3. D365 Admin Center: Instance Picker Link

Thank you!


Check Managed Solution failures in Solution History in Dynamics 365 CRM

At times, solution upgrades failed for Managed solution and you have to get in touch with Microsoft support to figure out and get this through –

Example: You’re upgrading a solution like Project Service Automation (or any other for that matter)

Solution Failure

installationFailed

Solution History

So, instead of directly opening a support ticket with Microsoft, it’s best to dig a little into Solution History to get an insight of what exactly failed and to see if you have a quick resolution for this yourself-

  1. Navigate to Solution History in Settings in D365.
    solutionHistory
  2. Switch the view to see All Solutions
    switchView
  3. And open the one that failed recently
    openFailed
  4. In my example particularly, I found the below component had a conflicting dependency which caused the solution to fail-
    dependentComponent

Checking in Dependency Viewer

Now, this isn’t very subtle to check the Dependency Viewer –

  1. In the Exception error message, right click the solutions layers link from the error message itself. Use the scroll wheel itself to click on the link instead of clicking or right clicking.
    openSolutionLayers
    In my case from the above screenshot, the issue was that the managed workflow Update User Work History was set to Draft and hence, the upgrade failed. It could be anything else in your case.
  2. If this doesn’t open in a new window and opens in the new tab with some additional characters in the URL, then trim the beginning and ending of the text in the bar to make it a legitimate URL and press enter
    trim1

trim2

Post this, you’ll need to work your way to fix the solution and then try upgrading again.

So, if you have a particular solution like restoring back the missing component or fulfilling whatever the dependency may be, you can retry upgrade and this should work successfully.

Finally, if things don’t work out, it would be best to open a support ticket with Microsoft and they should help.

Apart from this, there are still failures which unfortunately, only Microsoft could tell. Those are usually the ones that happen due to data as Microsoft Support said. I’ll follow up this blog in the future once I uncover more details.

Hope this helps!

Create a support Queue in Dynamics 365 CRM

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!

Customize Opportunity Close dialog box in D365 CE v9 Unified Interface – Wave 2 update

Oct 2019 Wave 2 update got one of the most asked feature. Being able to customize the Opportunity Close Dialog box.

Assuming, you have enabled 2019 October Wave 2 update enabled for your Organization or you’re reading this post Oct 2019 with Wave 2 Updates already applied to your organization.

For Early Access of Oct 2019 Wave 2 Updates, follow my post here – Early Opt-in for October 2019 Wave 2 Updates

Please note that this feature is still not generally available and is not recommended for Production use yet.

Non-Customizable Opportunity Close Dialog

Up until now, you had this familiar Opportunity Close dialog where all you could do is just fill in the details and Close the Opportunity.

nonCustomizableCloseOpp

And you couldn’t add your own fields or modify it in anyway.

Please note that this feature is only available for the Unified Interface on Orgs enabled for 2019 Wave 2 Updates (Early opt-in or General availability)

Enable Customizable Opportunity Close Form

System Settings

Please note that this is a feature Admins will need to activate for the Organization and won’t be automatically updated once the Wave 2 updates are applied.

Under Sales tab in System Settings, enable Customize close opportunity form
turnOnSettings

Custom Fields

Example: Let’s say I have this field called as Internal Reason, I’ll add it on the Opportunity close entity (which users will use this on the Opportunity Close form when closing an Opportunity)
internalReasonField

And I’ll simply add it to the Opportunity Close Quick Create form
addToForm.png

Opportunity Close Quick Create Form

Once you do this, a Quick Create form you defined will open up instead of the traditional dialog box and you can include your custom fields on the same as well
customizableOppClose

Happy 365ing always! Hope this helps.

Early Opt-in for October 2019 Wave 2 Updates

August 2, 2019 was when the Wave 2 Updates were to be out. And here we are! By now, you should have gotten the option to update the wave 2 updates on your environment(s).

Let take a quick look at how you can enable this for your environment.

Here are the details Microsoft notes on the Early opt in to 2019 release wave 2

Enabling Wave 2 2019 Updates

Visit https://admin.powerplatform.microsoft.com/ (PowerPlatform Admin Center) and go to Environments.

Select the environment
selectEnv.png

Check that the updates are available for Activating. Initially the 2019 release wave 2 updates will appear Off. Click Manage.
Please note that you should try this on the Sandbox first before opting to apply on Production directly.
manageButton

Click on Update now

updateNow

Click Confirm.
confirm

And the Updating will start in a few moments.

Progress

You’ll see that the Apps are being updated as shown below for a few hours
updating

As and when each of the apps complete, it’ll show progress as below
partialComplete.png

Once complete, this will be the status
completeSetup.png

2019 Wave 2 Updates Applied

Once completed, you can log into Dynamics and check the About section to find out that the updates have been applied
completed

Here’s what everything’s included in the 2019 wave 2 updates: 2019 release wave 2 features available for early access

Happy 365ing! Hope this helps.

Date and Time field’s Time-Zone behavior in D365

In most cases, customizers/administrators leave the Date & Time field as Local without paying much attention to detail.

types

With involvement of time, there are 2 behaviors while creating the field (or changing them, but there’s a catch)

You can change from Local to Time-Zone Independent any time, but can’t change from Time-Zone Independent to User Local once saved this way.
cantChangeBehavior

User Local

The Date & Time displayed in this field will be converted to the time-zone you are situated in.

localTime

Let’s say, the Date & Time is stored in UTC behind the scenes was 25th June 2019 6.30 PM, so whatever was stored, it will be converted to your System User’s local time according to the Settings. See below –

myTimeZone.png

Time-Zone Independent

This type of Date & Time of field, the time is stored in UTC, regardless of where you are located in the world.

timeZoneInd

If it is 6.30 PM on 25th June in UTC, it will be 12 AM in India on 26th June

 

It’s pretty basic, but needs to be done carefully!

Hope this helps.

Get SharePoint Document Location link on field on create in D365

I’ve been working on getting the SharePoint Document’s link to get back into D365 but looks like it can’t come back and get tagged to the record it was created from.

I tried to fire off a plugin on SharePoint Document record create, but in vain. Flow didn’t do justice since SharePoint Document entity doesn’t support Change Tracking.

So, I retrieved the Absolute URL of the “SharePoint Document Location” entity on it’s create itself so that I have the link once the record is created. And click that link to open the folder in SharePoint.

Workflow to wait and then fetch

So if you immediately make a call to retrieve the Absolute URL in the plugin code you’ve written on Create won’t work because Absolute URL gets created moments after the actual Location record is created unlike being passed in the execution context.

My approach is to fire the workflow on the create of the SharePoint Document Location record and Wait for 1 minute.

wfBody

After 1 minute, set off the flag to call the plugin and fetch the Absolute URL as shown below –

updateFlag

Retrieve Absolute URL in Plugin

You can use RetrieveAbsoluteAndSiteCollectionUrlRequest message to retrieve the SiteCollection URL and the Absolute URL of the document folder of the record

retrieveAbsolute

 

Working

  1. When you open the Document sub-grid on the record for the first time, a Document Location record is created –
    openForFirst
  2. The workflow designed above will run and fire off the plugin after 1 minute. The plugin will then make the message request go through to get you the Absolute URL as below –
    link2
  3. And probably you can use that link to open up the folder by clicking on the field that has this URL or send it across in email to internal users (whatever suits your requirements)
    linkInField
  4. It will open up the SP folder for that record and will have all the documents you attach in the Document sub-grid on the record.
    spFolder

Hope this helps!

Restrict User Access to a D365 instance using Security Groups

Use Case

You have multiple instances and you don’t want every member with a D365 license to be able to access each of those environments. How do you tackle this? Answer is using Security Groups on the Environments and Users.

Creating Security Group

In Office 365, create a Security Group and add members to it who should have access to the desired environment.

  1. Navigate to Groups in Office 365 and create a New Group. Give it a suitable name.
    creategroup
    groupname
  2. Add members to the Group who should have access. Click on Edit as shown below to Add members to the group and select the members and save it.
    editmembers
    addmembers
    membersadded
  3. Your Security Group is ready.
    securitygroupready

Apply Security Group to the D365 instance

  1. Navigate to Dynamics 365 Admin Center and select Edit on the instance you want to apply the Security Group on.
    editinstance
  2. Select the Security Group field and select the Security Group you created.
    selectsecuritygroup
  3. Click Next.
    clicknext
  4. Save once confirmed that you have selected the correct Security Group.
    saveinstance
    That’s it.

Who all can access the environment

All those are a part of the Security Group applied to the instance will have access to the environment including the Global Administrator
enabledusers

Rest of the users will be in the Disabled Users list
disabledusers

And if they try to access the environment, they will not be able to and will see this –
accessdenied

Hope that was easy! 🙂