ml-connector
Oracle PeopleSoftProcore

Oracle PeopleSoft and Procore integration

Oracle PeopleSoft runs enterprise accounting and human resources. Procore runs construction project management and field operations. Connecting them keeps vendors, purchase orders, and project costs in agreement across both systems. New vendors created in PeopleSoft propagate to Procore, purchase order commitments flow both ways, and project cost postings from Procore close the loop back into PeopleSoft's general ledger. ml-connector bridges the two very different APIs and runs on the schedule you define.

How Oracle PeopleSoft works

Oracle PeopleSoft is a self-hosted ERP and HCM system where each customer operates their own environment on their own servers or Oracle Cloud Infrastructure. It exposes vendors, purchase orders, requisitions, invoices, expense reports, and GL accounts through REST APIs via RESTListeningConnector and SOAP Component Interfaces, with base URLs following the pattern https://<hostname>:<port>/PSIGW/RESTListeningConnector/. Authentication uses HTTP Basic Auth (OPRID and password) for all versions or OAuth2 Bearer tokens for PeopleTools 8.58 and newer. PeopleSoft has no webhook system, so finance and HR records are read by polling with date-range filters. Each customer's firewall and unique hostname require whitelist configuration, and REST endpoints are primarily read-only inquiry operations, while write operations need SOAP CI calls or Integration Broker async messages.

How Procore works

Procore is a cloud construction management platform that centralizes project tracking, financials, field operations, and budget control. It exposes vendors, purchase order contracts, requisitions, payment applications, direct costs, cost codes, and change orders through REST APIs at https://api.procore.com/rest/v1.0 and v2.x for production, with a sandbox environment available. Every call requires OAuth2 Client Credentials via a Developer Managed Service Account, with tokens expiring in 1.5 hours. Procore supports real-time webhooks for create, update, and delete events on commitments, requisitions, direct costs, and budget items, with security via custom HTTP headers. Most endpoints require company_id and project_id parameters, and cost codes rather than GL accounts serve as the financial dimension in Procore.

What moves between them

Vendor records and GL accounts flow from PeopleSoft to Procore as read-only dimension tables that cost codes and budget line items reference. Purchase orders created in PeopleSoft populate Procore as commitments, and requisitions in Procore can link back to PeopleSoft POs. Project direct costs and change orders posted in Procore flow back to PeopleSoft as detailed cost transactions tagged to the correct GL account and cost center so month-end close can reconcile actuals against budget. The sync runs on a schedule you control, with one-way push from PeopleSoft (polling, since it has no webhooks) and real-time pull from Procore webhooks where they are configured.

How ml-connector handles it

ml-connector stores both credential sets encrypted. For PeopleSoft, it accepts the customer's full hostname, port, and node name since there is no shared base URL, and authenticates using either HTTP Basic (OPRID and password) or OAuth2 Bearer token depending on the PeopleTools version. For Procore, it exchanges the Developer Managed Service Account client ID and secret for an OAuth2 token, caching it for the 1.5-hour lifetime and refreshing before it expires. Because PeopleSoft has no webhooks, ml-connector polls vendor and PO tables on a schedule with date-range filters to avoid scanning the entire table, while Procore webhooks on commitments, requisitions, and direct costs stream in real time. Vendors and GL accounts must exist in Procore as cost codes before PeopleSoft costs can reference them. Every record carries a full audit trail, failed messages are queued for replay, and the integration tracks which PeopleSoft records have been synced so the same cost or vendor does not duplicate.

A real-world example

A mid-sized general contractor uses PeopleSoft for corporate accounting and procurement, and Procore as the system of record for project financials and field management across 20 active job sites. Before the integration, the accounting team manually imported vendor master data from PeopleSoft into Procore quarterly, and project managers entered purchase orders in Procore without visibility to PeopleSoft's AP function. Month-end close required exporting project costs from Procore and manually re-entering detail lines into PeopleSoft cost accounts to reconcile job profitability. With PeopleSoft and Procore connected, vendor changes sync automatically, purchase orders created in either system appear in the other, and actual costs from the field post into PeopleSoft's GL as they are recorded in Procore, eliminating manual entry and keeping project accounting current throughout the month.

What you can do

  • Sync vendor master data from Oracle PeopleSoft to Procore cost codes so every vendor is available for commitments and invoices.
  • Map purchase orders bidirectionally between PeopleSoft and Procore so POs created in either system appear in the other.
  • Flow project direct costs and change orders from Procore back into Oracle PeopleSoft as GL postings tagged to the correct cost center.
  • Authenticate Oracle PeopleSoft with HTTP Basic or OAuth2 depending on PeopleTools version, and Procore with Developer Managed Service Account OAuth2.
  • Poll Oracle PeopleSoft on a schedule via date-range filters, receive Procore events in real time via webhooks, and replay failed transactions on both sides.

Questions

Which direction does data move between Oracle PeopleSoft and Procore?
Vendors and GL accounts flow from PeopleSoft to Procore as dimension tables. Purchase orders sync bidirectionally so an order created in either system appears in the other. Project costs and change orders flow from Procore back to PeopleSoft as GL postings so actuals close against budget. The sync runs on a schedule you define, with one-way polling from PeopleSoft (which has no webhooks) and real-time webhooks from Procore.
Does Oracle PeopleSoft's self-hosted architecture require special setup?
Yes. Each PeopleSoft customer operates their own environment with a unique hostname, port, and node name, so ml-connector accepts the full base URL per customer rather than a shared endpoint. The customer's firewall must whitelist the connector IP or expose PeopleSoft via a reverse proxy. Individual REST service operations must be activated by a PeopleSoft administrator in the Integration Broker console before the integration can call them.
How does the integration handle Procore's OAuth2 token expiry and PeopleSoft's lack of webhooks?
ml-connector caches the Procore OAuth2 token for its full 1.5-hour lifetime and refreshes it before expiry so calls always use a fresh token. For PeopleSoft, which has no webhooks, ml-connector polls vendor and PO tables on a schedule with date-range filters to fetch only new and changed records without scanning the entire table. Procore webhooks on commitments, requisitions, and costs stream in real time when configured.

Related integrations

Connect Oracle PeopleSoft and Procore

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started