Integrations
The One Projects integrates with several products in The One Stack to keep project delivery, billing, and client communication connected.
The One PSA
PSA is the deepest integration in Projects. It connects service desk tickets, contracts, and billing to project delivery.
What Connects
| Data | Direction | Details |
|---|---|---|
| Project ↔ Contract | Bidirectional link | A project is linked to a PSA contract. Establishes billing context for time export. |
| Task ↔ Ticket | Bidirectional link | A project task is linked to a PSA ticket. Useful when a support ticket is part of a project deliverable. |
| Time entries → PSA | Projects → PSA | Approved billable time is exported to PSA as time entries against the linked contract. |
| Project health → Command Center | Projects → PSA | Active projects, overdue status, and progress percentage surface in the PSA Command Center. |
| Project context → PSA embed | Projects → PSA | Project and milestone summary appears in PSA when viewing a client account. |
Setup
- Go to Admin → Settings in Projects
- Enter your PSA Tenant ID, PSA API URL, and PSA Integration Key
- Save. The PSA integration is now active.
See PSA Ticket Linking for the full workflow.
What Doesn't Sync Automatically
- PSA ticket status changes are not pushed to Projects task status
- New PSA tickets are not automatically linked to project tasks
- PSA contract changes do not update Projects records — you must re-link if a contract changes
The One Hub
Hub provides authentication and identity for Projects.
What Connects
| Feature | Details |
|---|---|
| Single Sign-On | Staff log in through Hub SSO. Hub credentials are used; no separate Projects password for admin users. |
| Hub Bar | The shared navigation bar across all One Stack products. Users can switch between products without logging in again. |
| Permissions Registration | Projects registers its permission types with Hub IAM so Hub admins can control who has Projects access. |
| Entra ID Sync | Projects can sync team members from Microsoft Entra ID via Hub IAM. Run POST /api/iam/sync (Hub-authenticated) to pull in new employees. |
Hub SSO is automatic for admin users. The portal uses its own auth (email/password or magic link) and does not require a Hub account.
The One Portal
The client portal (portal.theoneprojects.app) is a built-in product feature, not a separate integration. See Client Visibility for the full portal documentation.
What Connects
| Feature | Details |
|---|---|
| Project visibility | Clients see projects linked to their client record |
| Milestone updates | Completed milestones with "notify client" flag trigger portal notifications |
| Comments | Threaded comments on tasks are visible to portal users |
| Documents | Uploaded files and wikis are accessible to portal users |
| White-label branding | Portal inherits your org's logo, color, and company name from Admin Settings |
The One Books (Roadmap)
A direct integration between Projects and Books for job costing is on the roadmap.
Planned behavior:
- Time entries in Projects will post automatically to Books as job cost entries
- Project budget vs. actuals will appear in Books job costing reports
- Project expenses will be trackable as bill line items in Books
This integration is not yet built. For now, export time entries to PSA and use PSA's Books integration to post time costs to the general ledger.
The One CRM (Roadmap)
A CRM → Projects connection is planned:
- Closing a CRM deal will trigger project creation from a template
- Contact and company data from CRM will pre-fill the project's client field
This integration is not yet built. Currently, client selection in Projects is manual.
Microsoft Entra ID (via Hub IAM)
Projects supports team member provisioning from Entra ID:
- New employees added in Entra are synced into Projects as team members
- Sync is triggered via the Hub IAM sync endpoint
- Role assignment after sync must be done manually in Projects
Integration API (for PSA and Third Parties)
The Projects integration API is used by PSA and can be used by third-party tools. All integration endpoints authenticate using the X-Integration-Key header.
| Endpoint | Returns |
|---|---|
GET /api/integration/status | Client project status list |
GET /api/integration/client-health | Detailed health per client |
GET /api/integration/activity | Recent activity feed |
GET /api/integration/health?tenant_id=X | Project health snapshot |
GET /api/integration/project-context/{projectId} | Project context for embeds |
POST /api/integration/link-contract | Link a project to a PSA contract |
POST /api/integration/link-ticket | Link a task to a PSA ticket |
To use the integration API from a third-party tool:
- Go to Admin → Settings
- Copy the Integration Key
- Include it in the
X-Integration-Keyheader on all requests - Base URL:
https://api.theoneprojects.app
Misconfiguration Impacts
| Misconfiguration | What Breaks |
|---|---|
| Wrong PSA API URL | Contract/ticket linking fails; time entry export fails |
| Expired PSA Integration Key | All PSA integration calls fail with 401 |
| Wrong PSA Tenant ID | Contract lookups return empty; links may go to wrong org |
| Missing Branding in Admin Settings | Client portal shows blank logo and default blue color |
| Stale Entra sync | New employees not available as task assignees until sync is re-run |