Quick overview
Create a quotation draft from a request CSV and an approved price list, with unmatched or conflicting items held for review. Built for parts distributors and sales teams using exact SKUs.
How it works
- Receives an n8n Form submission with two uploaded CSV files (request and price list) and a chosen delimiter.
- Validates that both uploads are UTF-8 .csv files within size limits and reads their contents as text.
- Parses both CSVs, enforces required headers, and builds a catalogue from the price list while flagging invalid rows and blocking duplicate SKUs.
- Validates each request line (line_id, quantity, unit) and matches it to exactly one case-sensitive SKU in the catalogue, holding unknown, blocked, duplicate, or unit-mismatched lines for review.
- Calculates unit prices and line totals for accepted lines, keeps separate totals per currency, and generates report.json plus quotation-draft.csv and review.csv.
- Packages the three files into a single ZIP and returns it as the form completion download with a status summary.
Setup
- Import the workflow and run it from the editor to open the n8n Form trigger.
- Prepare two UTF-8 CSV files matching the required schemas (request: line_id, sku, quantity, unit; price list: sku, description, unit, unit_price, currency).
- Upload both CSVs in the form and select the delimiter that both files share (comma, semicolon, or tab). Submit the form and download quotation-review.zip. Inspect report.json and review.csv, resolve all reported issues, and check the accepted line totals before using the draft. A partial draft is not a complete offer.
Requirements
- Tested on n8n 2.28.6. Built-in nodes only; no API credentials or paid services. Existing hosting costs apply. Both files must be UTF-8 CSVs using the same delimiter. Limits: 4,000,000 bytes per file, 1,000 request rows, 10,000 catalogue rows. Supported currencies: USD, EUR, GBP, THB, JPY, KWD.
Customization
- Change the input files and delimiter in the form. Rename source headers to the documented schema. Validation changes require code edits and retesting.
Additional info
CSV-only: no Google Sheets connection, PDF extraction, tax calculation, or customer delivery. Unknown, duplicate, conflicting, and invalid items remain unpriced for human review. A partial draft is not a complete offer. Enable form authentication before publishing a production form.