PentaProcoreConnector to Procore - Technical Guide
What is PentaProcoreConnector?
PentaProcoreConnector is a middleware solution that facilitates the automatic synchronization of projects and project-necessary data between PENTA and Procore, allowing clients to maintain up-to-date project data while leveraging the power of both Procore and Penta. The solution is a collection of Azure functions that run on client-specified schedules to send the data necessary for clients to create and update projects within Procore.
How Does it Work?
At regular, configurable intervals, each of several Azure functions will be triggered to sync data from PENTA to Procore, and, in the future, vice versa. Only records that have been modified since the last time the given function was run will be synced. These functions access PENTA data through the PentaConnectProjectManagement API endpoints and access Procore through the Procore API, using REST calls. Each function handles different types of data and can be independently scheduled. This and all other configurations will be set up by Penta within its Azure Management space. Below is a diagram of how this process works.
The Functions
As stated previously, each Azure function within PentaProcoreConnector runs independently and is responsible for the synchronization of discrete types of data.
SyncVendors
Handles: Vendors
From: PentaConnectProjectManagement API - GET Vendors
To: Procore Company Vendors API, Procore Project Vendors API, Procore Company Users API and Procore Project Users API
SyncCustomers
Handles: Customers
From: PentaConnectProjectManagement API - GET Customers
To: Procore Company Vendors API, Procore Project Vendors API, Procore Company Users API and Procore Project Users API
SyncJobs
Handles: Jobs, Cost Types, and Cost Codes
From: PentaConnectProjectManagement API - GET Jobs
SyncPurchaseOrders
Handles: Purchase Orders
From: PentaConnectProjectManagement API - GET PurchaseOrders
To: Procore Purchase Order Contracts API and Procore Purchase Order Contract Line Items API
SyncSubcontracts
Handles: Subcontracts
From: PentaConnectProjectManagement API - GET Subcontracts
To: Procore Work Order Contracts API and Procore Work Order Contract Line Items API
SyncOrganizationUnits
Handles: Organization Units
From: PentaConnectProjectManagement API - GET OrganizationUnits
SyncJobTypes
Handles: Job Types
From: PentaConnectProjectManagement API - GET JobTypes
SyncCostTypes
Handles: Cost Types
From: PentaConnectProjectManagement API - GET CostTypes
To: Procore Line Item Types API
SyncCostcodes
Handles: Costcodes
From: PentaConnectProjectManagement API - GET Costcodes
Token Management
Procore authentication uses an OAUTH2 framework and manages access to its APIs via tokens using a “client_credentials” grant type to get access tokens. Token management requires no input from the customer. Access Tokens can then be used in communications between PentaProcoreConnector and Procore APIs. Access Tokens can only be used for two hours, and so, Penta will get a new one on a per-request basis to ensure validity.
Logging
By default, the following messages will be logged within Azure, and will be available upon request:
All serialized request and response objects to and from PentaConnectProjectManagement API
All serialized request and response objects to and from Procore APIs
The URLs that these messages are being sent to
More detailed logging can be configured on a per client, per function basis which would additionally include:
The Http response for all transactions, including headers and content.
The request content string sent with each call if applicable.
Related content