Export reports to PDF

/reports → Export → PDF. POST /api/v1/report-pdf. Formatted report with branding, charts, summary tables. Templates supported.

Written By Salvatore Sinigaglia

Last updated About 4 hours ago

/reports → Export → PDF. POST /api/v1/report-pdf. Formatted report with branding, charts, summary tables. Templates supported.

Export reports to PDF

/reports → Export → PDF. Backed by POST /api/v1/reports/pdf with format: 'pdf' (the same endpoint produces CSV with format: 'csv'). Returns a worker_run_id; poll GET /api/v1/reports/:id/pdf-url until status is COMPLETED, then download the signed URL. Delivery is in-app via the Download Center (GET /api/v1/reports/exports) — not by email. Reports aggregate at campaign level only (group_by: 'campaign'). Generates a formatted report with branding, charts, summary tables.

Who is this for

Agencies producing client-facing reports. Mediabuyers running monthly stakeholder reviews. Anyone who needs a polished visual report (vs raw CSV data).

When to use PDF vs CSV

Use PDFUse CSV
Client deliverableBI tool input
Monthly review meetingSpreadsheet analysis
Executive summaryAccounting reconciliation
Visual report with chartsRaw data manipulation
Polished branded outputQuick data dump

PDF wins on presentation; CSV wins on data manipulation.

How to export PDF

Step 1: Open Reports

/reports page.

Step 2: Configure report

Same as CSV: date range, filters, columns. Aggregation is campaign-level (group_by: 'campaign').

Step 3: Pick template

Templates control look + sections included:

  • Default: clean Wevion-branded report with standard sections
  • Executive Summary: shorter, top-line metrics only
  • Detailed Performance: full granular detail
  • Custom: configured per workspace

For custom templates: see template creation via POST /api/v1/report-templates (verified endpoint).

Step 4: Click Export → PDF

Top toolbar → Export → PDF.

Step 5: Async generation

PDF generation takes 5-30 sec depending on:

  • Date range size
  • Number of campaigns
  • Number of charts
  • Custom branding complexity

UI shows "Generating PDF...".

Step 6: Download

The job runs async. Poll status via GET /api/v1/reports/:id/pdf-url; once COMPLETED, a signed download URL is returned (valid ~7 days). Delivery is in-app: find the file in the Download Center (GET /api/v1/reports/exports). There is no email delivery.

What's in the PDF

Standard sections:

  1. Cover page

    • Workspace name + brand logo
    • Report period (date range)
    • Generated timestamp
    • Recipient (if customized)
  2. Executive summary

    • Top-line KPIs (total spend, impressions, conversions, ROAS, CPA)
    • Vs previous period (% change)
    • Top 3 campaigns by spend / ROAS
  3. Per-platform breakdown

    • Spend per platform (donut chart)
    • Performance per platform (table)
  4. Per-campaign detail

    • Table sorted by spend desc
    • Per-campaign metrics + delta vs comparison
    • Reports aggregate at campaign level only (group_by: 'campaign'); there is no ad-set or ad-level PDF export
  5. Appendix

    • Filters applied
    • Date range exact
    • Currency + timezone notes

Branding + customization

Workspace-level customization:

  • Logo: upload via team-branding (workspace settings)
  • Brand colors: configured for chart colors
  • Cover image: optional banner
  • Footer text: legal disclaimer or contact info
  • Custom sections: agency can add/remove sections

Per-PDF customization at export time:

  • Cover title: custom title for this specific report
  • Recipient name: addressee field

Report templates

Reusable configurations for recurring reports:

  • Save current report config + customizations as template
  • POST /api/v1/report-templates (verified)
  • Reuse: select template → exports with that config

Use cases:

  • "Monthly Client Report" template
  • "Weekly Performance Brief" template
  • "Quarterly Executive Summary" template

Saves clicks on every recurring report.

Endpoint

POST /api/v1/reports/pdf (verified apps/backend/src/routes/api/report-pdf.route.ts).

Request:

  • Report config (date, filters, columns; group_by: 'campaign' — campaign-level only)
  • format: 'pdf' (or 'csv')
  • template_id (optional)

Returns: an async-job envelope with worker_run_id. Poll GET /api/v1/reports/:id/pdf-url for status (RUNNING / COMPLETED / FAILED) and, when complete, a signed download URL (~7 days). POST /api/v1/reports/:id/retry retries a failed job.

Generation runs on an SQS worker.

Async PDF generation + Download Center

For very long reports (12-month detailed): async generation:

  1. Click Export → PDF
  2. The job is enqueued; poll GET /api/v1/reports/:id/pdf-url for progress
  3. SQS worker generates the file
  4. When COMPLETED, download the signed URL from the Download Center (GET /api/v1/reports/exports), which persists your recent exports across page refreshes
  5. There is no email delivery for ad-hoc exports (only scheduled reports can email recipients — see am-118)

Size + page count

  • Small report (1 month, 10 campaigns): 5-10 pages
  • Medium (3 months, 50 campaigns): 20-30 pages
  • Large (12 months, 200 campaigns): 100+ pages

Very large reports: consider CSV export instead OR split into multiple PDFs by period.

Comparison period in PDF

If you enable Compare to (e.g. compare last 30 days vs previous 30 days):

  • Each metric shows current value + delta (% change)
  • Charts may show stacked / overlaid for both periods
  • Adds 1-2 pages of comparison summary

See am-120 comparison period.

Best practices

One PDF per audience

Don't make one giant PDF for everyone. Make:

  • 2-page executive summary PDF for C-level
  • 10-page detailed performance PDF for team lead
  • 50-page granular PDF for direct mediabuyer

Each fits the consumer's depth needs.

Use templates for consistency

Recurring reports: build template once + reuse. Keeps every monthly report consistent.

Customize branding once

Set workspace branding once (logo, colors) → applies to all PDF exports. Don't customize per-export unless special.

Schedule for recurring reports

For weekly / monthly recurring: use scheduled reports. Auto-generate + email recipients. No manual export needed.

RBAC + audit

Mediabuyer+ to export PDF.

What you'll see

After Export PDF:

  • A job is enqueued; the UI polls until the export is COMPLETED
  • The finished file appears in the Download Center (persists across refreshes)
  • PDF is professionally formatted, branded, ready to send to clients

Common issues

  • "PDF generation hung > 5 min": large report; switching to CSV may be faster.
  • "Brand colors not applied": workspace branding not configured. Set up at workspace settings.
  • "Logo missing": not uploaded yet. Workspace settings → Branding.
  • "PDF too large to email": > 25 MB. Use shareable link (Wevion provides) instead of attachment.
  • "Wrong language in PDF": PDF respects workspace locale; verify Workspace Defaults.

Cross-cluster: report scheduling

For recurring PDF exports: scheduled reports automate the workflow (generate + email at fixed cadence).

FAQ

How do I export a PDF report in Wevion?

Open the Wevion Reports page at /reports, configure the date range, filters, and columns just like a CSV (aggregation is campaign-level), pick a template, then click Export → PDF. The request hits POST /api/v1/reports/pdf with format: 'pdf' and returns a job you poll via GET /api/v1/reports/:id/pdf-url. When complete, download it from the in-app Download Center — there is no email delivery for ad-hoc exports.

When should I choose PDF over CSV in Wevion?

Choose PDF in Wevion when you need presentation: client deliverables, monthly review meetings, executive summaries, or a visual report with charts and polished branding. Choose CSV when you need data manipulation such as BI tool input, spreadsheet analysis, or accounting reconciliation. PDF wins on presentation, CSV wins on raw data.

Can I brand Wevion PDF reports?

Yes. Wevion applies workspace-level branding to PDF exports, including your logo, brand colors for charts, an optional cover image, and footer text. Set this once in workspace settings and it applies to all PDF exports. At export time you can also add a per-PDF cover title and recipient name.

What sections are in a Wevion PDF report?

A standard Wevion PDF includes a cover page with workspace name and logo, an executive summary of top-line KPIs versus the previous period, a per-platform breakdown with a spend donut chart, a per-campaign detail table sorted by spend (reports are campaign-level only), and an appendix listing filters, exact date range, and currency and timezone notes.

Why aren't my brand colors showing in the Wevion PDF?

This happens when workspace branding has not been configured yet. Set up your logo and brand colors in Wevion workspace settings under Branding, and they will be applied to all PDF exports. If the language is wrong, verify the workspace locale in Workspace Defaults.