Deploy Custom Copilot to Teams as an App

Here’s how you can deploy a Custom Copilot to a Teams Chat given that your Custom Copilot is ready and Published.

In case you are also looking to create your first Copilot, this post might help you [although it has a different use case: Create your first custom Copilot for Customer Service Hub – Part 1 | Create Copilot]

Let’s see how you can now deploy your Copilot to Teams chat. One of the first ways to deploy your Copilot!

Custom Copilot in Copilot Studio

Here’s your custom copilot and here’s how you can publish it to Teams chat –

  1. Go to the Channels section in the Custom Copilot. Make sure it is already Published.

  2. When Copilot for Teams is yet not enabled, you’ll see a button to enabled for Teams called as “Turn On Teams” as shown below.


  3. When you turn it on, it takes a few moments and the Bot is then ready to be opened in Teams.
    You also have preferences to set around it’s access and whom do you want to share it with.


  4. First, you can click Open agent and make sure it’s letting you add to your own Teams as an App.

  5. When you click on Open agent, it’ll redirect you to your Teams asking you to confirm if you want to add it to Teams as an App.

  6. Once you click Add, you can see it appear in the chat as well as an App which you can pin.
    And that’s how the interaction with your Bot will be.

  7. In my Use Case, I’m simply mentioning the name of the Project and who the new PMO should be for that project.
    So, based on the above chat, I’m setting Abhishek Kumar as the new PM for the BH Road Project and I can see it reflect in Project Operations. Behind the scenes, my Custom Copilot is using Flow to update the Project Manager on the Project, simple!

  8. Coming back to settings on availability of the bot, you can click on Availability Options and see the below settings.



    and then, you can either share a link, share it with the org or download and manually upload to Teams.

Hope this was useful!

Thank you!

Project Estimate updates feature in Project Operations parameters

If you’ve worked on Project Operations for a while and are used to managing a Project and adding Expense and Material Estimates to a Project, you might have gotten used to putting things into the Materials and Expense Estimates tab – but this is now further simplified using Project estimate updates feature.

Let’s look at how this works!

Default Layout of Estimates on a Project

Let’s see below how the default Estimates appear on a project before the feature is enabled –

  1. If you open a Project, you’ll find your Estimates tab here. It shows the distribution of time-phased estimates and this is non-editable

  2. And the Material Estimates and Expense Estimates are their own separate tabs.

    Expense Estimates


    Material Estimates

  3. Now, let’s go ahead and enable the Project estimate updates feature and look at the changes thereon.


    You’ll be asked for confirmation before proceeding as this feature cannot be turned off.

Project estimate updates

Now, let’s look at how the Project estimate updates will appear –

  1. The original Estimates tab which was static is now renamed as Time phased estimates

  2. And the Material Estimates and Expense Estimates are consolidated under the Estimates tab.
    Expense Estimates are seen as below


    And there’s a way to switch between Expenses and Materials


    And the Material Estimates are as below –

Hope this was useful!

Thank you!

Allocate Storage Capacity for Dataverse environments | Power Platform Admin Center

As Dynamics 365 storage capacity is expensive and need to meticulously manage the same is of prime importance, Microsoft is providing a way to allocate the storage capacity amongst the Dataverse environments.

So, here’s a way to allocate capacity between Database, File and Log types for each Dataverse environment and get take corrective actions when the capacity is reached.

Manage Capacity

Given you have correct rights in the Power Platform Admin Center, you’ll be able to see the Capacity under Resources –

  1. On the left hand menu in Power Platform Admin Center, look for Resources as shown below –



  2. When you see the list of all the environments, select any one to see the option to go to the Storage Allocation page as shown below.

  3. Once you are in this page, you’ll see the total consumption of Database, Log and File types across all environments – and you’ll see the button to manage this capacity amongst the environments.

  4. Now, when I click the Manage Capacity button, I’ll see a list of the environments and whether they are already within capacity or not. I can then select the environment which want to allocate/review the allocated capacity for –

  5. When I select the environment here, I’ll see that by default nothing has been allocated under this new model – but I can then enter thresholds for each type within the available space and not less than what is already consumed.

    By default, the values are blank.

  6. Now, since I have some numbers and made sure to draw from the available capacity if the thresholds are exceeded, I’ll click save for the consumption meters to show up indicating that the allocation is now saved.

This way, you can keep the environment consumption in check and make other environments take up the unallocated space and take corrective actions.

Best is to keep less used sandbox environments consume lesser space.

Hope this was useful!

Thank you!

Project Contract Price List Defaulting Behavior in Project Operations

In Project Operations, if you are creating Project Contracts, you must be adding them explicitly to the created Project Contract. Also, the ways to create a Project Contract might be different in your case.

Let’s review some options on how you can configure Project Operations to create attach a Project Price List to a Project Contract in Project Operations –

Project Parameters for Price Lists Defaults

Here are some options on how you can set preferences for Project Price List Contract creation in Project Operations –

  1. If you navigate to Project Parameters in Project Operations, you’ll see the below section where you can set Defaults for setting Price Lists on the Project Contract.


  2. If you notice, the Price List Defaulting behavior applies to when the Project Contract is created as Project Contract controls the Pricing in project operations.

    Below are the two scenarios in which Project Contract can be created –
    1. Direct Project Contract Creation
    2. Project Contract Creation from Quote.

    And option on how Custom Pricing should apply is provided.

Default Behavior

Let’s look at the scenario of what happens when you create a Project Contract directly or through a Quote or without a Quote and create it directly –

  1. The Project Contract will be created without associating a Project Price List and you’ll see this notification on the Project Contract asking you to associate a Project Contract Price List to the Contract for Pricing to be calculated –

For Direct Project Contract Creation

Let’s see what options we have for direct Contract creation and implications of each –

  1. Below are the 2 options available when creating Project Contracts directly i.e. not going from a Quote being marked as Won.


  2. And if we select the first option i.e. to Associate existing applicable standard price lists to project contracts, we have to also set a Price List in the Project Parameter itself to be defaulted.


  3. You’ll see a Pricelist tab on the project parameter record itself and you can add a Price List which you want to be considered as default.

  4. Now, when you create a Project Contract, the same Price List will be defaulted to the Project Price List tab and you won’t see the notification.



  5. And when you choose to associate a “copy” of the Default Price List set in the Project Parameter.

  6. And when you now create a Project Contract directly, you’ll rather see a new Project Price List created by copying the one defaulted.

For Project Contract Created from Quote

Let’s see what options we have for Contract creation from Quote and implications of each option available –

  1. This is the parameter to configure for Project Contracts created from Quote.


  2. And below are the options available when creating Project Contracts from Quotes on what types of Price Lists should be associated/created for Contracts.


  3. When we choose the first option to associate the Quote Price List to Project Contract, as below –


    we’ll see in second screenshot how the Price List is associated to the created Contract.
    I have the below Quote Price List associated with the Quote


    Now when I mark the Quote as Won, this Price List will be associated with the created Contract, this Price List is associated with the Contract itself without creating a new copy of any other Price List.

  4. When I select the second option to associate quote price list to project contract with contract-specific price overrides for components estimated on the Quote.


  5. So what this does is, for example, I’ve quoted some hours for Supervisor on the Quote and overridden the Price of one of the Quote Line Details


    And when I create a Project Contract out of this Quote,

  6. For the next option, as it states, you can simply create a Copy of the Prict List associated on the Quote Price List to the Contract Price list so that the reference can be of the Quote’s Price List but the Contract will have it’s own copy and not reference the one on the Quote already.


    Now, let’s say I have this Price List on the Quote

Custom Pricing Options

Let’s look at some Custom Pricing Options –

  1. We have the below 2 options for how Custom Pricing should be calculated. If none is selected, the Custom Pricing button on the Quote Lines and Contract Lines won’t function.


  2. Now, when the Option 1 is selected i.e. Create full copy of the standard price lists – this will work how it used to in PSA. It’ll create a timestamped copy of the Project Price List which is already associated with the Contract.


    See below –
    It’ll create a new Price List and will retain all the Price List items which were part of the original Price List.


    And this is the timestamped copy of the Price List which includes full Price List Items included.


    And the items are included as well –


  3. Now, when you select the second option i.e. Create protected price overrides for price list components used on the quote or contract.


  4. It’ll create a copy but with only the items referenced in the Contract Line / Quote Line.


    It’ll create a Price Override record in the referenced Price List itself. So, if you open the Price List, you’ll find the Override as below –




Hope this was useful!

Thank you!

Hide Resources from Schedule Board in Project Operations [Quick Tip]

In case you want a Resource to not be visible for Resource Managers to find and book, here’s how you can choose to hide them without having to work through filters

Default Behavior

Here’s what the default behavior will work for all Resource where you see a Resource like below – We are considering the example “Priyesh Wagh” as a Bookable Resource.


Now, let’s hide Priyesh Wagh as a Bookable Resource from the Schedule Board.

Hide Bookable Resources from Schedule Board

Fortunately, here’s how you hide Bookable Resources from appearing on the Schedule Board-

  1. Go to Resources table in the Resources area in the Project Operations sitemap. And look for the Resource you want to hide.

  2. And, go to the Scheduling tab and look for the below highlighted option called ‘Display On Schedule Board‘ which would be set to Yes. Set it to No and then save the record.


  3. Once this is set to No, then go back and Refresh the Schedule Board and Resource would be hidden. Even if you find the Resource, you won’t be able to find it.


Hope this was useful!

Thank you!

Power Platform Tools for Visual Studio

Here’s how you can quickly deploy and debug Dynamics 365 CRM plugins using Power Platforms Tools in Visual Studio

This is the first post in the series and once complete setting up Power Platform Tools for Visual Studio, I’ll follow up with writing and deploying C# CRM Plugins through Power Platform Tools for Visual Studio!

Let’s setup Power Platform Tools for Visual Studio first!

Getting Power Platform Tools in Visual Studio

Here’s how you can configure Power Platform Tools in Visual Studio from the Marketplace –

  1. In your Visual Studio, under Extensions, click on Manage Extensions.

  2. Then, search for Power Platform Tools and you’ll find on in the top few results itself which you will be able to identify as highlighted below.
    Click to install the “Power Platform Tools for VS 2022“

  3. You’ll need to close Visual Studio for the installation to be proceed.

  4. Then, it’ll continue as a VSIX Installer and continue to install this extension for your VS.

  5. And this will be completed in a few moments.

  6. Once done, when you open Visual Studio back again, you’ll find “Connect to Dataverse” under Tools section in Visual Studio

  7. It’ll ask you to authenticate into your Dataverse environment. This doesn’t work with accounts using MFA – so for this demonstration, I turned off MFA temporarily for my trial environment.

  8. Then, I was asked to select the environment within the tenant.

  9. Now, I was asked to choose the Solution within the selected environment.


  10. Now, I could see all the Tables expanded in the Power Platform Explorer view.

  11. When you minimize, this is what you’ll see. You’ll see all items available to work with.


Next, I’ll demonstrate on registering a Plugin Assembly from Visual Studio Tools and registering a plugin. Watch this space!

Hope this was useful!

Thank you!

Cards in Power Apps

Cards in Power Apps can get you to send Adaptive Cards in Teams chats or channels without having to leave Power Platform to make your card!

Yes, till recently I was having a hard time to make an Adaptive Card in the Adaptive Cards Designer which is outside of the context of Dynamics/Dataverse and then embed it into Flow to be sent to a User – until Cards in Power Apps came along!

Let’s see how we can get started with the same and create our first Card and send in a Teams Chat!

Create a Card in Power Apps Maker Portal

Given you have appropriate access to create and view Cards, here’s how you can create your Card in Power Apps Maker portal –

  1. Navigate to Power Apps Maker Portal (https://make.powerapps.com/) and select the right environment with Dataverse in which you want to create your Cards.

  2. When you click on + New Card, Cards will ask you to name it and add a description.

  3. And once you create – you’ll be taken to the Card Studio.

  4. One the left hand side, you can see the menu which you can identify what the Card can be configured to do.

  5. To keep the function of the Card example, simple – I’m only displaying the logged in user name on click of a button.


  6. Notice that on the right hand side, you have different ways to deploy this Card – like in a Teams Chat.

  7. When in Play Mode, you’ll get to use the Card as it would work when deployed (or sent to a User, in this case), notice on the right hand side, you get a way to deploy the Card whether in a Chat as a link or through a Flow.

    In this example, I’ll choose a Flow.

  8. Now, it’ll initialize a Flow template with necessary steps.

  9. When ready, it’ll give this template for me to complete the Flow.


    Now, in the next section, let’s continue to finish the Flow and send it to an actual user. (Myself 😊)

Sending a Power Apps Card to Teams Chat

Now, let’s work on our Flow to be ready to run –

  1. First step is to Initialize the Card itself with an instance of the Card. Here, we’ll select the Card we just created.

  2. In the second step, you can actually choose who should the Card go out as.

  3. Then, it as ask what should should it post into. I’ve selected Chat with Power Apps since I wanted it to as a personal chat.

  4. Finally, it also needs a recipient – I’ve selected myself here to test it out.

  5. Now, when I run the Flow, I receive a chat message from Power Apps like below –

  6. And it then runs the Card itself! When I click the button as configured, it’ll read the user and display the name.



    Here’s the result!

Hope this was useful!

Thank you!

Rejection & Recall comments on Time Entries

In case you are wondering where are the Rejection Notes in case you need to run reporting on Rejected Time Entries and Approvals – and what you could potentially do with this – this short summary should help.

Rejecting Time Entries Notes

Let’s look at Rejecting the Time Entries Submitted by a Resource –

  1. When you see a Submitted Time Entry. You can choose to Reject a Time Entry.

  2. When you click on Reject, you’ll be asked to enter the Notes.

  3. And then you open the Time Entry record itself, it’ll be in the Notes of the Time Entry record on the Form.


    And that’s where it is which you can choose to send it out to the Resource i.e. upon creation of a Note where Regarding is set as Time Entry. But hang on! There’s another type of Notes that gets attached to the Time Entry as well. See next section –


Recalling Submitted Time Entry Notes

Let’s look at Rejecting the Time Entries Submitted by a Resource –

  1. When you have submitted a Time Entry and the same has been Approved, you can choose to Recall it using this button as shown below –

  2. And then you recall a Submitted Time Entry as opposed to recalling a Draft Time Entry, you’ll be asked to enter the Notes/Reason for recalling an Approved Time Entry as below –

  3. And these Notes too go on the Time Entry record itself.



So, the bottom line is – If you want to send out the Notes to different audience based on where the Note came from – do it alongside identifying the field “Entry Status” so that you know if the Note is supposed to be sent to the Approver or the Bookable Resource.

Thank you

Catalog in Power Platform

Catalogs in Power Platform are a way to distribute managed/unmanaged customization which ready install and extend on other environments. At the time of writing this post, the feature is in Preview.

Get Catalog Manager

Here’s how you can install Catalog Manager from App Source and onto your target environment –

  1. Go to the URL – https://appsource.microsoft.com/en-us/product/dynamics-365/powerappssvc.catalogmanager-preview?flightCodes=dde212e5c66047c59bf2b346c419cef6
    It’ll open in App Source as it’s not directly available from Install Apps in Power Platform Dataverse environments.
    You’ll see this App Source page –

  2. Once you click on Get it now, you’ll need to sign in using the Dynamics 365 Administrator privileges.

  3. Once you sign in successfully, you’ll need to click on Get it now again as shown below.

  4. Then, you’ll be taken to the page shown below where you’ll need to select the environment you want to install the Catalog Manager on. This will be the environment from where you’ll create your Catalog to be available to other environments.

  5. Once you confirm as shown below, Installation process will start like any other Dynamics 365 App.


    And then let it install for a few moments –


    And it’ll complete its installation in about 10 minutes.


  6. Now, once this is installed, check for the security roles available for users to be assigned with.

    Assign these roles to the Users who need to be either of them – below are the details on what the roles do.

Working with Catalog Manager

Now that Catalog Manager is installed, here’s how you can work through it –

  1. In your Apps, you should be able to see the Catalog Manager as well.

  2. Play the App, and in the App, you’ll see the Catalog Publishers table. This is where you have to create a Publisher and add Users from the Publisher for different roles.


  3. Here’s the sample Publisher I created and added the Admin User as a Publisher user as well.

  4. Once this is done, you are all set. Let’s move to the next section.

Create Catalog

Now, let’s look at the process of creating Catalogs which other environments in your Org can browse through and use –

  1. Let’s say you have a Solution which is supposedly a Catalog candidate which others can borrow and install.
    It has a mix of components which are categorized as usable in a Catalog.


  2. Here, you can select the Solution itself and click on Publish to Catalog (Preview) using the button as shown –

  3. Once you click on the Catalog, a dialog will open which you can select as Default

  4. Once you select the Default Catalog Name, you’ll be able to select if the components should be Managed components or unmanaged (as Templates).
    Then, I can choose to not select anything as a Primary Component to keep it simple.

  5. Now, I’ll enter the details as shown below which are self-explanatory.
    Published/Active Publisher will appear from the list and I can fill in the rest of the details which are applicable.

  6. Now, when I click Next, I can enter what the picture/icon should be –

  7. Finally, this is the summary and I can click Submit once done.

  8. Once everything looks good, this will be completed and show success.

  9. Now, since the Catalog is already set to auto-approval, it’ll appear in Catalogs –


Installing from Catalog

Now, as the Catalog is ready to be published, other environments can go in Catalogs and Get it from there in their current environments –

  1. For example, in this environment – I can see it in Catalogs and choose to Get it.

  2. Click Get to start installing.

  3. It’ll start installing.

  4. Once done, you’ll see that it has finished installing.

  5. And when you see the Solutions, since this was a Managed catalog – it’ll get installed as a Managed Solution in the selected environment.

  6. And the Components inside it will be managed too as expected.

Install History

As other Admins/Makers install from Catalog, you’ll see the Install History of the Catalogs in the Catalog Manager App –

  1. Under Install History, you’ll see the details as below –

Here’s Microsoft Documentation on the same – https://learn.microsoft.com/en-us/power-apps/maker/data-platform/catalog-overview?WT.mc_id=DX-MVP-5003911

Hope this was useful!

Thank you!

Setup Power Platform CLI using Windows installer [.msi]

In the past, I had posted about how you can use Microsoft Power Platform CLI from Visual Studio Code – Set up Power Platform Tools in Visual Studio Code | Power Platform CLI.

In this post, I’ll show how you can do so using direct download and installation using .msi file.

Download Power Platform CLI installer

Here’s the link you need to go to in order to download Power Platform CLI –

  1. Visit – https://learn.microsoft.com/en-us/power-platform/developer/howto/install-cli-msi?WT.mc_id=DX-MVP-5003911


  2. Once downloaded, make sure to start the installer, it’ll ask you for confirmation.

  3. It takes a few minutes to complete setting up. Then, you can Run powershell

  4. In PowerShell, you can type pac and enter to see if Power Platform CLI was installed. By default, it’ll connect to the organization your PC is connected to.

  5. Once connected, you’ll see list of commands for the CLI which you can use given you have the appropriate connections.

Hope this was useful!

Thank you!