Microsoft Project Component
Make queries to reporting data from a Project Web App instance
Component key: ms-project
Description
Microsoft Project is a project management software product, developed and sold by Microsoft. This component allows you to interact with your projects, tasks, and assignments by making queries to reporting data from a Project Web App instance.
Connections
OAuth 2.0
To create an new Microsoft Project App Registration:
- Navigate to the Microsoft Entra Identity > Applications > App registrations and select New registration.
- Set the Supported Account types to Accounts in any organizational directory (Any Azure AD directory - Multitenant) so that users outside of your organization (i.e. your customers) can authenticate.
- Set the Redirect URI dropdown as a "Web" platform. In that section add the Prismatic's OAuth callback URL https://oauth2.prismatic.io/callback - as a Redirect URI.
- Select Register to complete.
-
From the App menu navigate to Certificates & Secrets for the app and add a new Client Secret. Save the Value for the Client Secret in the Prismatic Connection Configuration.
-
Navigate to the Overview page save the value listed as the Application (client) ID. This will be your Client ID for the Prismatic Connection Configuration.
-
Navigate to API Permissions and select Add Permission, select the square labeled Sharepoint, and then Delegated permissions. Under the Project section select Project.Read, Project.Write in addition to any other permissions that will be required by your integration. You can use
ProjectWebApp.FullControl
to get started building and choose a more refined set at a later time. -
Finally, to retrieve the Project Web App Site value (also referred to as the PWA site). This can be found by navigating to Microsoft Project 365, clicking the gear settings icon in the top right, and clicking on "PWA Site". You will need to copy the value from the
https://
protocol through to the first slash (do not include the trailing slash or the path portion). -
Additionally, Depending on your PWA site's configuration, user's attempting to authenticate through prismatic may need to be added as members of the site before authentication.
To configure the OAuth 2.0 connection in Prismatic:
- Add an MS Project OAuth 2.0 connection config var:
- Use the Application (client) ID value for the Client ID field.
- Use the Client Secret for the same named field.
- Use the default Authorize URL.
- Replace
<pwaSite>
in the Token URL with the PWA Site value. - Use the same PWA Site value for that field.
Save your integration and you should be able to authenticate a user through MS Project Online with Auth 2.0.
Input | Default | Notes | Example |
---|---|---|---|
Authorize URL string / Required authorizeUrl | https://login.microsoftonline.com/common/oauth2/authorize | The OAuth 2.0 Authorization URL for Microsoft Project | https://login.microsoftonline.com/common/oauth2/authorize |
Client ID string / Required clientId | This value is obtained by creating a new app in Active Directory with the same tenant as your user with a Microsoft Project license | ||
Client Secret password / Required clientSecret | This value can be generated inside your Active Directory application. | ||
PWA Site string / Required pwaSite | The Project Web App Sharepoint Site domain. This is the same value that is supplied for the resource argument of the Token URL. | https://example.sharepoint.com | |
Scopes string Hidden Field scopes | |||
Token URL string / Required tokenUrl | The OAuth 2.0 Token URL for Microsoft Project; replace `<pwaSite>` with the protocol and domain of the PWA Site. Example: https://example.sharepoint.com | https://login.microsoftonline.com/common/oauth2/token?resource=<pwaSite> |
Actions
Check In Draft Project
Mark the status of an existing project to 'Checked In' | key: checkInDraftProject
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Project GUID string / Required guId | Provide a string value for the GUID | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
Checkout Project
Mark an existing project's status as 'Checked Out' | key: checkoutProject
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Project GUID string / Required guId | Provide a string value for the GUID | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
Create Draft Assignment
Create a new assignment in a given draft product | key: createDraftAssignment
Input | Notes | Example |
---|---|---|
Finish Date string assignmentFinishDate | Provide a valid date time value for the finish date of the assignment | 2021-11-04T20:29:49.305Z |
Assignment Start Date string assignmentStartDate | Provide a valid date time value for the start date of the assignment | 2021-11-04T20:29:49.305Z |
Connection connection / Required connection | ||
Project GUID string / Required guId | Provide a string value for the GUID | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
Notes string notes | Provide a string value for notes. | These are example notes. |
Resource Id string resourceId | Provide the unique identifier for the resource | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
Task Id string / Required taskId | Provide a unique identifier for the task. | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
Create Draft Project Resources
Create a new Resource in an existing draft project | key: createDraftProjectResources
Input | Notes | Example |
---|---|---|
Account string account | Provide the unique identifier of the account. | 36923632865023 |
Connection connection / Required connection | ||
Email string email | Provide a valid email address. | someone@example.com |
Project GUID string / Required guId | Provide a string value for the GUID | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
Notes string notes | Provide a string value for notes. | These are example notes. |
Name string resourceName | Provide a string value for the name of the resource. | MyExampleFile.txt |
Create Draft Task
Create a new task in a draft project | key: createDraftTask
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Project GUID string / Required guId | Provide a string value for the GUID | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
Notes string notes | Provide a string value for notes. | These are example notes. |
Parent Id string parentId | Provide the unique identifier of the parent object. | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
Finish Date string taskFinishDate | Provide a valid datetime value for the finish date of the task. | 2021-11-04T20:29:49.305Z |
Task Name string / Required taskName | Provide a string value for the name of the task. | Example Name |
Task Start Date string taskStartDate | Provide a valid datetime value for the start date of a task. | 2021-11-04T20:29:49.305Z |
Create Project
Create a new project | key: createProject
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Project Description string / Required projectDescription | Provide a string value for the description of the project. | This is an example description. |
Project Name string / Required projectName | Provide a string value for the name of the project. The name can NOT contain any special characters. | MyExampleProject |
Project Start Date string / Required projectStartDate | Provide a valid datetime value for the start date of the project. | 2021-11-04T20:29:49.305Z |
Delete Draft Task
Delete an existing task from a draft project | key: deleteDraftTask
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Project GUID string / Required guId | Provide a string value for the GUID | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
Task Id string / Required taskId | Provide a unique identifier for the task. | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
Delete Project
Delete the contents and metadata of an existing project by Id | key: deleteProject
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Project GUID string / Required guId | Provide a string value for the GUID | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
Get Assignment
Get the information and metadata of an assignment by Id | key: getAssignments
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Project GUID string / Required guId | Provide a string value for the GUID | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
Get Draft Task
Get the information or metadata of a task inside a draft project | key: getDraftTask
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Project GUID string / Required guId | Provide a string value for the GUID | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
Task Id string / Required taskId | Provide a unique identifier for the task. | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
Get Project
Get the information and metadata of a project by Id | key: getProject
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Project GUID string / Required guId | Provide a string value for the GUID | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
Get Project Resource
Get the information and metadata of an existing Project Resource by Id | key: getProjectResources
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Project GUID string / Required guId | Provide a string value for the GUID | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
Resource Id string resourceId | Provide the unique identifier for the resource | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
Get Task
Get the information and metadata of a task by Id | key: getTask
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Project GUID string / Required guId | Provide a string value for the GUID | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
Task Id string / Required taskId | Provide a unique identifier for the task. | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
List Assignments
List all the assignments in a given project | key: listAssignments
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Project GUID string / Required guId | Provide a string value for the GUID | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
Page Number string pageNumber | Provide an integer value for which page to return when paginating results. | 3 |
Page Size string pageSize | Provide an integer value for the maximum results returned per page when paginating results. | 20 |
When making queries against the Assignments in your project, it may be helpful to filter out results based on a value.
For example, if you provide $filter = ResourceName eq 'ExampleCustomerName'
to the Query String input, you can filter results for a particular customer.
List Draft Assignments
List all the assignments in a given draft project | key: listDraftAssignments
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Project GUID string / Required guId | Provide a string value for the GUID | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
list Draft Project Resources
List all resources in a draft project | key: listDraftProjectResources
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Project GUID string / Required guId | Provide a string value for the GUID | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
Page Number string pageNumber | Provide an integer value for which page to return when paginating results. | 3 |
Page Size string pageSize | Provide an integer value for the maximum results returned per page when paginating results. | 20 |
List Draft Tasks
List all tasks in a draft project | key: listDraftTasks
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Project GUID string / Required guId | Provide a string value for the GUID | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
Page Number string pageNumber | Provide an integer value for which page to return when paginating results. | 3 |
Page Size string pageSize | Provide an integer value for the maximum results returned per page when paginating results. | 20 |
list Project Resources
List all resources in an existing project | key: listProjectResources
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Project GUID string / Required guId | Provide a string value for the GUID | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
List Projects
List all the projects in a given sharepoint site | key: listProjects
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Page Number string pageNumber | Provide an integer value for which page to return when paginating results. | 3 |
Page Size string pageSize | Provide an integer value for the maximum results returned per page when paginating results. | 20 |
Query String string queryString | Provide a string value to query for a specific property. | $select=ProjectId |
For a Project Web App instance that contains a large number of entities, such as projects, assignments, or tasks, you should limit the data returned using the QueryString input. If you don't limit the data returned, the query can exceed the default limits and affect server performance, which may result in a failed execution. Unlike other Microsoft products, the Project Data service does not implement the $links query option or the $expand query option.
Example Payload for List Projects
{
"data": [
{
"odata.type": "PS.PublishedProject"
}
]
}
List Tasks
List all the tasks in a given project | key: listTasks
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Project GUID string / Required guId | Provide a string value for the GUID | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
Page Number string pageNumber | Provide an integer value for which page to return when paginating results. | 3 |
Page Size string pageSize | Provide an integer value for the maximum results returned per page when paginating results. | 20 |
Publish Draft Project
Publish the draft of an existing project | key: publishDraftProject
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Project GUID string / Required guId | Provide a string value for the GUID | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
Raw Request
Send raw HTTP request to Microsoft Project | key: rawRequest
Input | Default | Notes | Example |
---|---|---|---|
Connection connection / Required connection | |||
Data string data | The HTTP body payload to send to the URL. | {"exampleKey": "Example Data"} | |
Debug Request boolean debugRequest | false | Enabling this flag will log out the current request. | |
File Data string Key Value List fileData | File Data to be sent as a multipart form upload. | [{key: "example.txt", value: "My File Contents"}] | |
File Data File Names string Key Value List fileDataFileNames | File names to apply to the file data inputs. Keys must match the file data keys above. | ||
Form Data string Key Value List formData | The Form Data to be sent as a multipart form upload. | [{"key": "Example Key", "value": new Buffer("Hello World")}] | |
Header string Key Value List headers | A list of headers to send with the request. | User-Agent: curl/7.64.1 | |
Max Retry Count string maxRetries | 0 | The maximum number of retries to attempt. | |
Method string / Required method | The HTTP method to use. | ||
Query Parameter string Key Value List queryParams | A list of query parameters to send with the request. This is the portion at the end of the URL similar to ?key1=value1&key2=value2. | ||
Response Type string / Required responseType | json | The type of data you expect in the response. You can request json, text, or binary data. | |
Retry On All Errors boolean retryAllErrors | false | If true, retries on all erroneous responses regardless of type. | |
Retry Delay (ms) string retryDelayMS | 0 | The delay in milliseconds between retries. | |
Timeout string timeout | The maximum time that a client will await a response to its request | 2000 | |
URL string / Required url | Input the path only (/ProjectServer/Projects(guid'9840c3b6-ac3d-ec11-bea0-00155d788e0a')), The base URL is already included ({pwaSite}/sites/pwa/_api). For example, to connect to {pwaSite}/sites/pwa/_api/ProjectServer/Projects(guid'9840c3b6-ac3d-ec11-bea0-00155d788e0a'), only /ProjectServer/Projects(guid'9840c3b6-ac3d-ec11-bea0-00155d788e0a') is entered in this field. | /ProjectServer/Projects(guid'9840c3b6-ac3d-ec11-bea0-00155d788e0a') | |
Use Exponential Backoff boolean useExponentialBackoff | false | Specifies whether to use a pre-defined exponential backoff strategy for retries. |
Remove Project
Remove the contents and metadata of an existing project by Id | key: removeProject
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Project GUID string / Required guId | Provide a string value for the GUID | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
Submit Product To Workflow
Submit an existing project to a given workflow | key: submitProject
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Project GUID string / Required guId | Provide a string value for the GUID | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
Update Draft
Update the draft of an existing project | key: updateDraft
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Project GUID string / Required guId | Provide a string value for the GUID | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |
Verify Draft
Verify the draft of an existing project | key: verifyDraft
Input | Notes | Example |
---|---|---|
Connection connection / Required connection | ||
Project GUID string / Required guId | Provide a string value for the GUID | 9840c3b6-ac3d-ec11-bea0-00155d788e0a |