None. Those entries already have an id. The export-then-reimport flow is therefore the same whether you are configuring prices for the first time or updating existing ones.
The standard workflow is: export your existing prices → edit the CSV → reimport it. The id column is the only key Qwoty uses to match rows; all other fields are updated in place.
You must have the Admin role to access Import & Export. Pricebooks must already exist before you can configure their prices.
Access
Navigate to Settings → Import & Export, then select the Prices section. The page has two panels: Import (upload a CSV) and Export (download your current data).Update prices
1
Export your current prices
In the Export panel, choose what to download:
- All data — every price across all pricebooks
- Filter by pricebook — one pricebook at a time
- Filter by catalog — all prices for products in a given catalog
id column pre-filled for every existing entry.2
Edit the CSV
Open the file in your spreadsheet editor and fill in or update the pricing columns. The following columns are read-only context — they identify what each row represents and must not be changed:
id,product_api_name,pricebook_api_name,currency_code,type,period_unit,period
pricing_model, amount, percent, cost, floor_price, vat_code, engagement_type, period_duration_month, pay_as_you_go, identifiers[*], and tier columns.Rows with an empty pricing_model (or None) are placeholder prices waiting to be configured. Set the model and the relevant amount columns for those rows.3
Reimport the file
In the Import panel, click Upload File and drop your edited CSV.The import wizard runs in four steps: Upload → Mapping → Confirm → Result. Review the mapping screen before confirming to make sure columns are matched correctly.
Once the import completes, your prices are live in the corresponding pricebooks. Open a pricebook to verify the changes.
The six pricing models
Each row declares its model in thepricing_model column. The required columns depend on the model.
CSV columns reference
Tier indexes are 0-based: the first tier is
tiers[starting_unit][0], the second is tiers[starting_unit][1], and so on.Examples by pricing model
Flat one-time
A fixed amount per unit, with an internal cost reference for margin reporting:Flat recurring (monthly, open-ended)
A fixed monthly fee with no commitment period:Flat recurring (annual, fixed commitment)
An annual price with a 12-month commitment:Cost based
Selling price is computed as the product’s defined cost × the multiplier incost. A floor_price sets the minimum:
Percent
A percentage of a reference product’s price, calculated at quote time:Graduated tiered
The first 10 units at €49, everything above at €39:10 × €49 + 5 × €39 = €685.
Volume tiered
The entire quantity is priced at the tier matching the total volume:150 × €5.00 = €750 (everything at the tier matching 150).
None (placeholder)
The product appears in the pricebook but has no configured price. Sales reps fill in the amount manually on each quote:Troubleshooting
Import failed: unknown pricing_model
Import failed: unknown pricing_model
pricing_model is case-sensitive. Use exactly: Flat, Cost based (with a space), Percent, Graduated Tiered, Volume Tiered, None. Lowercase variants or underscores (cost_based) are rejected.Import failed: id not recognized
Import failed: id not recognized
The
id column must contain a UUID that exists in your workspace. Only rows from an export of your own workspace are valid. Do not copy IDs from another workspace or create new ones manually.Tiers are imported in the wrong order
Tiers are imported in the wrong order
Qwoty orders tiers by
tiers[starting_unit][N] value, not by index position. Make sure tiers[starting_unit][0] is the smallest value. Overlapping ranges trigger a validation error.vat_code is rejected
vat_code is rejected
Use the
vat_<country>_<rate> format, all lowercase, with the rate as a number without a decimal point: vat_fr_200 for 20%, vat_fr_055 for 5.5%, vat_de_190 for 19%. Leave the cell empty when no VAT applies.Fixed-term price shows no commitment duration
Fixed-term price shows no commitment duration
When
engagement_type is fixed, you must also fill in period_duration_month with the number of months (e.g. 12 for a 12-month commitment). Leaving it empty with engagement_type = fixed causes the field to be ignored.Percent price is applied with unexpected results
Percent price is applied with unexpected results
The
percent column takes a number, not a fraction: 8.95 means 8.95%, not 0.0895. Combine with floor_price to set a minimum charge.Related
Pricing types reference
Conceptual deep-dive on each pricing model and when to use it.
Create a pricebook
Set up the pricebook before exporting its prices to configure.
Import products
Products must exist before their prices can be configured.
Prepare your CSV
Universal formatting rules for all Qwoty imports.

