Skip to main content

Features - bulk export/import

Bulk Export/Import - Correspondence Items

Detailed guide for bulk export and import of Correspondence Items in Procore, including available fields, data types, and tool-specific limitations.

This guide covers the specific implementation of bulk export/import for Correspondence tools (Generic Tools) in Procore. For general concepts and the overall process, see the Bulk Export/Import - Overview.

1 - Available Fields

1.1 - Native Fields

The following native fields are available for export and import. Note that availability depends on your specific Correspondence tool’s fieldset configuration.

Field LabelExport NameData Type
IDidstring
Titletitlestring
Descriptiondescriptionrich_text
Positionpositionstring
Statusstatuslov_entry
Due Datedue_datedate
Private?privateboolean
Quantityquantitydecimal
Unit (quantity)uomlov_entry
Schedule Impactschedule_impactlov_entry
Schedule Impact Valueschedule_impact_valuedecimal
Cost Impactcost_impactlov_entry
Cost Impact Valuecost_impact_valuedecimal
Received Fromreceived_from_idlov_entry
Locationlocation_idlov_entry
Cost Codecost_code_idlov_entry
Sub Jobsub_job_idlov_entry
Spec Sectionspecification_section_idlov_entry
Tradetrade_idlov_entry
Distribution Member(s)distribution_member_idslov_entries
Assignee(s)assignee_idslov_entries

1.2 - Custom Fields

All custom fields configured in the Correspondence tool’s fieldset are automatically included. These follow the standard Procore data types (Text, Rich Text, Number, Date, Checkbox, and Dropdowns). Custom fields appear with their configured names and follow the same data type rules as native fields.

2 - Field-Specific Details

2.1 - Position Field

  • On export, the tool’s prefix (e.g., “RFI-”, “LET-”) is automatically removed.
  • When importing new items, ensuring a unique position number is required otherwise the import will log an error message.

2.2 - Schedule and Cost Impact

  • These fields are paired: an “Impact” status (e.g., Yes, No, TBD) and a corresponding “Value” (Decimal).
  • The “Value” field will only be processed if the Impact status is correctly set.

2.4 - Users and Roles

  • Assignees vs. Distribution: Only users with the “Potential Assignee” permission in the tool’s settings will appear in the Assignee reference sheet.
  • Received From: This must be a user with the appropriate “Potential Received From” permissions.
  • Email-Based Input: For fields like distribution_member_ids, assignee_ids, and received_from_id, you must provide the email address of the user. The import engine automatically maps these email addresses to internal Procore IDs using the reference sheets. If an email is not found in the project directory, the row will fail validation. For distribution and assignees, multiple emails must be separated by a comma.

3 - Data Model Reference Sheets

The export file includes the following reference sheets to ensure data integrity during import:

Sheet NameContains
statusValid statuses for this specific correspondence tool
uomUnits of Measure (for quantity)
schedule_impactImpact options (Yes/No/TBD/NA)
cost_impactImpact options (Yes/No/TBD/NA)
trade_idCompany Trades
location_idProject locations
cost_code_idProject Cost codes
specification_section_idProject spec sections
sub_job_idProject Sub jobs
vendorContractors/vendors
login_informationAll project users (for custom fields)
assignee_idsUsers authorized to be Assignees
distribution_member_idsUsers authorized for the Distribution list
received_from_idUsers authorized as “Received From”

4 - Correspondence-specific Limitations

4.1 - Single Tool Scope (Non-Transversal)

[IMPORTANT] Export and Import actions are tool-specific. Because each Correspondence Type (e.g., “Letters,” “Site Instructions,” “Notice to Comply”) has its own unique Data Model and Configurable Fieldset, you cannot use a template from one tool to import data into another.

Tool ID Validation: The import file contains a hidden metadata sheet named _cor_item. This sheet contains the specific Tool ID in cell A1. If you attempt to upload this file to a different Correspondence tool, the system will reject it to prevent data corruption.

4.2 - Technical & Data Constraints

  • Attachments: Files and photos cannot be uploaded via bulk import; they must be attached manually to individual items.
  • Workflow-Locked Fields: If an item is currently linked to an active workflow, fields controlled by that workflow (e.g., status, assignees, due_date) cannot be updated via bulk import. These must be managed within the Procore Workflow engine.
  • Fieldset Alignment: The import will fail if the Excel file contains columns (Export Names) that do not exist in the tool’s current Configurable Fieldset.
  • Trade IDs (Multi-select): Currently, the bulk tool supports only single-value “Trade” fields. Multi-select Trade configurations are not supported.

4.3 - File Integrity

  • Sheet Naming: The main data sheet must be named exactly as defined in the export (CORRESPONDENCE ITEMS).
  • Reference Sheet: Do not delete or rename the reference sheet _cor_item which includes your correspondence tool ID.

4.4 - Super-private items

Super-private items in Procore cannot be modified by API and therefore cannot be edited using Construction Admin Helper.

5 - Common Use Cases

5.1 - Bulk Status or Date Update

pdate status for multiple submittals:

  1. Export with only ID, Position, Title, and Status fields
  2. Filter to correspondence items needing status change
  3. Update Status & dates with new values
  4. Import with mandatory check disabled

5.2 - Creating Items from External Logs

Create multiple submittals with similar data:

  1. Export template without existing items on your specific correspondence type
  2. Add rows with unique positions
  3. Copy common field values down columns
  4. Leave ID column empty
  5. Import with mandatory check enabled

5.3 - Custom fields Adjustments

Adjust custom fields for a set of correspondence items:

  1. Export with ID, Number, Title, and relevant custom fields
  2. Filter as required
  3. Update custom fields values
  4. Import with mandatory check disabled