Polaris PSA

Polaris PSA is a self-driving professional services automation solution that uses advanced technology to analyze real-time data, and then delivers recommendations to help keep projects, resources, and finances on track. The connector allows you to continuously sync projects, tasks, and resource assignments from Project Online to Polaris and time data from Polaris to Project Online.

This connector is available in the following products and regions:

Service Class Regions
Logic Apps Standard All Logic Apps regions except the following:
     -   Azure Government regions
     -   Azure China regions
     -   US Department of Defense (DoD)
Power Automate Premium All Power Automate regions except the following:
     -   US Government (GCC)
     -   US Government (GCC High)
     -   China Cloud operated by 21Vianet
     -   US Department of Defense (DoD)
Power Apps Premium All Power Apps regions except the following:
     -   US Government (GCC)
     -   US Government (GCC High)
     -   China Cloud operated by 21Vianet
     -   US Department of Defense (DoD)
Contact
Name Polaris Support
URL https://www.replicon.com/polaris/contact-support/
Email support@replicon.com
Connector Metadata
Publisher Replicon Inc
Website https://www.replicon.com/polaris-psa
Privacy policy https://www.replicon.com/terms-and-conditions/privacy-policy
Categories Business Intelligence; Finance

The Polaris PSA connector provides a way to connect Microsoft Project Online to Polaris PSA using Microsoft's Power Automate Platform. Using this connector you can import and sync projects, tasks, and resource assignments from Microsoft Project Plan 3 and Microsoft Project Plan 5 to Polaris PSA, and import and sync validated and approved time data from Polaris PSA to Microsoft Project.

Prerequisites

A Polaris PSA user account with Project Administration permission via https://www.replicon.com/polaris-psa

How to get credentials

You can request a free trial of Polaris PSA here: https://www.replicon.com/polaris-psa/live-demo/

Existing Polaris PSA customers users can use their Polaris PSA user account credentials to authenticate and use the connector.

Get started with your connector

The common use case of Polaris PSA is import and sync projects, tasks, and resource assignments from from Microsoft Project Plan 3 and Microsoft Project Plan 5 to Polaris PSA. Users will then take advantage of Polaris PSA's advanced capabilities to enter and track time (efforts) to the assigned projects and tasks, while project managers and finance and billing administrators can manage the full project lifecycle. Validated and approved time to projects/tasks in Polaris PSA will then be synced back to Microsoft Project.

To get started with the Polaris PSA connector, first ensure that you have a valid Polaris PSA user account with Project Administrator permission set. Once you install the Polaris PSA connector, you will be able to authenticate and 'connect' your Microsoft Project Plan 3 / Microsoft Project Plan 5 account with Polaris PSA via the Power Automate Platform. Use the 2 related Flows to transfer projects, tasks, and resource assignments to Polaris PSA and transfer time data from Polaris PSA to Microsoft Project.

Known issues and limitations

Polaris PSA connector currently supports operations related to Projects, Tasks, Resource Assignments, and Time Data / Efforts. It does not provide operations to create/ update/ read other data objects in either Polaris PSA or Microsoft Project Plan 3 / Microsoft Project Plan 5.

Common errors and remedies

HTTP status code 400: Verify the json request body. Any value in not correct format can lead to this error. You can always reach out to [Polaris Support] (https://www.replicon.com/polaris/contact-support/ "Polaris Support")

HTTP status code 403: Verify that the user configured to connect to Polaris is still active and has System Administrator and Project Administrator permissions in Polaris.

HTTP status code 500: Internal Server Error. The most common reason for this is data inconsistency. Verify JSON request body. Using correct values for the parameters in operations will solve this issue. Reach out to [Polaris Support] (https://www.replicon.com/polaris/contact-support/ "Polaris Support") in case this issue persists

FAQ

  1. What is Polaris PSA? [Polaris PSA] (https://www.replicon.com/polaris-psa) is a self driving PSA which uses advanced technology to analyze real-time data, and then delivers recommendations to help keep projects, resources, and finances on track.

  2. How do I get a Polaris PSA account? Visit [Polaris PSA] (https://www.replicon.com/polaris-psa) for details.

  3. How does Polaris PSA connect to Polaris? The connector uses oAuth2 flow to connect to Polaris PSA. Once connected, it uses the authenticated users permissions in Polaris to perform operations supported by the connector.

  4. Do I need additional user's license to create a flow to connect to Polaris PSA? In general it is recommended to use a separate Admin user with Project Administration permission in Polaris PSA so that flows using the connector works seamlessly. But any existing user in Polaris PSA with correct permission sets can be used to connect to the connector.

Throttling Limits

Name Calls Renewal Period
API calls per connection10060 seconds

Actions

Create Project Or Apply Modifications

Create Project Or Apply Modifications in Polaris

Create Task Hierarchy Or Apply Modifications

Create Task Hierarchy Or Apply Modifications to a Polaris Task

Get Descendant Task Details

Get Hierarchial Task Details from Polaris

Get Project Details

Get the project details from Polaris

Get Tenant End Point Details

Get End Point Details of the Tenant

Get Time Entered Summary

Get Time Entered by Task Uri from Polaris

Get Timesheet Summary

Get Timesheet Summary from Polaris

Get User List

Get User List Data from Polaris

Graph QL query

Make Graph QL queries to Polaris

Move Task

Move Task to a new Parent

Task List Service Get Data

Get Task List Service Data From Polaris

Create Project Or Apply Modifications

Create Project Or Apply Modifications in Polaris

Parameters

Name Key Required Type Description
Host Url for Polaris
hostUrl True string

Polaris Host Url

value
value string

project name to apply

value
value string

project code to apply

percentCompletedToApply
percentCompletedToApply string

percent completed to apply

year
year integer

year of project start date

month
month integer

month of project start date

day
day integer

day of project start date

year
year integer

year of project end date

month
month integer

month of project end date

day
day integer

day of project end date

value
value string

billing type

isProjectLeaderApprovalRequired
isProjectLeaderApprovalRequired string

is project leader approval required

isTimeEntryAllowed
isTimeEntryAllowed string

is time entry allowed

name
name string

billing currency name

name
name string

billing contract name

keyUri
keyUri string

key uri

text
text string

key value item text

uri
uri string

key value item uri

uri
uri string

value uri

projectModificationOptionUri
projectModificationOptionUri string

project modification option uri

unitOfWorkId
unitOfWorkId string

unit of work id

Returns

Create Task Hierarchy Or Apply Modifications

Create Task Hierarchy Or Apply Modifications to a Polaris Task

Parameters

Name Key Required Type Description
Host Url for Polaris
hostUrl True string

Polaris Host Url

uri
uri string

project uri

name
name string

project name

code
code string

project code

parameterCorrelationId
parameterCorrelationId string

parameter correlation id

parameterCorrelationId
parameterCorrelationId string

task parameter correlation id

name
name string

task name to apply

value
value string

task code to apply

value
value string

task description to apply

isClosed
isClosed string

is task closed

year
year integer

year of task start date

month
month integer

month of task start date

day
day integer

day of task start date

year
year integer

year of task end date

month
month integer

year of task end date

day
day integer

year of task end date

value
value string

time and expense entry type value

isTimeEntryAllowed
isTimeEntryAllowed string

is time entry allowed

resourcesToAdd
resourcesToAdd string
resourcesToRemove
resourcesToRemove string
customFieldsToApply
customFieldsToApply
keyValuesToApply
keyValuesToApply
objectExtensionFieldsToApply
objectExtensionFieldsToApply
taskModificationOptionUri
taskModificationOptionUri string

task modification option uri

unitOfWorkId
unitOfWorkId string

unit of work id

Returns

Get Descendant Task Details

Get Hierarchial Task Details from Polaris

Parameters

Name Key Required Type Description
Host Url for Polaris
hostUrl True string

Polaris Host Url

parentUri
parentUri string

parent uri

Returns

Get Project Details

Get the project details from Polaris

Parameters

Name Key Required Type Description
Host Url for Polaris
hostUrl True string

Polaris Host Url

uri
uri string

project uri

name
name string

project name

code
code string

project code

parameterCorrelationId
parameterCorrelationId string

parameter correlation id

Returns

Get Tenant End Point Details

Get End Point Details of the Tenant

Returns

Get Time Entered Summary

Get Time Entered by Task Uri from Polaris

Parameters

Name Key Required Type Description
Host Url for Polaris
hostUrl True string

Polaris Host Url

taskUris
taskUris string

Returns

Get Timesheet Summary

Get Timesheet Summary from Polaris

Parameters

Name Key Required Type Description
Host Url for Polaris
hostUrl True string

Polaris Host Url

timesheetUri
timesheetUri string

timesheet uri

Returns

Get User List

Get User List Data from Polaris

Parameters

Name Key Required Type Description
Host Url for Polaris
hostUrl True string

Polaris Host Url

page
page string

page

pagesize
pagesize string

page size

columnUris
columnUris string
sort
sort

Returns

Graph QL query

Make Graph QL queries to Polaris

Parameters

Name Key Required Type Description
Host Url for Polaris
hostUrl True string

Polaris Host Url

operationName
operationName string

operation name

query
query string

query

Returns

Move Task

Move Task to a new Parent

Parameters

Name Key Required Type Description
Host Url for Polaris
hostUrl True string

Polaris Host Url

taskUri
taskUri string

task uri

targetUri
targetUri string

target uri

moveTaskMethodUri
moveTaskMethodUri string

move task method uri

Returns

Task List Service Get Data

Get Task List Service Data From Polaris

Parameters

Name Key Required Type Description
Host Url for Polaris
hostUrl True string

Polaris Host Url

page
page string

page

pagesize
pagesize string

page size

columnUris
columnUris string
sort
sort

Returns

Triggers

Subscribe to Event triggers

Trigger to Subscribe to Web hook eventis in Polaris

Subscribe to Event triggers

Trigger to Subscribe to Web hook eventis in Polaris

Parameters

Name Key Required Type Description
Host Url for Polaris
hostUrl True string

Polaris Host Url

eventType
eventType string

Event type to subscribe to

Returns

Name Path Type Description
displayText
timesheet.displayText string

display text

uri
timesheet.uri string

uri

slug
timesheet.slug string

slug

approvalStatusUri
approvalStatusUri string

approval status uri

displayText
authority.actingUser.displayText string

user display Text

loginName
authority.actingUser.loginName string

user login name

uri
authority.actingUser.uri string

uri

slug
authority.actingUser.slug string

slug

displayText
authority.displayText string

display text

actingForUser
authority.actingForUser string

acting For user

displayText
authority.authorityType.displayText string

authority type display text

uri
authority.authorityType.uri string

uri

timesheetStatusUri
timesheetStatusUri string

status uri of the timesheet

Definitions

GetTimesheetSummaryResponse

Name Path Type Description
actualPayableTimeCalculationStatus
d.actualPayableTimeCalculationStatus string

status of actual payable time calculation

actualsByActivity
d.actualsByActivity array of object

actuals by activity

activity
d.actualsByActivity.activity object

activity

totalTimeDuration
d.actualsByActivity.totalTimeDuration Duration
actualsByBillingRate
d.actualsByBillingRate array of object

actuals by billing rate

billingRate
d.actualsByBillingRate.billingRate object

billing rate

totalTimeDuration
d.actualsByBillingRate.totalTimeDuration Duration
actualsByDate
d.actualsByDate array of object

actuals by date

breakDuration
d.actualsByDate.breakDuration Duration
date
d.actualsByDate.date Date
hasComments
d.actualsByDate.hasComments boolean

are comments present

isHolidayDayOff
d.actualsByDate.isHolidayDayOff boolean

is holiday day

isWeeklyDayOff
d.actualsByDate.isWeeklyDayOff boolean

is weekly off day

timeOffDuration
d.actualsByDate.timeOffDuration Duration
totalTimeDuration
d.actualsByDate.totalTimeDuration Duration
workingTimeDuration
d.actualsByDate.workingTimeDuration Duration
actualsByPaycode
d.actualsByPaycode array of object

actuals by paycode

items
d.actualsByPaycode object

actuals by paycode item

actualsByProject
d.actualsByProject array of object

actuals by project

code
d.actualsByProject.project.code string

code

displayText
d.actualsByProject.project.displayText string

display text

name
d.actualsByProject.project.name string

name

slug
d.actualsByProject.project.slug string

slug

uri
d.actualsByProject.project.uri string

uri

totalTimeDuration
d.actualsByProject.totalTimeDuration Duration
displayText
d.approvalStatus.displayText string

display text

uri
d.approvalStatus.uri string

uri

attestationStatusUri
d.attestationStatusUri string

attestation status uri

bankedTimeDuration
d.bankedTimeDuration Duration
billableTimeDuration
d.billableTimeDuration Duration
breakDuration
d.breakDuration Duration
dueDate
d.dueDate Date
nonBillableTimeDuration
d.nonBillableTimeDuration Duration
overtimeDuration
d.overtimeDuration Duration
day
d.scriptCalculationStatus.lastDataModification.day integer

day

displayText
d.scriptCalculationStatus.lastDataModification.displayText string

display text

hour
d.scriptCalculationStatus.lastDataModification.hour integer

hour

minute
d.scriptCalculationStatus.lastDataModification.minute integer

minute

month
d.scriptCalculationStatus.lastDataModification.month integer

month

second
d.scriptCalculationStatus.lastDataModification.second integer

second

displayText
d.scriptCalculationStatus.lastDataModification.timeZone.displayText string

display text

ianaName
d.scriptCalculationStatus.lastDataModification.timeZone.ianaName string

iana name

offsetDisplayText
d.scriptCalculationStatus.lastDataModification.timeZone.offsetDisplayText string

offset display text

uri
d.scriptCalculationStatus.lastDataModification.timeZone.uri string

uri

day
d.scriptCalculationStatus.lastDataModification.valueInUtc.day integer

day

hour
d.scriptCalculationStatus.lastDataModification.valueInUtc.hour integer

hour

millisecond
d.scriptCalculationStatus.lastDataModification.valueInUtc.millisecond integer

millisecond

minute
d.scriptCalculationStatus.lastDataModification.valueInUtc.minute integer

minute

month
d.scriptCalculationStatus.lastDataModification.valueInUtc.month integer

month

second
d.scriptCalculationStatus.lastDataModification.valueInUtc.second integer

second

year
d.scriptCalculationStatus.lastDataModification.valueInUtc.year integer

year

year
d.scriptCalculationStatus.lastDataModification.year integer

year

lastFailedAttempt
d.scriptCalculationStatus.lastFailedAttempt object

last failed attempt

day
d.scriptCalculationStatus.lastSuccessfulAttempt.day integer

day

displayText
d.scriptCalculationStatus.lastSuccessfulAttempt.displayText string

display text

hour
d.scriptCalculationStatus.lastSuccessfulAttempt.hour integer

hour

minute
d.scriptCalculationStatus.lastSuccessfulAttempt.minute integer

minute

month
d.scriptCalculationStatus.lastSuccessfulAttempt.month integer

month

second
d.scriptCalculationStatus.lastSuccessfulAttempt.second integer

second

displayText
d.scriptCalculationStatus.lastSuccessfulAttempt.timeZone.displayText string

display text

ianaName
d.scriptCalculationStatus.lastSuccessfulAttempt.timeZone.ianaName string

iana name

offsetDisplayText
d.scriptCalculationStatus.lastSuccessfulAttempt.timeZone.offsetDisplayText string

offset display text

uri
d.scriptCalculationStatus.lastSuccessfulAttempt.timeZone.uri string

uri

day
d.scriptCalculationStatus.lastSuccessfulAttempt.valueInUtc.day integer

day

hour
d.scriptCalculationStatus.lastSuccessfulAttempt.valueInUtc.hour integer

hour

millisecond
d.scriptCalculationStatus.lastSuccessfulAttempt.valueInUtc.millisecond integer

millisecond

minute
d.scriptCalculationStatus.lastSuccessfulAttempt.valueInUtc.minute integer

minute

month
d.scriptCalculationStatus.lastSuccessfulAttempt.valueInUtc.month integer

month

second
d.scriptCalculationStatus.lastSuccessfulAttempt.valueInUtc.second integer

second

year
d.scriptCalculationStatus.lastSuccessfulAttempt.valueInUtc.year integer

year

year
d.scriptCalculationStatus.lastSuccessfulAttempt.year integer

year

displayText
d.scriptCalculationStatus.timesheet.displayText string

display text

slug
d.scriptCalculationStatus.timesheet.slug string

slug

uri
d.scriptCalculationStatus.timesheet.uri string

uri

displayText
d.scriptCalculationStatus.timesheetStatus.displayText string

display text

uri
d.scriptCalculationStatus.timesheetStatus.uri string

uri

timeOffTimeDuration
d.timeOffTimeDuration Duration
displayText
d.timesheetStatus.displayText string

display text

uri
d.timesheetStatus.uri string

uri

totalTimeDuration
d.totalTimeDuration Duration
workingTimeDuration
d.workingTimeDuration Duration

BulkGetTimeEnteredSummaryResponse

Name Path Type Description
d
d array of object

d

taskUri
d.taskUri string

task uri

timeEnteredActual
d.timeEnteredActual Duration
timeEnteredTotalEstimated
d.timeEnteredTotalEstimated Duration
timeEnteredTotalEstimatedAtCompletion
d.timeEnteredTotalEstimatedAtCompletion Duration

ProjectDetailsResponse

Name Path Type Description
d
d array of object

d

type
d.error.type string

type

displayText
d.error.displayText string

display text

parameterCorrelationId
d.parameterCorrelationId string

parameter correlation id

displayText
d.projectDetails.billingContract.displayText string

display text

slug
d.projectDetails.billingContract.slug string

slug

uri
d.projectDetails.billingContract.uri string

uri

displayText
d.projectDetails.billingType.displayText string

display text

uri
d.projectDetails.billingType.uri string

uri

budget
d.projectDetails.budget object

budget

budgetedCost
d.projectDetails.budgetedCost object

budgeted cost

budgetedHours
d.projectDetails.budgetedHours object

budgeted hours

displayText
d.projectDetails.clientBillingAllocationMethod.displayText string

display text

uri
d.projectDetails.clientBillingAllocationMethod.uri string

uri

clientRepresentative
d.projectDetails.clientRepresentative string

client representative

clientSchedule
d.projectDetails.clientSchedule array of

client schedule

clients
d.projectDetails.clients array of

clients

code
d.projectDetails.code string

code

costCenter
d.projectDetails.costCenter object

cost center

costType
d.projectDetails.costType object

cost type

customFields
d.projectDetails.customFields array of

custom fields

displayText
d.projectDetails.defaultBillingCurrency.displayText string

display text

name
d.projectDetails.defaultBillingCurrency.name string

name

symbol
d.projectDetails.defaultBillingCurrency.symbol string

symbol

uri
d.projectDetails.defaultBillingCurrency.uri string

uri

departmentGroup
d.projectDetails.departmentGroup object

department group

description
d.projectDetails.description string

description

displayText
d.projectDetails.displayText string

display text

division
d.projectDetails.division object

division

employeeTypeGroup
d.projectDetails.employeeTypeGroup object

employee type group

estimatedCost
d.projectDetails.estimatedCost object

estimated cost

estimatedExpenses
d.projectDetails.estimatedExpenses object

estimated expenses

estimatedHours
d.projectDetails.estimatedHours object

estimated hours

displayText
d.projectDetails.estimationMode.displayText string

estimation mode display text

uri
d.projectDetails.estimationMode.uri string

uri

extensionFieldValues
d.projectDetails.extensionFieldValues array of

extension field values

isProjectLeaderApprovalRequired
d.projectDetails.isProjectLeaderApprovalRequired boolean

is project leader approval required for the project

isTimeEntryAllowed
d.projectDetails.isTimeEntryAllowed boolean

is time entry allowed for the project

keyValues
d.projectDetails.keyValues array of object

key values

keyUri
d.projectDetails.keyValues.keyUri string

key uri

collection
d.projectDetails.keyValues.value.collection array of object

collection

text
d.projectDetails.keyValues.value.collection.text string

text

uri
d.projectDetails.keyValues.value.collection.uri string

uri

uri
d.projectDetails.keyValues.value.uri string

uri

location
d.projectDetails.location object

location

name
d.projectDetails.name string

name

percentCompleted
d.projectDetails.percentCompleted integer

percent completed

program
d.projectDetails.program object

program

projectLeader
d.projectDetails.projectLeader object

project leader

serviceCenter
d.projectDetails.serviceCenter object

service center

slug
d.projectDetails.slug string

slug

displayText
d.projectDetails.status.displayText string

display text

name
d.projectDetails.status.name string

name

uri
d.projectDetails.status.uri string

uri

displayText
d.projectDetails.timeAndExpenseEntryType.displayText string

time and expense entry type display Text

uri
d.projectDetails.timeAndExpenseEntryType.uri string

uri

displayText
d.projectDetails.timeAndMaterials.billingRateFrequency.displayText string

billing rate frequency display Text

name
d.projectDetails.timeAndMaterials.billingRateFrequency.name string

billing rate name

uri
d.projectDetails.timeAndMaterials.billingRateFrequency.uri string

billing rate uri

billingRateFrequencyDuration
d.projectDetails.timeAndMaterials.billingRateFrequencyDuration object

billing rate frequency duration

endDate
d.projectDetails.timeEntryDateRange.endDate Date
startDate
d.projectDetails.timeEntryDateRange.startDate Date
amount
d.projectDetails.totalEstimatedContract.amount number

amount

displayText
d.projectDetails.totalEstimatedContract.currency.displayText string

total estimated cost currency display text

name
d.projectDetails.totalEstimatedContract.currency.name string

name

symbol
d.projectDetails.totalEstimatedContract.currency.symbol string

symbol

uri
d.projectDetails.totalEstimatedContract.currency.uri string

uri

uri
d.projectDetails.uri string

uri

CreateProjectOrApplyModificationsResponse

Name Path Type Description
code
d.code string

code

displayText
d.displayText string

displayText

name
d.name string

name

slug
d.slug string

slug

uri
d.uri string

uri

CreateTaskHierarchyOrApplyModificationsResponse

Name Path Type Description
d
d array of object

d

error
d.error object

error

parameterCorrelationId
d.parameterCorrelationId string

parameter correlation id

displayText
d.task.displayText string

display text

parameterCorrelationId
d.task.parameterCorrelationId string

parameter correlation id

uri
d.task.uri string

uri

UserListServiceGetDataResponse

Name Path Type Description
header
d.header array of object

header

displayName
d.header.displayName string

display name

uri
d.header.uri string

uri

rows
d.rows array of object

rows

cells
d.rows.cells array of object

cells

dataType
d.rows.cells.dataType string

data type

objectType
d.rows.cells.objectType string

object type

slug
d.rows.cells.slug string

slug

textValue
d.rows.cells.textValue string

text value

uri
d.rows.cells.uri string

uri

TaskListServiceGetDataResponse

Name Path Type Description
header
d.header array of object

header

displayName
d.header.displayName string

display name

uri
d.header.uri string

uri

rows
d.rows array of object

rows

cells
d.rows.cells array of object

cells

dataType
d.rows.cells.dataType string

data type

objectType
d.rows.cells.objectType string

object type

slug
d.rows.cells.slug string

slug

textValue
d.rows.cells.textValue string

text value

uri
d.rows.cells.uri string

uri

cellCollection
d.rows.cells.cellCollection array of object

cell collection

dataType
d.rows.cells.cellCollection.dataType string

data type

objectType
d.rows.cells.cellCollection.objectType string

object type

slug
d.rows.cells.cellCollection.slug string

slug

textValue
d.rows.cells.cellCollection.textValue string

text value

uri
d.rows.cells.cellCollection.uri string

uri

Date

Name Path Type Description
day
day integer

day

month
month integer

month

year
year integer

year

Duration

Name Path Type Description
hours
hours integer

hours

microseconds
microseconds integer

microseconds

milliseconds
milliseconds integer

milliseconds

minutes
minutes integer

minutes

seconds
seconds integer

seconds

TenantEndpointDetails

Name Path Type Description
applicationRootUrl
d.applicationRootUrl string

application root url

applicationRootUrls
d.applicationRootUrls array of object

application root urls

rootUrl
d.applicationRootUrls.rootUrl string

root url

uri
d.applicationRootUrls.uri string

uri

isLocal
d.isLocal boolean

is local

companyKey
d.tenant.companyKey string

company key

isEnabled
d.tenant.isEnabled boolean

is enabled

slug
d.tenant.slug string

slug

uri
d.tenant.uri string

uri