PSA Ticket Linking
The One Projects integrates bidirectionally with The One PSA to keep project work and service desk work synchronized. Projects can be linked to PSA contracts; project tasks can be linked to PSA tickets; and time logged in Projects can be exported to PSA for invoicing.
Setup
Before using PSA integration features, configure the connection in Admin → Settings:
| Setting | Where to Find It |
|---|---|
| PSA Tenant ID | Your Hub organization ID |
| PSA API URL | The base URL of your PSA API (e.g., https://api.theonepsa.app) |
| PSA Integration Key | Generate this in The One PSA under Settings → Integrations |
Once saved, Projects will show PSA-linked fields and enable the export workflow.
Linking a Project to a PSA Contract
A PSA contract represents the billing arrangement with a client. Linking a project to a contract ensures time entries exported from Projects are associated with the correct contract in PSA.
To link a project to a contract:
- Open the project
- Go to the Overview tab
- Click Link PSA Contract
- Select the contract from the list (pulls from PSA via the integration)
- Save
Once linked:
- The contract number appears on the project detail page
- Time entry exports from this project are posted to this contract in PSA
- The project appears in PSA's Command Center health widget for this contract
To unlink: Open the project → Overview → click the contract name → Remove Link.
Linking a Task to a PSA Ticket
Any task in a project can be linked to an existing PSA ticket. This is useful when:
- A client calls in a related issue that should count toward a project task
- A technician opens a ticket that was planned as a project task
To link a task to a ticket:
- Open the task
- Click Link PSA Ticket
- Search for the ticket by number or title
- Select and save
Once linked:
- The PSA ticket number appears on the task card
- Time logged on the PSA ticket can reference the project task
- The task detail shows a link to open the ticket in PSA
Linking a task to a PSA ticket does not automatically sync task status with ticket status. Status updates must be made in each system separately.
Exporting Time to PSA
See Time Tracking → Exporting Time to PSA for the full workflow.
In summary:
- Log and approve time entries in Projects
- Go to the project's Time tab
- Select approved, unexported entries
- Click Export to PSA
Exported entries become time entries in PSA associated with the linked contract. If no contract is linked, the export will prompt you to link one before proceeding.
PSA Command Center Integration
The One PSA includes a Command Center that shows health metrics from integrated products. Projects surfaces the following data to the Command Center:
| Data Point | Description |
|---|---|
| Active projects | Count of non-completed projects per client |
| Overdue projects | Projects past their due date |
| Avg. progress | Average progress_percent across active projects |
| Overdue milestones | Milestones past due date that aren't completed |
| At-risk projects | Projects with overdue milestones or 0% progress past start date |
| Recent activity | Latest project updates for the client |
This data appears in PSA without requiring the technician or account manager to leave PSA.
Project Context in PSA Embeds
When a PSA user opens a client account, a Projects context panel can appear showing:
- Active projects for that client
- Current project status and progress
- Overdue or at-risk flags
- Link to open the full project in Projects
This integration uses the GET /api/integration/project-context/{projectId} endpoint authenticated with the PSA integration key.
Escalating a Project Task to a PSA Ticket
If a project task uncovers a blocking issue that needs PSA service desk handling:
- Open the task
- Click Escalate to PSA Ticket
- Fill in the ticket subject, priority, and description
- Submit
This creates a new ticket in PSA linked back to the project task. The ticket number appears on the task card for reference.
What Doesn't Sync Automatically
| Action | Sync Status |
|---|---|
| Task status changes in Projects | Not synced to PSA ticket status |
| PSA ticket resolution | Not synced back to Projects task status |
| PSA contract changes | Not reflected in Projects without re-linking |
| New PSA tickets opening | Not automatically linked to project tasks |
For the tightest integration, establish a workflow: when opening a ticket for a contracted project client, search for and link the related project task at ticket creation time. This keeps both systems aligned with minimal manual effort.