CONNECT APP
Build with Procore Sandbox
Productivity
- OAuth
MCP
Give your agent Procore Sandbox tools
Every Procore Sandbox action is exposed as an MCP tool on Pipedream's remote server. Point a client at it with your end user's ID and Connect resolves that user's Procore Sandbox account for each tool call — you store no tokens.
// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "procore_sandbox",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run Create Incident:
const result = await mcp.callTool({
name: "procore_sandbox-create-incident",
arguments: {
companyId: 10,
projectId: 10,
},
})# access_token: mint a short-lived token with the Connect SDK — see the MCP guide
headers = {
"Authorization": f"Bearer {access_token}",
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", # any stable ID for this user in your system
"x-pd-app-slug": "procore_sandbox",
}
async with streamablehttp_client("https://remote.mcp.pipedream.net/v3", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
# e.g. run Create Incident:
result = await session.call_tool("procore_sandbox-create-incident", {
"companyId": 10,
"projectId": 10,
})API PROXY
Call the Procore Sandbox API directly
For an endpoint with no pre-built tool, the Connect proxy forwards your request to the Procore Sandbox API with the connected user's credentials attached. You store no tokens and write no refresh logic.
const resp = await pd.proxy.get({
externalUserId: "{external_user_id}", // any stable ID for this user in your system
accountId: "apn_xxxxxxx",
url: "https://sandbox.procore.com/rest/v1.0/me",
})
// Any allowed Procore Sandbox endpoint works here. Pipedream attaches the
// connected account's credentials to the outgoing request.# The path segment is the target URL, URL-safe base64 encoded:
# https://sandbox.procore.com/rest/v1.0/me
curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9zYW5kYm94LnByb2NvcmUuY29tL3Jlc3QvdjEuMC9tZQ?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
-H "Authorization: Bearer {access_token}" \
-H "x-pd-environment: production"SDK
Run Procore Sandbox actions from your backend
Connect a user's Procore Sandbox account once, then run Create Incident on their behalf from your own code — TypeScript, Python, or plain HTTP.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "procore_sandbox-create-incident",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
procore_sandbox: { authProvisionId: "apn_xxxxxxx" },
companyId: 10,
projectId: 10,
},
})from pipedream import Pipedream
pd = Pipedream(
client_id="{oauth_client_id}",
client_secret="{oauth_client_secret}",
project_id="{project_id}",
project_environment="production",
)
result = pd.actions.run(
id="procore_sandbox-create-incident",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"procore_sandbox": {"authProvisionId": "apn_xxxxxxx"},
"companyId": 10,
"projectId": 10,
},
)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "procore_sandbox-create-incident",
"configured_props": {
"procore_sandbox": { "authProvisionId": "apn_xxxxxxx" },
"companyId": 10,
"projectId": 10
}
}'TOOLS
Procore Sandbox actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Create Incident
actionCreate a new incident. See the documentation.Writev0.0.2 -
Create Manpower Log
actionCreate a new manpower log. See the documentation.Writev0.0.2 -
Create RFI
actionCreate a new RFI. See the documentation.Writev0.0.2 -
Create Submittal
actionCreate a new submittal. See the documentation.Writev0.0.2 -
Create Timesheet
actionCreate a new timesheet. See the documentation.Writev0.0.2
EVENTS
Procore Sandbox triggers
Event sources your backend can deploy for users and receive through a webhook.
-
New Budget Snapshot Event (Instant)
triggerEmit new event when a new budget snapshot event is created. See the documentation.Instantv0.0.2 -
New Change Order Package Event (Instant)
triggerEmit new event when a new change order package event is created. See the documentation.Instantv0.0.2 -
New Commitment Change Order Event (Instant)
triggerEmit new event when a new commitment change order event is created. See the documentation.Instantv0.0.2 -
New Event (Instant)
triggerEmit new event depending on the resource name selected. See the documentation.Instantv0.0.2 -
New Prime Contract Event (Instant)
triggerEmit new event when a new prime contract event is created. See the documentation.Instantv0.0.2 -
New Purchase Order Event (Instant)
triggerEmit new event when a new purchase order event is created. See the documentation.Instantv0.0.2 -
New RFI Event (Instant)
triggerEmit new event when a new RFI event is created. See the documentation.Instantv0.0.2 -
New Submittal Event (Instant)
triggerEmit new event when a new submittal event is created. See the documentation.Instantv0.0.2 -
New Timecard Entry Event (Instant)
triggerEmit new event when a new timecard entry is created. See the documentation.Instantv0.0.2
MULTI-APP
Use Procore Sandbox with other popular apps
Most products don't stop at one integration. Pair Procore Sandbox with the other apps your users rely on, and ship use cases that span both.
- App slug
- procore_sandbox
- Authentication
- OAuth
- Categories
- Productivity
- Actions
- 5
- Triggers
- 9
- API proxy
- Available