Features - bulk export/import
Bulk Export/Import - Punch Items
Detailed guide for bulk export and import of Punch Items in Procore, including available fields, data types, and critical warnings regarding assignees and statuses.
This guide covers the implementation of bulk export/import for the Punch List tool in Procore.
- 1 - Punch Items Available Fields
- 2 - Field-Specific Details
- 3 - Data Model Reference Sheets
- 4 - Critical Warnings & Limitations
- 5 - Common Use Cases
- 6 - Related Documentation
1 - Available Fields
1.1 - Native Fields
The following native fields are available. Note that the Name field is strictly mandatory for any import action.
| Field Label | Export Name | Data Type |
|---|---|---|
| ID | id | string |
| Name | name | string |
| Description | description | rich_text |
| Position | position | integer |
| Due date | due | date |
| Priority | priority | lov_entry |
| Private ? | private | boolean |
| Workflow status | workflow_status | lov_entry |
| Schedule impact | schedule_impact | lov_entry |
| Schedule impact days | schedule_impact_days | decimal |
| Cost impact | cost_impact | lov_entry |
| Cost impact amount | cost_impact_amount | decimal |
| Reference | reference | string |
| Trade | trade_id | lov_entry |
| Location | location_id | lov_entry |
| Cost code | cost_code_id | lov_entry |
| Type | punch_item_type_id | lov_entry |
| Manager | punch_item_manager_id | lov_entry |
| Final approver | final_approver_id | lov_entry |
| Assignee(s) | login_information_ids | lov_entries |
| Distribution member(s) | distribution_member_ids | lov_entries |
| Schedule risk | schedule_risk | lov_entry |
1.2 - Custom Fields
All custom fields configured for Punch Items are automatically included in the export. These follow standard Procore data types (Text, Number, Dropdowns, etc.).
2 - Field-Specific Details
2.1 - Position and Uniqueness
- Position: For new items (where
idis blank), thepositionmust be unique. - The script validates the position against existing items in the project to prevent numbering conflicts.
2.2 - Impacts (Schedule & Cost)
- These work in pairs: a status (Yes/No/TBD) and a value (Days or Amount).
- The “Value” column will only be processed if the corresponding “Impact” status is correctly set.
2.3 - Status
- New punch items will always be created Draft. Consider creating them and then updating them with their right status in a second bulk import.
3 - Data Model Reference Sheets
The export includes reference sheets to help you fill in the dropdown values:
| Sheet Name | Contains |
|---|---|
| workflow_status | draft, initiated, ready_for_review, closed, etc. |
| priority | low, medium, high |
| schedule_risk | ml_low, ml_medium, ml_high |
| punch_item_type_id | Project-specific Punch types |
| login_information_ids | List of potential assignees (Project users) |
| trade_id | Project Trades |
| location_id | Project Locations |
4 - Critical Warnings & Limitations
4.1 - Assignee Management & Data Integrity
[!CAUTION] High Risk Action: Be extremely careful when updating the Assignee(s) (
login_information_ids) or Workflow Status (workflow_status).
- Track Changes: Procore’s “Change History” does not always reflect modifications made to assignees via the API/Bulk script.
- Data Loss: If an assignee has already responded to a punch item, removing them or replacing them via bulk import will delete their existing response data.
- Multiple Assignees: When importing, the script expects a comma-separated list of emails. Providing a new list will overwrite the previous one entirely.
4.2 - Technical Constraints
- Attachments: Bulk upload of photos or documents is not supported.
5 - Common Use Cases
5.1 - Mass Updating Custom fields
- Export all open Punch Items.
- Filter on the perimeter, then update the relevant custom fields.
- Import the file. The
idcolumn ensures existing items are updated rather than duplicated.
5.2 - Creating Items from an external source
- Use an empty export as a template.
- Fill in the
name(Mandatory), and any other field, as required. - Provide a unique
positionfor each row and leave theidcolumn empty. - Import with “Mandatory check” enabled.
6 - Related Documentation
- Bulk Export/Import - Overview (general process and concepts)