Skip to main content

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:

  1. 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.
  1. 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.

  2. 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.

  3. 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.

  4. 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).

  5. 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:

  1. 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.

InputDefaultNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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.

{
"data": [
{
"odata.type": "PS.PublishedProject"
}
]
}

List Tasks

List all the tasks in a given project | key: listTasks

InputNotesExample
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

InputNotesExample
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

InputDefaultNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
Connection
connection
/ Required
connection
 
 
Project GUID
string
/ Required
guId
Provide a string value for the GUID
9840c3b6-ac3d-ec11-bea0-00155d788e0a