## How export works

Exporting a report is a **background job**. When you click an export button the system does not build the file in your browser — it creates a job, puts it in a queue and processes it in the background. This lets you export large listings without blocking your work in the application and without the risk of an interrupted download.

Right after queueing you see the message: *The report has been queued for generation. You will be notified by e-mail.*

An export contains **all** rows matching the filters — the 1000-record limit that applies to the on-screen preview does not apply here.

## Two ways to receive the file

### Export (PDF / CSV / XLS)

The file lands in **Reports → Report downloads** and an e-mail with a download link is sent to your address. The file stays available for **7 days** from generation.

### Send to me

The file is generated and sent **as an e-mail attachment** to your address. It does not appear in the downloads list and has no download link — you get it in your mailbox.

{% callout type="note" title="Which one to choose" %}
For large listings (tens of thousands of rows) use **Export** and download the file from the list — e-mail attachments are subject to size limits on mail servers.
{% /callout %}

## File formats

| Format | Details |
| --- | --- |
| **CSV** | Semicolon (`;`) separator, UTF‑8 with BOM, all values quoted — opens correctly in Excel with national characters |
| **XLS** | An `.xlsx` file; bold column headers, sheet named after the report |
| **PDF** | A4, orientation (portrait or landscape) taken from the report settings; table with a header row and alternating row background |

The file name is built from the report name (transliterated) and a unique identifier, e.g. `monthly-complaints-report_9f2c...xlsx`.

{% callout type="warning" title="PDF export limit" %}
PDF export covers at most **10,000 rows**. With more data the job ends with the error *PDF export is limited to 10,000 records* — narrow the filters or use the CSV or XLS format instead.
{% /callout %}

## Report downloads list

**Reports → Report downloads** contains your export jobs (you only see your own). Each job shows:

- **Report** — the report the export was made from
- **Format** — PDF, CSV or XLS
- **Status** — the current state of the job
- **Requested** — date and time the export was queued
- **Expires** — the moment after which the file is no longer available
- **Download** — link to the file

The list does not refresh by itself — after queueing an export use the **Refresh list** button to check whether the file is ready.

### Job statuses

| Status | Meaning |
| --- | --- |
| **Queued** | The job is waiting to be processed or is being generated |
| **Ready** | The file has been generated and can be downloaded (unless it expired) |
| **Failed** | Generation failed; the reason is shown next to the status |

When a file has expired, the download link is replaced with **Expired** and the date in the *Expires* column is highlighted. An expired report can simply be generated again — run the report with the same filters and queue the export once more.

## What happens after you queue an export

1. The job enters the queue with status **Queued**.
2. The processing service picks the job up and runs the report with the filters stored in it, in the language and time zone from the moment of queueing.
3. Data is written to the file in a streaming fashion (in chunks), so even very large listings do not overload the system.
4. The finished file is stored in the account's secure file storage (export) or attached to the message (send to me).
5. An e-mail is sent — with a download link or with the attachment.
6. The job status changes to **Ready** and, for exports, an expiry date is set (7 days).

If something goes wrong (for example the PDF limit is exceeded) the job gets the **Failed** status together with a description of the cause.

{% callout type="note" title="Filters are frozen in the job" %}
The export job remembers the filters from the moment you clicked the button. Changing filters on screen afterwards does not affect a file that is already being generated. Dynamic date values (e.g. "first day of the month") are resolved when the file is generated.
{% /callout %}

## Permissions and visibility

- Export and send-to-me are available to any user who may run reports
- The downloads list shows your own jobs only — you never see other users' exports
- The file contains exactly the data the report returned within your organisation scope

---

## FAQ

### Why doesn't the file download immediately after I click export?
Exports run in the background so that large listings do not block the browser. The file appears under **Report downloads** and you are notified by e-mail when it is ready.

### How long does generation take?
Usually a dozen or so seconds. It depends on the number of rows and columns, the format (PDF is the slowest) and the current queue load.

### How long is the file available?
7 days from generation. After that the link expires and the report has to be generated again.

### Does the file contain all records, or only 1000 like the screen?
The file contains every record matching the filters. The 1000 limit applies only to the on-screen preview. The exception is PDF, limited to 10,000 rows.

### I did not receive the e-mail with the report — what should I check?
Check your spam folder, then the job status in the **Report downloads** list. If the status is *Ready*, you can download the file directly from the list regardless of the e-mail.

### Which language is the report generated in?
The interface language you were working in when you queued the export — this applies to column headers and translated values (e.g. priority, channel).
