Description
n8n-nodes-procore
> [Velocity BPA Licensing Notice]
>
> This n8n node is licensed under the Business Source License 1.1 (BSL 1.1).
>
> Use of this node by for-profit organizations in production environments requires a commercial license from Velocity BPA.
>
> For licensing information, visit https://velobpa.com/licensing or contact licensing@velobpa.com.
A comprehensive n8n community node for Procore, the leading cloud-based construction management platform. This node provides full integration with Procore’s REST API v1.0, enabling automation of construction project workflows across 20 resources with 100+ operations.
Features
- Complete Construction Management – Access to projects, RFIs, submittals, punch lists, and more
- Financial Management – Budgets, contracts, change orders, and invoices
- Document Control – Documents, drawings, and photos with file upload support
- Field Management – Daily logs, inspections, observations, and meetings
- Team Collaboration – Directory management and correspondence
- Webhook Triggers – Real-time event notifications for 11 event types
- OAuth 2.0 Authentication – Secure authentication with token refresh
- Sandbox Support – Development and testing environment support
Installation
Community Nodes (Recommended)
1. Open n8n
2. Go to Settings > Community Nodes
3. Select Install
4. Enter n8n-nodes-procore
5. Select Install
Manual Installation
Navigate to n8n installation directory
cd ~/.n8nInstall the package
npm install n8n-nodes-procore
Development Installation
1. Extract the zip file
unzip n8n-nodes-procore.zip
cd n8n-nodes-procore2. Install dependencies
npm install3. Build the project
npm run build4. Create symlink to n8n custom nodes directory
For Linux/macOS:
mkdir -p ~/.n8n/custom
ln -s $(pwd) ~/.n8n/custom/n8n-nodes-procoreFor Windows (run as Administrator):
mklink /D %USERPROFILE%.n8ncustomn8n-nodes-procore %CD%
5. Restart n8n
n8n start
Credentials Setup
OAuth 2.0 Configuration
1. Go to Procore Developer Portal
2. Create a new application or use an existing one
3. Note your Client ID and Client Secret
4. Set your redirect URI to your n8n webhook URL
| Parameter | Description |
|———–|————-|
| Client ID | OAuth 2.0 client identifier from Procore |
| Client Secret | OAuth 2.0 client secret from Procore |
| Environment | production or sandbox |
OAuth URLs
| Environment | Authorization URL | Token URL |
|————-|——————|———–|
| Production | https://login.procore.com/oauth/authorize | https://login.procore.com/oauth/token |
| Sandbox | https://login-sandbox.procore.com/oauth/authorize | https://login-sandbox.procore.com/oauth/token |
Resources & Operations
Companies
Projects
Jobs (Work)
RFIs (Requests for Information)
Submittals
Documents
Drawings
Photos
Punch List
Observations (Safety)
Inspections
Daily Logs
Meetings
Budgets
Contracts
Change Orders
Invoices
Schedule
Directory (Contacts)
Correspondence
Trigger Node
The Procore Trigger node supports webhook-based event notifications:
| Event | Description |
|——-|————-|
| projectCreated | New project created |
| rfiCreated | New RFI created |
| rfiUpdated | RFI updated |
| submittalCreated | Submittal created |
| documentUploaded | Document uploaded |
| punchItemCreated | Punch item created |
| punchItemClosed | Punch item closed |
| changeOrderCreated | Change order created |
| invoiceSubmitted | Invoice submitted |
| inspectionCompleted | Inspection completed |
| dailyLogCreated | Daily log created |
Usage Examples
List Projects with Filters
{
"resource": "projects",
"operation": "listProjects",
"companyId": 123456,
"filters": {
"status": "active"
}
}
Create an RFI
{
"resource": "rfis",
"operation": "createRfi",
"companyId": 123456,
"projectId": 789012,
"subject": "Electrical conduit routing clarification",
"question": "Please clarify the routing for electrical conduits in section B3.",
"priority": "high",
"additionalFields": {
"due_date": "2024-02-01",
"schedule_impact": true
}
}
Upload a Document
{
"resource": "documents",
"operation": "uploadDocument",
"companyId": 123456,
"projectId": 789012,
"name": "Architectural Plans Rev 2",
"folderId": 456,
"binaryPropertyName": "data"
}
Procore Concepts
| Concept | Description |
|———|————-|
| Company ID | Procore company identifier (required for all operations) |
| Project ID | Project identifier (required for project-level resources) |
| RFI | Request for Information – formal questions requiring answers |
| Submittal | Document submission for approval (shop drawings, samples) |
| Punch List | Deficiency items requiring completion |
| Observation | Safety or quality observation record |
| Daily Log | Daily field activity report |
| Change Order | Contract modification request |
API Endpoints
| Environment | Base URL |
|————-|———-|
| Production | https://api.procore.com/rest/v1.0/ |
| Sandbox | https://sandbox.procore.com/rest/v1.0/ |
Error Handling
The node handles common Procore API errors:
| Error Code | Description | Resolution |
|————|————-|————|
| 401 | Unauthorized | Check OAuth credentials |
| 403 | Forbidden | Verify permissions |
| 404 | Not Found | Check resource IDs |
| 422 | Unprocessable | Validate input data |
| 429 | Rate Limited | Reduce request frequency |
Security Best Practices
1. Use OAuth 2.0 – Always use OAuth authentication
2. Sandbox Testing – Test in sandbox before production
3. Minimal Permissions – Request only needed scopes
4. Secure Credentials – Never expose client secrets
5. Token Refresh – Implement proper token refresh
Development
Run linting
npm run lintFix linting issues
npm run lint:fixRun tests
npm testRun tests with coverage
npm run test:coverageBuild the project
npm run buildDevelopment mode with watch
npm run dev
Author
Velocity BPA
Licensing
This n8n community node is licensed under the Business Source License 1.1.
Free Use
Permitted for personal, educational, research, and internal business use.
Commercial Use
Use of this node within any SaaS, PaaS, hosted platform, managed service,
or paid automation offering requires a commercial license.
For licensing inquiries:
licensing@velobpa.com
See LICENSE, FAQ.md”>LICENSINGFAQ.md for details.
Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Run tests and linting
5. Submit a pull request