Permissions in Project in Project Operations

By default so far, Users added to the Project have full access if not controlled using Security Role. So here’s a simple tweak to restrict some users from having full access on Projects!

Enable Permissions in Projects

Given that you have correct Sys Admin rights in Project Operations, here’s how you can enable Permissions on a Project –

  1. Navigate to the Settings area in Project Operations.


  2. Look for Feature Control in the ribbon and drop down, you’ll see Permissions on Project control.

  3. When you turn this one, note that it cannot be turned off later. And this is a System User level change.
    Also, here’s the link mentioned in the message: https://learn.microsoft.com/en-us/dynamics365/project-operations/project-management/access-control-on-task-grid?WT.mc_id=DX-MVP-5003911

Permissions Settings

Now, in a Project, you can navigate to any System User and see the below –

  1. Navigating to this user, I can see the below option in the ribbon button.

  2. And I see only 2 options – Full or Read-only.
    By default, they are all selected for Full permissions. So this setting gives you option to set as Read-Only on the Project.

This was a small tweak but useful if you want to be careful with too many resources having access to the project for editing where shouldn’t have to from the permissions/security role standpoint.

Thank you!

New Copy Project Experience in Project Operations

For quite some time, you already had the classic Copy Project experience in Project Operations which is as follows –
You had the Copy Project button on the top of the Project in the ribbon-

And it just used to start.


And once the Copy is done, it’ll append ‘- Copy’ to the end of the Project name and show any validations on the copied project based on when it is copied.


So, here’s how the new copy experience changes things!


New Copy Experience

So, in order to experience the new Project Copy, you’ll have to enable it from Settings like any other Project Operations feature –

  1. Given you have Admin privileges, you can navigate to Settings.


  2. And then look for Enable Copy Project New Experience.

  3. It’ll ask you for confirmation.

  4. Once this is enabled, you can test by using the same Copy Project button.


    And here, you now get a modal pop-up with some preferences before the Copy process begin. This lets you choose how the copied project takes place.

    So, I made some changes before copying like the Name, Calendar Template and Team Member preferences before I hit Copy.

  5. And once you click Copy, the same copy process takes place but with the preferences you set.
    It takes a few moments to copy and it’ll ask you to navigate away from the current page and take you to the new page.
    Once you are in the new Page, it’ll then show this notification while the background processes take place.

    And that’s the new Project experience for you!! 😊

Hope this was helpful!

Thank you!

Tools to perform actions in Custom Copilots | Copilot Studio

If you are new to modifying existing Copilots and creating some of your own, here’s how you can use Actions in Copilots to ‘perform an operation’ rather that using AI to only ‘query’ information

Tools in Custom Copilots

Given that you are building a Custom Copilot (or even editing an existing one), here’s where you can add Tools from –

  1. You can see that Tools is also a section in your custom copilot.

  2. When you click on Add Tool, you’ll be able to select from a variety of readymade connectors available and you can even select from a Connector to an MCP server.
    For simplicity of this example, let’s select a readymade Microsoft Dataverse tool

  3. Just like in Power Automate, this tool will let you select one of the operations supported by Tool in Copilots.
    We’ll select a simple one – Add a row

  4. And it’ll ask you for permission to connect to your environment.

  5. Once you click on Add and configure, it’ll simply give you the configuration page to go ahead and configure the tool.
    I’ll select the parameters as I don’t want to leave it to AI yet.

  6. And then, you can test this once you Save the tool. You’ll see that with the right query, the Tool is hitting the connector as you test.

  7. It’ll ask you for some required fields and finally permission as you are running it for the first time.

  8. Once it successfully creates the record, it’ll respond based on the preferences set in the tool.


  9. This will then create an Account in your environment.

Usage

While interacting with the tool, your Custom Copilot will detect that you are attempting to create a record and it’ll invoke the right tool to do so – which will perform the said operations on your behalf.

Now, this is a simple example but it can extrapolate to larger use cases where you can build meaningful tools for your use cases.

Hope this was useful!

Thank you!

Setting up Codex with Power Platform MCP Server

Amongst available AI clients available, Codex is well-known by ChatGPT and here’s how you can use to configure with Power Platform MCP Server.

Install Codex on VS Code

One of the first things to do is to install Codex as an extension in Visual Studio Code –

  1. Look for the below extension and you should see a ChatGPT icon.

  2. Once this is installed, go to Extensions and you can sign in with your GitHub Pro account.

  3. It’ll open up a Sign-in page and you’ll need to enter your credentials.

  4. Make sure you open a Folder in VS Code and also ensure npm is installed by running this command in terminal ‘npm -v‘.


  5. Next, before you configure the TOML file – make sure you are having powerplatform-mcp installed locally and then configure the TOML file for Codex.

Downloading Power Platform MCP locally and connecting to the MCP

Now that Codex is installed and NPM is installed as well. Let’s first download Power Platform MCP first and then connect it to the Power Platform MCP environment –

  1. Let’s check if PowerPlatform-MCP is already installed or not by checking its version number.
    Below, it says that it didn’t find zsh, means powerplatform-mcp is not installed locally.

  2. Because I use a Mac, I can do so using Homebrew. You can check alternatively on doing this using Windows and downloading using Powershell.
    In case you face permission issues on the device, you can just run the below command –
    sudo npm install -g powerplatform-mcp” and you should see the packages getting downloaded successfully.

  3. Now, go ahead and configure the Toml file.

  4. Then, in the TOML file, you can enter the configuration like so –

  5. And when you try to query in Codex, you’ll see the results come through in the form of answers.

Hope this was useful!

Thank you!

Finding Indexed Columns in Dataverse Search

In recent times, you must be seeing Indexed Search in Dataverse. Here’s how to make sure you can configure those.

Indexed Search

Given the right permissions, you can go to Power Platform Admin Center (https://make.powerapps.com/) –

  1. Open Solutions, you then be able to scroll down to Default solutions –

  2. Once you open Default Solution, or any other Solution which has tables whose tables you want to index. Click on Overview and then you’ll see Dataverse search on the right hand side.

  3. And when you view to the right, you’ll see a button called ‘Manage search index

  4. And when you click on Manage search index, you’ll see list of tables enabled for Search.

  5. And when it says the no. of columns added, they can be seen from the Quick Find View.


  6. And you’ll see the columns selected to be found.


This will then result in the Search being reflected based on the Find columns shown here.

Thank you!

Time and Expense Agent [Production Ready Preview] – Part 1

In between all the AI conversations, you wouldn’t want to be kept wondering what Agents in Power Platform/Dynamics 365 Applications are capable of.

So, the name of the Agent itself suggests their capability and one such agent is Time and Expense Agent.

Enable Time and Expense Agent

Just like any other Project Operations features, you can enable the Time and Expense Entry Agent from the Settings area as shown below –

  1. Navigate to Settings and then to Parameters.


  2. Then, drop down from the Feature control menu and then look for the Enable Time and Expense Entry agent option.

  3. You’ll be asked to confirm and you can first read through the instructions.

  4. Once you click enable, it takes a few moments to complete loading and then you get to Download the policy document for Time and Expense entries.


  5. Once you click on Download, a Microsoft Doc it just opens in a new tab. Link: https://learn.microsoft.com/en-us/dynamics365/project-operations/approvals/approvals-agent-policy#policy-document-examplesnt-policy?WT.mc_id=DX-MVP-5003911

    Scroll down in this document, you’ll find Policy Document for each type of Entry.
    Click on the same and then you’ll be able to save a Doc file.


    Download what is exported when you click the above link.
    Here’s what the document looks like, it looks like an SOP designed for internal processes.

  6. While you are reviewing the document, also note that the Time Entry agent is now a new area in My Work in Projects in your Project Operations SiteMap.

Setup Approvals Agents as an Admin

Now, you need to first set the Approvals Agent up so that it can be used –

  1. Open Power Apps App Builder (https://make.powerapps.com/) and make sure to open the right environment.
    Then look for the solution Project Service Agent

  2. Then, open Objects and then Connection References. Look for the ones marked as Add to Solution as shown.

  3. Then select CDS solution (If you can remember it from a while ago 😊). Then click Save.

  4. Then open the CDS Default Solution as shown below –

  5. In the solution, go to Connection References and you should see the ones which you added in earlier steps. Edit the added connection and then on the right hand pane, select New Connection.

  6. Once you click on New Connection, it’ll open a New Tab and you’ll need to search Copilot Studio.

  7. Click on it, and it’ll ask you to create a new connection. Click Create.

  8. Then, you’ll be asked to login (most likely, you’ll want to use the logged in user)

  9. Then, the Connection will appear once logged in. After this, go back to the Connection in the CDS solution.

  10. You’ll now be able to select this connection.
    You’ll be asked to Save Changes.

  11. Then, once this is done, go back to Project Service Agent solution and go to Cloud Flows. Look for Approvals Agent trigger (Production-ready preview) and turn it on.

Watch out for Part 2 on this series to use the Approvals Agent! Coming Early Sep 2025.

Thank you!

Time Entry Calendar in Project Operations

If you have been used to doing Time Entries daily on the classic Time Entry grid and that has been a habit for quite some time, you might not realize that it is slower and inefficient to do, just because you got used to it now.
So, here’s Time Entry calendar view which is better way to visualize and do Time Entries! This is in Preview as of the day of writing this post.

Enable Time Entry Calendar View

Here’s how you can turn on your Time Entry Calendar from Project Operations’ Settings

  1. Navigate to Settings Area in Project Operations Model-Driven app.


  2. Then drop down form Features to find the Time Entry Calendar listed.


  3. Click on it to turn it on. It’ll ask for confirmation, it ask describes what it does.


How Time Entry Calendar works?

Here’s how Time Entry Calendar feature works when you want to do Time Entries.

  1. Now when you navigate to the Time Entries from My Work (or wherever you have put it), you’ll see this new option in My Work called as Time Entry Calendar, while you existing Time Entry section still exists as is.

  2. When it loads, you can see the Time Entries now appear like how allocations appear on your Schedule Board, gives you a better way to visualize Time Entries to be done and and most importantly, select the Time for the Time Entry.
    You can visualize Daily, Weekly and Monthly.


  3. You can even click on the Time you want to make Time Entry on and the window pane will let you drill down to the Task level on the Project which you want to make Time Entry on.

Hope this was useful!

Thank you!

Showing SharePoint Documents Grid on a Form Tab in Dynamics 365 CRM

While adding Tabs, Sections & Fields is fairly straight forward in Dynamics 365 CRM, showing the “Documents” tab which is accessible from Related section isn’t.

So, here’s how to do it when you need to.

Exporting customizations.xml with Form

Here’s what you need to first do in order to setup the Documents folder on the main form –

  1. Assuming “Docs” is the name of the tab you want to place your SharePoint library in. Add any field for reference which is not used on the form elsewhere. In my case, I’m choosing Address 2: Latitude for easy identification.

  2. Then, make sure you add the Form in a solution and export the solution.


    And then export it –


    And choose it to be Unmanaged to avoid any hassles in case you need to continue customizing this table further


  3. Then, extract the solution folder itself and open customizations.xml.
    Now when you extract the same, find the Docs tab and locate the Control you added.

  4. Now, copy the below code and replace it with the <control> which is highlighted in the screenshot above.
    <control id="DocumentSubGrid" classid="{E7A81278-8635-4d9e-8D4D-59480B391C5B}" indicationOfSubgrid="true" uniqueid="{9cd66b5c-8b7a-6433-c5a5-46a7245dd534}">
    <parameters>
    <ViewId>{0016F9F3-41CC-4276-9D11-04308D15858D}</ViewId>
    <IsUserView>false</IsUserView>
    <RelationshipName>Account_SharepointDocument</RelationshipName>
    <TargetEntityType>sharepointdocument</TargetEntityType>
    <AutoExpand>Fixed</AutoExpand>
    <EnableQuickFind>false</EnableQuickFind>
    <EnableViewPicker>true</EnableViewPicker>
    <ViewIds />
    <EnableJumpBar>false</EnableJumpBar>
    <ChartGridMode>Grid</ChartGridMode>
    <VisualizationId />
    <IsUserChart>false</IsUserChart>
    <EnableChartPicker>false</EnableChartPicker>
    <RecordsPerPage>10</RecordsPerPage>
    <HeaderColorCode>#F3F3F3</HeaderColorCode>
    </parameters>
    </control>

    And paste it in the customizations.xml file where you had the control added.
  5. Now, create a new GUID, you can do so online easily.


  6. Replace this GUID to the uniqueid parameter of the DocumentSubGrid control.


  7. Also, make sure the table which you are enabling this Document tab on the main form – has the correct SharePoint Document relationship entered. In this case, I’m keeping Account, so the RelationshipName is as below –



    And it’s as below –

  8. Now, save the file. Rebundle into a new zip file and import the solution again.
  9. When you refresh the Form, you’ll see that the Documents tab is now on the main form.

Thank you!

Deploy Copilot for Sales in your organization – Part 1 | Provisioning

Here’s how you can setup Copilot for Sales in your organization given that you have the correct privileges –

  1. Make sure Copilot for Sales license is assigned to the User who will be using it.

  2. Then, in the Admin Center, go to Integrated Apps under Settings and look for Get Apps.


  3. Search for Copilot for Search in the box on the top right and Copilot For Sales will show up as follows.

  4. Once you click Get it now, you’ll need to confirm the same.

  5. It’ll then continue to setup and show the App that is getting deployed which is part of the Apps setup in M365 itself.

  6. It’ll also let you either select the Entire Organization or select the Users whom you want to deploy this to.

  7. Finally, Accept the permissions listed in case of no objections based on your orgs’ policies.

  8. You’ll need to re-authenticate with the Admin User you are using to set this up with.

  9. Once done, you’ll see that the permissions are accepted.


  10. And finally you can Finish the deployment.

  11. This is when the Deployment is completed.

  12. And you can confirm that the App is now enabled for the said user.

In the next post [Releasing on 8th May 2025], we’ll see how you can setup Copilot for Sales under it’s own Settings through a Tenant Administrator!

Hope this was useful!

Thank you!

Project Task Progress Update in Project Operations & Mark Task as Completed

Up until now, you had to do Time Entries to mark a Project Task as completed. But, this makes difficult to gauge the progress of the project in actuality as some tasks might need to be marked as completed without having to do remaining Time Entries on them.

Here’s when marking Project Task as Completed comes in handy.

Default Behavior for Project Tasks in Project Operations

By default, you won’t be able to edit the % of the task in the Project Task Grid –

  1. Till now, you are able to directly mark a Task as complete by using the below option –

  2. And it’ll mark the task as Completed to 100%. But, when hover over the % completed, it’ll say that it’s a read-only and can’t be edited to put your custom % in there.

  3. So, let’s see how this feature will let you edit the % complete to your desired number.

Enable marking Project Tasks as completed

In Project Parameters, you can find the Feature to mark Project Task as completed –

  1. Drop down on the Feature Control and you’ll see that Task C

Mark Project Tasks as completed

When you enable this, you’ll see the below on the Project –

  1. The Project form will have the field to allow Project Tasks to have custom progress % option.

  2. Once you do this, you’ll then be able to hover over the Project Task and enter the % you desire.

Hope this was useful!

Thank you!