Export reports to PDF
Last updated: May 19, 2026
Export reports to PDF
/reports → Export → PDF. Backed by POST /api/v1/report-pdf endpoint (verified). Generates a formatted report with branding, charts, summary tables. Async generation (5-30 sec). Use cases: client deliverables, monthly reviews, executive summary. Customizable via report templates (POST /api/v1/report-templates).
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 PDF | Use CSV |
|---|---|
Client deliverable | BI tool input |
Monthly review meeting | Spreadsheet analysis |
Executive summary | Accounting reconciliation |
Visual report with charts | Raw data manipulation |
Polished branded output | Quick 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: level, date range, filters, columns.
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
Once ready: download starts automatically. Or check Reports → Recent exports for the file.
What's in the PDF
Standard sections:
Cover page
Workspace name + brand logo
Report period (date range)
Generated timestamp
Recipient (if customized)
Executive summary
Top-line KPIs (total spend, impressions, conversions, ROAS, CPA)
Vs previous period (% change)
Top 3 campaigns by spend / ROAS
Per-platform breakdown
Spend per platform (donut chart)
Performance per platform (table)
Per-campaign detail
Table sorted by spend desc
Per-campaign metrics + delta vs comparison
Per-ad-set detail (if level=adset)
Per-ad detail (if level=ad, optional creative thumbnails)
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/report-pdf (verified apps/backend/src/routes/api/report-pdf.route.ts).
Request:
Report config (level, date, filters, columns)
Template ID (optional)
Custom fields (cover title, recipient)
Returns: PDF file (or URL to download).
Async via SQS worker for large reports.
Async PDF generation
For very long reports (12-month detailed): async generation:
Click Export → PDF
UI shows "Generating — we'll email when ready"
SQS worker generates
Email with download link (valid 7 days)
Download → open
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
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. Audit log: action: report_pdf_export.
What you'll see
After Export PDF:
For sync (< 10 sec): download starts
For async: "Generating — email when ready" toast + Reports history entry
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).
Related
Export reports to CSV — raw data alternative
Schedule recurring reports — automate PDF exports
Date ranges, timezones, currency — PDF respects these