See llms.txt for all machine-readable content.

Back to Templates

Create quotation drafts from CSV requests with a Google Sheets price list

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

  1. Receives an n8n Form submission with two uploaded CSV files (request and price list) and a chosen delimiter.
  2. Validates that both uploads are UTF-8 .csv files within size limits and reads their contents as text.
  3. Parses both CSVs, enforces required headers, and builds a catalogue from the price list while flagging invalid rows and blocking duplicate SKUs.
  4. 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.
  5. 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.
  6. Packages the three files into a single ZIP and returns it as the form completion download with a status summary.

Setup

  1. Import the workflow and run it from the editor to open the n8n Form trigger.
  2. Prepare two UTF-8 CSV files matching the required schemas (request: line_id, sku, quantity, unit; price list: sku, description, unit, unit_price, currency).
  3. 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.