MuleSoft - Release Notes
Below are the notable changes to the Procore + MuleSoft integration.
Recent Changes
Version 1.0.0 (06/2025)
Overview
The Procore Connector 1.0.0 provides seamless integration between MuleSoft applications and Procore’s construction project management platform. This initial release establishes the foundation for managing construction projects through MuleSoft-based enterprise solutions.
What’s New
Core Features
- OAuth 2.0 Authentication: Secure connection to Procore API using OAuth 2.0 authorization code flow with automatic token refresh.
- Project Management Operations: Complete support for creating and updating construction projects.
- Company-Specific Context: All operations support company-specific contexts through Procore Company ID headers.
- Advanced Error Handling: Robust error handling with detailed logging and proper exception management.
Operations
Create Project Operation
- Project Details Management: Create new construction projects with comprehensive project details, including name, description, code, and type configuration.
- Location Data Support: Full support for latitude, longitude, and geographic information.
- Date Management: Override start/end dates with configurable date handling.
- Company Integration: Company ID association and office linking.
- Cost Code Support: Optional standard cost code copying during creation.
- Advanced Fields: Support for project numbers, store numbers, accounting project numbers, and designated market areas.
Update Project Operation
- Project Modification: Update existing project details and configurations.
- Additional Fields: County, fax, and standard cost code list management.
- Flexible Updates: Partial updates with optional parameter support.
- Validation: Built-in validation for project ID and company associations.
Technical Specifications
System Requirements
Component | Version |
Mule Runtime | 4.9.6 or higher |
Java | 17 |
Dependencies
Dependency | Version | Purpose |
mule-sdk-api | 0.11.4 | MuleSoft SDK API |
gson | 2.12.1 | JSON serialization/deserialization |
nimbus-jose-jwt | 9.37.3 | JWT token handling |
mule-http-connector | 1.10.3 | HTTP operations |
mule-file-connector | 1.5.3 | File operations |
mule-objectstore-connector | 1.2.2 | Object store operations |
mule-selenium-connector | 2.2.3 | Selenium operations |
Configuration Parameters
Connection Configuration
- Base URL: Configurable Procore API base URL (default: https://api.procore.com).
- Timeout Settings: Configurable connection timeout (default: 30 seconds).
- Proxy Support: Optional proxy configuration for enterprise environments.
- OAuth 2.0: Authorization code flow with automatic token refresh.
Project Parameters
- Basic Information: Name, description, code, active status.
- Location Data: Address, city, state, country, ZIP, latitude, longitude.
- Date Management: Start date, completion date, warranty dates, override dates.
- Financial Data: Total value, estimated value, square feet.
- Organizational Data: Company ID, office ID, department IDs, project stage.
- Advanced Fields: Project type, bid type, owner type, region, template.
- Custom Fields: Origin data, flags, public notes, locale, timezone.
Installation
Maven Dependency
<dependency> <groupId>com.procore.integrations</groupId> <artifactId>procore</artifactId> <version>1.0.0</version> <classifier>mule-plugin</classifier> </dependency>
Configuration Example
<procore:config name="Procore_Config"> <procore:connection> <procore:oauth-authorization-code consumerKey="${oauth.client.id}" consumerSecret="${oauth.client.secret}"/> <procore:oauth-callback-config listenerConfig="HTTP_Listener_config" callbackPath="/mule/callback" authorizePath="/authorize-procore" externalCallbackUrl="http://localhost:8081/mule/callback" /> </procore:connection> </procore:config>
Usage Examples
Create Project Example
<procore:create-project config-ref="Procore_Config" companyId="#[payload.company_id]" name="#[payload.name]" address="#[payload.address]" city="#[payload.city]" stateCode="#[payload.state_code]" countryCode="#[payload.country_code]" zip="#[payload.zip]" description="#[payload.description]" startDate="#[payload.start_date]" completionDate="#[payload.completion_date]" totalValue="#[payload.total_value]" enableCopyOfStandardCostCodes="#[payload.enable_copy_of_standard_cost_codes]"/>
Update Project Example
<procore:update-project config-ref="Procore_Config" companyId="#[payload.company_id]" projectId="#[payload.project_id]" name="#[payload.name]" address="#[payload.address]" city="#[payload.city]" description="#[payload.description]" totalValue="#[payload.total_value]" county="#[payload.county]" fax="#[payload.fax]" standardCostCodeListId="#[payload.standard_cost_code_list_id]"/>
Error Handling
Error Types
- Authentication Errors: OAuth token validation and refresh failures.
- API Errors: Procore API response errors with detailed error messages.
- Validation Errors: Parameter validation and business rule violations.
- Connection Errors: Network connectivity and timeout issues.
- Unexpected Errors: General exception handling with contextual information.
Testing
Unit Tests
- Comprehensive unit test coverage for all operations.
- Mock-based testing for external dependencies.
- Parameter validation testing.
- Error handling scenario testing.
Integration Tests
- End-to-end testing with Procore API.
- OAuth flow testing.
- Real project creation and update scenarios.
- Performance and load testing.
Test Coverage
- Code Coverage: Minimum 80% instruction coverage.
- Test Scenarios: Create and update project operations.
- Error Scenarios: Authentication, validation, and API errors.
- Edge Cases: Optional parameters, null values, boundary conditions.
Documentation
Available Documentation
- README.md: Quick start guide and feature overview.
- API Documentation: Detailed operation documentation.
- Configuration Guide: Connection and parameter configuration.
- Examples: Sample implementations and use cases.
- Error Handling: Error types and troubleshooting guide.
Additional Resources
- Demo Project: Complete working example in demo/ directory.
- Test Suite: Comprehensive test examples in src/test/.
- Configuration Templates: Pre-configured templates for common scenarios.
Known Issues and Limitations
Current Limitations
- Single Company Context: Operations require an explicit company ID parameter.
- Project Operations Only: Limited to project creation and updates.
- Synchronous Operations: All operations are synchronous.
- Batch Operations: No support for batch project operations.
Known Issues
- None reported in this release.
From Previous Versions
- This is the initial release (1.0.0).
- No migration required from previous versions.
Support and Maintenance
Support Information
- Maintainer: Team Strategic Integrations.
- Issue Tracking: ESI (Enterprise Strategic Integrations).
- Documentation: Available in the project repository.
- Community: Procore Enterprise Slack channel.
Maintenance Schedule
- Security Updates: As needed for critical vulnerabilities.
- Feature Updates: Quarterly release cycle.
- Bug Fixes: Monthly patch releases.
- Documentation Updates: Continuous improvement.
Changelog
Version 1.0.0 (Current Release)
- Initial Release: First public release of Procore Connector.
- OAuth 2.0 Authentication: Secure authentication with Procore API.
- Create Project Operation: Complete project creation functionality.
- Update Project Operation: Full project update capabilities.
- Comprehensive Error Handling: Robust error management and logging.
- Company-Specific Operations: Support for multi-company environments.
- Advanced Project Features: Support for all major project parameters.
- Documentation and Examples: Complete documentation and demo project.
- Test Coverage: Comprehensive unit and integration tests.
Contributing
Development Guidelines
- Follow MuleSoft development best practices.
- Maintain 80% minimum code coverage.
- Include comprehensive error handling.
- Provide detailed documentation for new features.
- Follow established naming conventions and code structure.
Testing Requirements
- Unit tests for all new operations.
- Integration tests for API interactions.
- Error scenario testing.
- Performance testing for new features.
Note
For additional support, questions, or feature requests, reach out to the Team Strategic Integrations through the Procore Enterprise Slack channel or create an issue in the ESI project tracking system.