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!

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!

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!

Multi-currency Cost Price List in Project Operations Lite

Here’s how you can have a Global Price List under an Org Unit without tying it to the currency of the base Org Unit which is the Default use case.

Currently, here’s how the default behavior is without having the multi-currency cost price list disabled –

Now, let’s see how this will change when we have the Multi-currency cost price list enabled for your environment.

Multi-currency Cost Price List

This can be enabled from Project Parameters. Here’s how you do this provided you have the correct access –

  1. Go to Project Parameter record in PO Lite, you’ll see this – which you can select Yes and save to enable it.



  2. When you enable, it’ll show this message before you confirm –
    You are changing the way a Cost Price List is selected by system. The setting you are choosing indicates that the system will no longer select a cost price by matching the currency of the price list with the currency of the contracting unit. Any cost price list irrespective of currency could be selected as long as it is applicable for the date. Please ensure that you understand the impact before making this change. Please note that this will impact cost price list defaulting for ongoing projects as well.


  3. Now, when you have the same enabled, you’ll be able to add a Cost Price list of different currency than that of the Organization Unit.


  4. If you see above, the different currencies can exist for the Organization which has a certain currency.

Behavior

Here’s a caveat when you select a multi-currency Cost Price List still

  1. You cannot have the Start and End Dates overlap each other even when you have different currencies. When you try to do this, it’ll give you the below error.

  2. When Time Entries are made, the Inter-Organizational Sales Actuals are also created based on the Cost Price from that Price List.





Being able to schedule for Resources across multiple geographies

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!

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!

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

Project Status Update Reports on Projects using Copilot in Project Operations

Now that you must have enabled Copilot for Project Operations [If not, you can refer this post to learn how you can enable Copilot for Project Operations – Enable Copilot for Project Operations]

Note: Please note that this is a Preview feature at the time of writing this post and hence, not recommended for Production usage.

Enable Copilot For Project Operations

First, you need to ensure that Copilot is enabled for your Project Operations environment – Enable Copilot for Project Operations

Once this is enabled, you’ll be able to see Copilot on the ribbon button on the Project. Let’s look at the same in the below section.

Project Status Update Report

Now that you have Copilot enabled for Project Operations, you can now create Task Plans for a Project in Project Operations –

  1. When you navigate to a Project, you’ll see Copilot appear on the Ribbon given that you have enabled it for your Project Operations instance.

  2. Once you select Status Report, it’ll give you option to generate either an Internal or an External Report. Then it runs in the background and takes a few minutes till Copilot will gather all the information for you and generate a report.




  3. External Report generated is as below –



  4. Internal Report generated is as below –



Here’s Microsoft’s Full Documentation on how Project Status Update Reports are generated in Project Operations’ Copilot (Preview) – https://learn.microsoft.com/en-us/dynamics365/release-plan/2023wave1/finance-operations/dynamics365-project-operations/generate-project-status-reports-using-project-manager-copilot?WT.mc_id=DX-MVP-5003911

Hope this was useful!

Thank you!

Risk Assessments on Projects using Copilot in Project Operations

Now that you must have enabled Copilot for Project Operations [If not, you can refer this post to learn how you can enable Copilot for Project Operations – Enable Copilot for Project Operations]

Note: Please note that this is a Preview feature at the time of writing this post and hence, not recommended for Production usage.

Enable Copilot For Project Operations

First, you need to ensure that Copilot is enabled for your Project Operations environment – Enable Copilot for Project Operations

Once this is enabled, you’ll be able to see Copilot on the ribbon button on the Project. Let’s look at the same in the below section.

Risk Assessment

Now that you have Copilot enabled for Project Operations, you can now create Task Plans for a Project in Project Operations –

  1. When you navigate to a Project, you’ll see Copilot appear on the Ribbon given that you have enabled it for your Project Operations instance.

  2. Once you select Risk Assessment, it runs in the background and takes a few minutes till Copilot will populate the Risks for you.



  3. Once this is generated in a few moments, it appears in the Risks tab on the Project itself.


  4. Additionally, you are free to use this in reporting as well

Here’s Microsoft’s Full Documentation on how Risk Assessments work in Project Operations’ Copilot (Preview) – https://learn.microsoft.com/en-us/dynamics365/release-plan/2023wave1/finance-operations/dynamics365-project-operations/assess-issues-risks-project-using-project-manager-copilot?WT.mc_id=DX-MVP-5003911

Hope this was useful!

Thank you!