n8n-nodes-procore
v1.0.0
Published
A comprehensive n8n community node for Procore construction management platform providing 20 resources and 100+ operations for complete project lifecycle management.
Maintainers
Readme
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 [email protected].
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)
- Open n8n
- Go to Settings > Community Nodes
- Select Install
- Enter
n8n-nodes-procore - Select Install
Manual Installation
# Navigate to n8n installation directory
cd ~/.n8n
# Install the package
npm install n8n-nodes-procoreDevelopment Installation
# 1. Extract the zip file
unzip n8n-nodes-procore.zip
cd n8n-nodes-procore
# 2. Install dependencies
npm install
# 3. Build the project
npm run build
# 4. Create symlink to n8n custom nodes directory
# For Linux/macOS:
mkdir -p ~/.n8n/custom
ln -s $(pwd) ~/.n8n/custom/n8n-nodes-procore
# For Windows (run as Administrator):
# mklink /D %USERPROFILE%\.n8n\custom\n8n-nodes-procore %CD%
# 5. Restart n8n
n8n startCredentials Setup
OAuth 2.0 Configuration
- Go to Procore Developer Portal
- Create a new application or use an existing one
- Note your Client ID and Client Secret
- 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
- List Companies - Get all companies
- Get Company - Get company by ID
- Update Company - Update company info
- Get Company Users - List company users
- Get Company Vendors - List vendors
Projects
- List Projects - Get projects with filters
- Get Project - Get project by ID
- Create Project - Create new project
- Update Project - Update project details
- Get Project Users - List project team
- Add Project User - Add user to project
- Remove Project User - Remove user
- Get Project Stages - List stages
- Get Project Roles - List roles
Jobs (Work)
- List Jobs - Get work breakdown
- Get Job - Get job by ID
- Create Job - Create job
- Update Job - Update job
- Get Job Costs - Job cost data
- Get Job Budget - Job budget data
RFIs (Requests for Information)
- List RFIs - Get all RFIs with filters
- Get RFI - Get RFI by ID
- Create RFI - Create new RFI
- Update RFI - Update RFI
- Delete RFI - Delete RFI
- Get RFI Responses - List responses
- Add RFI Response - Add response
Submittals
- List Submittals - Get all submittals
- Get Submittal - Get by ID
- Create Submittal - Create submittal
- Update Submittal - Update submittal
- Get Approvers - List approvers
- Submit for Approval - Submit submittal
Documents
- List Documents - Get documents
- Get Document - Get by ID
- Upload Document - Upload file
- Update Document - Update metadata
- Delete Document - Delete document
- List Folders - Get folders
- Create Folder - Create folder
- Download Document - Download file
Drawings
- List Drawings - Get all drawings
- Get Drawing - Get by ID
- Upload Drawing - Upload drawing
- List Drawing Areas - Get areas
- List Revisions - Get revisions
Photos
- List Photos - Get all photos
- Get Photo - Get by ID
- Upload Photo - Upload photo
- Delete Photo - Delete photo
- List Albums - Get photo albums
- Create Album - Create album
Punch List
- List Punch Items - Get items
- Get Punch Item - Get by ID
- Create Punch Item - Create item
- Update Punch Item - Update item
- Delete Punch Item - Delete item
- Assign Punch Item - Assign to user
- Close Punch Item - Mark closed
Observations (Safety)
- List Observations - Get all
- Get Observation - Get by ID
- Create Observation - Create new
- Update Observation - Update
- Get Types - List observation types
Inspections
- List Inspections - Get all
- Get Inspection - Get by ID
- Create Inspection - Create new
- Update Inspection - Update
- Get Checklists - List checklists
- Create Checklist - Create checklist
Daily Logs
- List Daily Logs - Get logs
- Get Daily Log - Get by ID
- Create Daily Log - Create log
- Update Daily Log - Update log
- Get Weather Logs - Weather data
- Get Manpower Logs - Manpower data
Meetings
- List Meetings - Get all meetings
- Get Meeting - Get by ID
- Create Meeting - Create meeting
- Update Meeting - Update meeting
- Get Agenda - Get meeting agenda
- Get Minutes - Get meeting minutes
- Get Attendees - List attendees
Budgets
- Get Budget - Get project budget
- Get Budget Line Items - Line items
- Create Budget Line Item - Create item
- Update Budget Line Item - Update item
- Get Budget Changes - List changes
Contracts
- List Contracts - Get all contracts
- Get Contract - Get by ID
- Create Contract - Create contract
- Update Contract - Update contract
- Get Line Items - Contract items
- Get Payments - Contract payments
Change Orders
- List Change Orders - Get all
- Get Change Order - Get by ID
- Create Change Order - Create new
- Update Change Order - Update
- Approve Change Order - Approve
Invoices
- List Invoices - Get all invoices
- Get Invoice - Get by ID
- Create Invoice - Create invoice
- Update Invoice - Update invoice
- Submit Invoice - Submit for approval
- Approve Invoice - Approve invoice
Schedule
- Get Schedule - Get project schedule
- List Tasks - Get schedule tasks
- Get Task - Get task by ID
- Update Task - Update task
- List Milestones - Get milestones
Directory (Contacts)
- List Contacts - Get all contacts
- Get Contact - Get by ID
- Create Contact - Create contact
- Update Contact - Update contact
- Delete Contact - Delete contact
Correspondence
- List Correspondence - Get all items
- Get Correspondence - Get by ID
- Create Correspondence - Create item
- Update Correspondence - Update item
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
- Use OAuth 2.0 - Always use OAuth authentication
- Sandbox Testing - Test in sandbox before production
- Minimal Permissions - Request only needed scopes
- Secure Credentials - Never expose client secrets
- Token Refresh - Implement proper token refresh
Development
# Run linting
npm run lint
# Fix linting issues
npm run lint:fix
# Run tests
npm test
# Run tests with coverage
npm run test:coverage
# Build the project
npm run build
# Development mode with watch
npm run devAuthor
Velocity BPA
- Website: velobpa.com
- GitHub: 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: [email protected]
See LICENSE, COMMERCIAL_LICENSE.md, and LICENSING_FAQ.md for details.
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request
