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 1 hour 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/pdfwithformat: 'pdf'(the same endpoint produces CSV withformat: 'csv'). Returns aworker_run_id; pollGET /api/v1/reports/:id/pdf-urluntil status isCOMPLETED, 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
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:
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
- Reports aggregate at campaign level only (
group_by: 'campaign'); there is no ad-set or ad-level PDF export
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:
- Click Export → PDF
- The job is enqueued; poll
GET /api/v1/reports/:id/pdf-urlfor progress - SQS worker generates the file
- When
COMPLETED, download the signed URL from the Download Center (GET /api/v1/reports/exports), which persists your recent exports across page refreshes - 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
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.