Exporting legacy custom objects using the data export tool
Use the custom object data export tool to download your legacy custom object records and legacy relationship records from Admin Center as CSV files packaged in a ZIP archive. This export is intended to be used as the “extract” step of your migration workflow. You can transform the CSV data as needed and then load it into the new custom objects experience using the Custom Objects APIs or the Admin Center data importer.
Using the export tool
Launch the export tool from Admin Center:
-
In Admin Center, click Objects and rules in the sidebar, then select Custom objects > Objects.
-
Click Export Tool in the banner.
-
Review the list of legacy objects and relationships shown in the export window.
-
Click Export next to the object or relationship type you want to export.
The export runs as a background job. You don't need to stay on this page while it runs.
-
When the job completes, click Download ZIP to download the exported files.
Understanding the export file format
Each export is delivered as a ZIP file. The filename depends on what you export:
- Object exports:
resources_{objectkey}_export.zip - Relationship exports:
relationships_{relationship_type_key}_export.zip
Exports are split into multiple CSV files to keep large datasets manageable and compatible with tools like Microsoft Excel and Google Sheets.
- Each CSV file contains up to 20,000 records
- Datasets larger than 20,000 records are automatically split into batches within the same ZIP file
For example, a dataset with 200,000 records is split into multiple files in the ZIP archive, with filenames like:
- Object records:
{object_key}_batch_1.csv,{object_key}_batch_2.csv, and so on - Relationship records:
{relationship_type_key}_batch_1.csv,{relationship_type_key}_batch_2.csv, and so on
The columns in your exported files depend on the type of data being exported. Relationship records always have the same three columns, but object records have columns for the standard fields and all custom fields defined in the legacy custom object's schema.
Object records CSV columns
| Column | Description |
|---|---|
| id | Unique system id for the legacy record |
| external_id | Your custom identifier (if set) |
| updated_at | Timestamp of the last update |
| {field names} | One column per custom field defined in the legacy schema |
Relationship records CSV columns
| Column | Description |
|---|---|
| id | Unique relationship record id |
| source_id | id of the source legacy object record |
| target_id | id of the target legacy object record |
Example output
The following examples show what exported objects and relationship records look like in CSV format.
Example: Contract records
| id | external_id | updated_at | contract_active | contract_amount | contract_end_date | contract_id | contract_type |
|---|---|---|---|---|---|---|---|
| 5ba05309-0606-11f1-adb8-c39cdaefd342 | 2026-02-09 22:26:20.0 | TRUE | 200 | 2026-12-12 | Contract #1 | Individual | |
| 5bb4c56b-0606-11f1-adb8-7b1d048effc5 | 2026-02-09 22:26:20.0 | TRUE | 300 | 2026-12-13 | Contract #2 | Combined | |
| 5bc58e4b-0606-11f1-95c1-df928a0ddb00 | 2026-02-09 22:26:20.0 | TRUE | 400 | 2026-12-14 | Contract #3 | Combined | |
| 5be216fd-0606-11f1-95c1-696b5c2e0f03 | 2026-02-09 22:26:21.0 | TRUE | 500 | 2026-12-15 | Contract #4 | Combined | |
| 5bf81001-0606-11f1-aede-372d005a3222 | 2026-02-09 22:26:21.0 | TRUE | 600 | 2026-12-16 | Contract #5 | Individual | |
| ad5a42a5-0606-11f1-b67a-0bc5d229d023 | 2026-02-09 22:28:37.0 | TRUE | 700 | 2026-12-17 | Contract #6 | Individual |
Example: Vehicle record with a complex field
| id | external_id | updated_at | make | model | specs |
|---|---|---|---|---|---|
| d6dbec423a | 2026-01-27 | Honda | Civic | {"engine":"1.5L Turbo","mpg":33.5} |
Example: Owner-to-car relationship record
| id | source_id | target_id |
|---|---|---|
| 0afb9bb153 | 2e520bfg23 | 2c99866h98 |