How to import requirements
When you'd do this: when you already hold a list of requirements in a spreadsheet, an exported register, or another tool, and you want to bring them into REQQA in bulk rather than typing each one by hand.
Importing creates a brand-new application from a delimited text file (CSV, TSV or similar) and populates it with one requirement per row. You map your file's columns to REQQA's fields, preview the result, choose how much AI processing to apply, and let REQQA do the rest. Every imported requirement is tagged so you can always tell it came from a file rather than being written by hand.
The import always creates a new application — it never adds rows to an existing one. Plan your file as one application's worth of requirements. If you need an application's mission filled in, add it after the import on the application's edit page; imports start with an empty mission.
Before you start
Prepare your file as a delimited text export:
- Formats accepted:
.csv,.tsv, or.txt. REQQA auto-detects the delimiter (comma, tab, semicolon, or pipe) from the file, so you don't have to declare it. - A header row is required. The first row must name your columns; the rows beneath it are your data. A file with only a header (or only data) is rejected.
- Encoding: UTF-8 is preferred. Latin-1 is accepted with a warning. Anything else is rejected, so re-save as UTF-8 if in doubt.
- Limits: a maximum of 500 data rows and a maximum file size of 2 MB. Files over either limit are refused — split a larger register into batches.
You need at least two columns: one that identifies each requirement (a reference) and one that gives it a title. A third column holding a longer description is optional but strongly recommended.
Step 1 — Open the import page and upload your file
- Go to your requirements list and open the import page (route reqsImport).
- Under Select File, click Choose a file... and pick your CSV, TSV or text file.
- Click Upload & Preview.
REQQA parses the file, detects the delimiter, and shows you a preview. If the file can't be parsed — wrong encoding, no header, empty, or over the row limit — you'll see a red File could not be parsed panel listing the exact problem. Fix the file and upload again.
Step 2 — Check the preview and map your columns
The preview shows how many requirements were found, the detected delimiter, and the first ten rows of data with their column numbers. Any non-fatal issues (for example, a file read as Latin-1 rather than UTF-8) appear as amber warnings — the import can still go ahead, but it's worth knowing.
Under Column Mapping, tell REQQA which of your columns is which. REQQA attempts to auto-detect these from your header names and pre-selects its best guess; always confirm them.
| REQQA field | Required? | What it becomes |
|---|---|---|
| Ref Column | Yes | The requirement's reference — your existing identifier, preserved as-is. |
| Title Column | Yes | The requirement's title. Common prefixes like F01_ or FR-01_ are stripped and the title is trimmed to 50 characters. |
| Description Column | No | The requirement's body content. If you leave this as None, the title is used as the content. |
Ref and Title are both mandatory. If either is left unmapped, the import is rejected with a validation error. Pick the columns that genuinely hold a reference and a title — don't map an empty column just to get past the check.
Step 3 — Name the application and pick a template
Under Application Details:
- Application Name — the name of the new application REQQA will create (up to 40 characters). This is required.
- Requirement Template — the requirement template applied to every imported requirement. It defaults to Functional — Standard; change it if your requirements follow a different shape.
Step 4 — Choose an import mode
REQQA offers three import modes. Flat runs immediately; the two AI modes run as background jobs and take you to a status page.
- A — Flat Import. Imports every row exactly as a flat list: no hierarchy, no AI. Best when your requirements are already well-structured and you just want them in REQQA. This mode runs straight away.
- B — Import + AI Grouping. Imports all your rows, then asks the AI to create parent groups and organise the requirements into a two-level hierarchy. Your original requirements are preserved underneath the groups.
- C — AI Consolidation. The AI merges your rows into roughly 10–20 coherent grouped requirements. Unlike B, the originals are not imported individually — use this to distil a long, repetitive list into a tidy set. REQQA asks you to confirm before running this, because the originals won't appear one-by-one.
Click the card for the mode you want (this updates the green button's label), then click the Import button to start. Options B and C use AI and will consume tokens against your organisation's AI configuration.
Tracking an AI import
Flat imports finish at once and drop you back on the requirements list with a success message. The two AI modes send you to the import status page (route reqsImportStatus), which auto-refreshes every few seconds and shows the job's progress and current step.
When the job finishes you'll see a summary of what happened, for example:
- Grouping — how many requirements were imported, how many groups were created, and how many duplicates were flagged.
- Consolidation — how many original requirements went in, how many consolidated requirements came out, and how many duplicates were removed.
If a job fails, the status page shows the error so you can correct the file and try again. You can monitor the same jobs from REQQA's job queue page; see Background jobs for the wider picture.
If you leave the import status page and the session expires before you return, the job itself keeps running on the queue — but you'll be asked to start a fresh upload from the import page. Check the job queue to confirm the earlier job completed before re-uploading the same file.
How a row becomes a requirement
For each imported row, REQQA:
- keeps your Ref value as the requirement's reference;
- cleans the Title (stripping leading prefixes, trimming to 50 characters);
- builds the content from your description column, with the title prepended as a top-level heading — or uses the title as the content if you mapped no description column;
- sets a Medium priority and the template you chose;
- records a creation entry in the requirement's history.
Every imported requirement is given an origin of csv-import (the AI modes use
their own import origin values). That origin is visible and filterable on the
requirements list, so you can always
distinguish imported requirements from ones written manually in REQQA or generated
by the AI — useful when you want to review, clean up, or analyse
the imported set specifically.
Validation and error handling
REQQA validates at three points, and stops with a clear message rather than importing a half-broken set:
- At upload — bad encoding, missing header, empty file, no data rows, or more than 500 rows produce a fatal parse error and nothing is imported.
- At the mapping step — leaving Ref or Title unmapped, or omitting the application name or template, is rejected before any data is touched.
- At execution — the file is re-parsed and the mapped rows are revalidated; if no usable requirements remain, the import is abandoned with a warning.
If a Flat import hits a database error part-way through, the whole import is rolled back so you don't end up with a partial application. AI import jobs report their own failures on the status page.
Result
A new application populated with your requirements — flat, AI-grouped, or
AI-consolidated — each carrying its original reference, a cleaned title, your
chosen template, and an imported origin. From here, fill in the application's
mission, then review, refine, and analyse the imported requirements as you would
any others.
Related
- How to manage your requirements — edit, filter and organise requirements once they're imported.
- How to write your application mission — add the context the import starts without.
- Background jobs — how the AI grouping and consolidation jobs run and how to watch them.
- How to analyse a requirement — apply DeFOSPAM analysis to your newly imported requirements.