Skip to main content
This guide walks you through preparing a CSV file for a successful import into Qwoty. Follow these steps in order to avoid errors.

Step 1: Check file requirements

For larger datasets, split them into several files or use the Qwoty API.

Step 2: Download the template

This is the most important step. The template shows the exact column names and format Qwoty expects.
  1. Open Settings › Data › Import & Export.
  2. Click Products or Prices.
  3. Click Download Template.
  4. Keep the headers and replace the example rows with your data.
To update existing records, export them first (Export CSV) instead of starting from the template. The export contains the IDs Qwoty needs to match each row, and its column names map automatically when you import it back.
Prices are created automatically for each product in your pricebooks. To fill them in, always start from an export of your prices. See Import prices.

Step 3: Remove duplicate identifiers

Each record can appear only once per file. Duplicates are reported as validation errors.

Step 4: Format each field type correctly

Text fields

  • No special formatting required.
  • If a value contains a comma, line break, or quote, wrap it in double quotes: "Premium, Extra Large".

Number fields

  • Numbers only (no text, no currency symbol).
  • Use a period for decimals: 1234.56.
  • No thousands separators (not 1,234.56).

Boolean fields

Use true or false. This applies to fields like settings[is_active] and pay_as_you_go.

Enum (select) fields

Use the exact value Qwoty expects:
Enums are case-sensitive. Recurring is rejected: use recurring. For pricing_model, use the labels above or the internal values flat, cost_based, percent, graduated, volume, none.

Date fields

For date custom fields, use ISO 8601: YYYY-MM-DD, for example 2026-04-25.

Tax fields

vat_code takes the API name of a tax defined in Settings › Workspace › Tax (for example FR_200). Leave the cell empty for no default tax.

ID fields

  • Format: UUID, for example c776ee49-f608-4a77-8cc8-6fe96ae1e43f.
  • Products: leave product_id empty to create a product; fill it to update an existing one.
  • Prices: id is required. Use the price UUID from an export, or a price key such as licence_pro.standard_eur.month.1.

Multi-value fields

Some fields accept several values in one cell, separated by commas, with the cell wrapped in double quotes:

Indexed fields (tiers, options)

Qwoty uses bracket notation with a numeric index for repeating field groups. Indexes are 0-based for tiers and 1-based for options.

Step 5: Add relation columns

Import order matters.
  1. Create catalogs, categories, pricebooks, and variant options in the app.
  2. Import products.
  3. Export, fill in, and import prices.

Step 6: Make sure custom fields exist

The import creates records, not fields. To fill product custom fields:
  1. Open Settings › Data › Data Model.
  2. Open the Products object and create the fields you need.
  3. In your CSV, name the column custom[<api_name>], using the field’s API name exactly.
See Data model for the full guide on custom fields.

Step 7: Final checklist

  • File is in CSV format, UTF-8, under 10 MB and 10,000 rows
  • Field separator is a comma , and decimal separator a period .
  • Multi-value cells use commas inside, with quotes around the cell
  • No duplicate identifiers (product_id, id)
  • Boolean fields use true or false
  • Enum fields use the exact values shown in Step 4
  • Custom fields exist in Settings › Data › Data Model
  • Catalogs, categories, pricebooks, and variant options already exist
  • Products are imported before prices

Common mistakes to avoid

Next steps

Import products

Create or update your products.

Import prices

Fill in the prices of your pricebooks.

Data model

Add custom fields before importing if needed.
Last modified on October 27, 2026