Import a product structure from JSON data. This will update the specified product with the provided data structure.
Warning: This operation will delete all existing tasks, steps, scripts, translations, resources, and other product-related data, then replace them with the imported data. The product record itself is updated (not deleted). Use with caution.
Critical Requirements:
- The imported JSON must be exported from the same product (same product ID and bundle_id combination)
- The
bundle_idin the JSON must match the target product'sbundle_idexactly - If
bundle_iddoes not match, the import will be rejected with a 400 error - The JSON must include the
product.bundle_idfield (included in all exports) - GUIDs are preserved from export to import (not regenerated)
- Empty arrays (e.g.,
tasks: []) will not create any entries for that entity type
Validation Rules:
bundle_idmismatch: Import rejected (prevents importing wrong product data)- Missing
bundle_id: Import rejected (indicates invalid export format) - Inherited Copilots: Cannot be imported (both source and target)
Limitations:
- Only one import operation can run per product at a time (concurrent imports are blocked)
- Large products may take several minutes to import; configure HTTP client timeouts accordingly
- If the import operation fails partway through, the product may be left in a partial or empty state; retry the import until it succeeds
Best Practices:
- Export the product before importing to create a backup
- Do not modify the exported JSON structure (only modify
datacontents if needed) - If the import fails, you can retry immediately (the lock is released on failure)
- Check the response
summaryanderrorsfields for import results - Retry failed imports until they succeed to ensure complete data restoration
Common use cases:
- Restore from backup (same product)
- Update product structure (same product)
- Transfer between environments (same product, different server)
Import Structure:
The data object must match the structure returned by the export endpoint.
Note: For complex imports with nested structures (tasks, steps, resources, etc.), use the code samples provided below rather than the form-based interface. Copy the cURL, JavaScript, Python, or PHP example and replace the JSON payload with your exported data.
