Skip to main content

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 - 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 LabelExport NameData Type
IDidstring
Namenamestring
Descriptiondescriptionrich_text
Positionpositioninteger
Due dateduedate
Priorityprioritylov_entry
Private ?privateboolean
Workflow statusworkflow_statuslov_entry
Schedule impactschedule_impactlov_entry
Schedule impact daysschedule_impact_daysdecimal
Cost impactcost_impactlov_entry
Cost impact amountcost_impact_amountdecimal
Referencereferencestring
Tradetrade_idlov_entry
Locationlocation_idlov_entry
Cost codecost_code_idlov_entry
Typepunch_item_type_idlov_entry
Managerpunch_item_manager_idlov_entry
Final approverfinal_approver_idlov_entry
Assignee(s)login_information_idslov_entries
Distribution member(s)distribution_member_idslov_entries
Schedule riskschedule_risklov_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 id is blank), the position must 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 NameContains
workflow_statusdraft, initiated, ready_for_review, closed, etc.
prioritylow, medium, high
schedule_riskml_low, ml_medium, ml_high
punch_item_type_idProject-specific Punch types
login_information_idsList of potential assignees (Project users)
trade_idProject Trades
location_idProject 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).

  1. Track Changes: Procore’s “Change History” does not always reflect modifications made to assignees via the API/Bulk script.
  2. 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.
  3. 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

  1. Export all open Punch Items.
  2. Filter on the perimeter, then update the relevant custom fields.
  3. Import the file. The id column ensures existing items are updated rather than duplicated.

5.2 - Creating Items from an external source

  1. Use an empty export as a template.
  2. Fill in the name (Mandatory), and any other field, as required.
  3. Provide a unique position for each row and leave the id column empty.
  4. Import with “Mandatory check” enabled.