Use this article when you need to load many substrates at once — onboarding from a supplier list, refreshing prices monthly, or migrating papers from another MIS. After this you will see the imported rows staged in Pending Changes and, once applied, available for selection on quotes.
Before you begin
Required role: MIS Admin. Estimate Setup edits are gated to MIS Admin on most tenants.
Decide which subcategory the file covers — Commercial Print or Large Format. Import targets the table you open; the two subcategories use different column sets and a single file cannot mix them.
Make sure every Tag referenced in the file already exists. Import rejects the file when it names a tag that is not in the library — create missing tags first under the substrate library setup.
Plan time to Apply Changes from Pending Changes after import. Imported rows are staged; they do not appear on quotes until they are applied.
Steps
1. Prepare the file
Use one of these two starting points:
An Export of the current substrate table that you have edited (recommended — the column layout already matches and existing rows carry an ID column that lets the re-import update rows in place).
The CSV template linked from the Import Data dialog, filled in for new rows only.
Fill in the fields below. Column headers are the same as the table you are importing into; documented headers are listed under the relevant sub-group.
Identification
ID — Estimator's stable identifier for the substrate. Leave the existing value on rows you want to update in place. Leave the cell blank (or omit the column) on new rows so they create.
Name — the substrate's customer-visible name as it should appear in pickers (e.g., "Silk 130gsm SRA1").
Code — your internal SKU or supplier code. Optional but useful for cross-referencing with purchasing systems.
Substrate classification
Substrate Type — choose from the allowed enum values shown in the table (e.g., "Paper", "Board"). Spelling must match exactly; the import fails on unknown values.
Paper Type — finish family (e.g., "Silk", "Gloss", "Uncoated"). Must match an allowed value.
Coat — coating treatment (e.g., "Coated", "Uncoated", "One-side coated"). Must match an allowed value.
Grain Direction — long-grain or short-grain marker as offered in the UI dropdown.
Specifications
Weight — paper weight in gsm or lb, per the column the export used (e.g., 130 gsm or 80 lb). Numeric only — no units in the cell.
Sheet sizes — comma-separated list of the parent sheet sizes this substrate is stocked at (e.g., "SRA3, SRA2, SRA1"). The names must match your existing sheet-size labels.
Pricing
Price — unit price in the tenant currency (e.g., 0.075 for a per-sheet rate). Numeric only.
Price UOM — unit of measure the price refers to (e.g., "per sheet", "per kg"). Must match an allowed value.
Linking
Tags — comma-separated tag names already present in the library (e.g., "Premium, Coated, FSC"). Unknown tags fail the import.
Brands — comma-separated brand names already present in the library (e.g., "Mohawk, Arctic Volume"). Unknown brands fail the import.
Save the file as XLSX or CSV.
2. Open Import Data
In Estimate Setup, open Substrates and choose Commercial Print or Large Format so the table that matches your file is on screen.
Choose Import. The Import Data dialog opens.
3. Upload and resolve validation errors
Select your file in the Import Data dialog and submit. Estimator validates the file against the current column schema before staging any rows.
If validation fails, the dialog lists what blocked the file. Common fixes:
Unknown Tags or Brands — create them in the library first, then re-import.
Invalid enum values in Paper Type, Substrate Type, Coat, or Grain Direction — check the spelling against the UI dropdown and correct the file.
Missing required fields — add the missing column or fill the blank cells.
Non-numeric values in Weight or Price — remove unit suffixes and stray characters.
Resubmit the file until the dialog confirms the import succeeded. Estimator reports the row count, for example Imported 47 rows.
4. Review and apply
Open the Pending Changes panel in the sidebar. Imported rows are staged as a single change set. Review the creates and updates against expectation — the panel lists each substrate by name with the change type.
Choose Apply Changes to publish the import to the live setup. The Pending Changes count returns to zero and the new substrates are now selectable on quotes.
5. Test on a quote
Open or create a test quote that should use one of the imported substrates. Confirm the substrate appears in the picker, the price calculates against the new value, and the quote totals look correct.
Things to know
Rows with an ID update the matching substrate; rows without an ID create a new one. A typo in the ID column does not error — it creates a new row instead of updating the intended one. Spot-check after Apply Changes for unexpected creates.
Parent sheet and cut-to-size configuration does not survive an export/import round-trip today. Child cut sizes are not included in the export, and re-importing an exported parent row can reset parent-sheet properties. Configure cut-to-size in the in-app parent-sheet editor after the import lands.
Importing substrates does not update Procurement or inventory stock levels — those systems sync only when a separate integration is configured for the tenant.
Related articles
Add or edit a substrate
Assign substrates to products and parts
Troubleshoot a missing substrate
