A deck per client, drafted every Monday.
Automated Reporting wires each client account to a template, a cadence, a recipient list. The Lyra Agent drafts six narrative sections from your real metrics on schedule. You walk into Monday with the read-out — review, edit any section in place, click send. Generation is automated; delivery is approval-gated by design.
One config per client, set and walk away .
Each client gets a configuration: the template, the cadence, the recipients, the output. Once set, the cron drafts on schedule — the Lyra Agent writes the narrative, the report stages for approval, and you ship it after a quick review. Numbers below are one agency's live setup.
- Weekly performance · DTC
- Weekly performance · B2B
- Monthly business review
- Executive summary
- KPI commentary
- Campaign analysis
- Search-term insights
- Lyra impact
- Recommendations
- SMTP · Gmail · DKIM
- Per-recipient tracking
- Approval gate before send
Out: a complete email , written by Monday morning.
The Lyra Agent drafts the email. You approve and ship. Below is a sample of run #18 for Basalt DTC after approval — three sections shown of the six in the email. Same shape week to week; new metrics; the Agent rewrites the narrative each run.
A pipeline, not a magic button .
The reporting workflow is a chain of named steps: read connected accounts, pull windowed metrics, render templated charts, hand the narrative slots to the Lyra Agent, compose the email, stage for approval, send by SMTP. Each step has a contract; failures are scoped to one step and re-tried.
What feeds the pipeline.
Connected Google Ads accounts, OAuth-linked. The reporting query is read-only; the workflow never edits the account.
What's templated, what's generated.
Section structure, KPIs, charts, and brand skin are templated. The 6 narrative sections (executive summary, KPI commentary, campaign analysis, search-term insights, Lyra impact, recommendations) are written by the Lyra Agent each run.
Who writes the words.
The Agent reads the same windowed metrics the charts read and drafts each of the 6 sections. The system prompts it to write as a senior PPC analyst, grounded in numbers from the run. Dual-AI fallback chain (primary → secondary → template) keeps generation reliable.
Drafted, then yours to ship.
When the cron finishes, the report sits in approved-pending state. You review the draft, edit any of the 6 sections in place, optionally re-generate one section without the others, then click send. Nothing emails until you do.
How the email is sent.
SMTP send via Gmail with DKIM signing. Per-recipient delivery is tracked in the run log — pending / sent / failed / bounced. Each address has its own status entry.
Every run leaves a record.
Each run writes a log entry: who configured it, when it ran, what was sent, where it landed, what failed. The log is queryable for 12 months, exportable as CSV per account.
Mondays used to be report-writing. Automated Reporting wired per-client decks with the story already written in — diagnosis, action, impact. Now Mondays are the read-throughs.
The honest answers about Reporting.
Is the narrative AI-written?
Yes. The 6 narrative sections (executive summary, KPI commentary, campaign analysis, search-term insights, Lyra impact, recommendations) are drafted by the Lyra Agent each run, grounded in the same windowed metrics the charts read. Layout, KPI definitions, and chart types are templated and don't change run-to-run. The Agent runs through a dual-AI fallback chain so reports still ship if the primary model is unavailable — a template-only fallback as the last layer.
Does the cron deliver automatically?
No. The cron drafts the report and stages it as approved-pending. You review the draft in Lyra, edit any of the 6 narrative sections in place (with optional per-section AI re-generate), and click send when you're happy with it. Email goes out then — not before. Generation is automated; delivery is approval-gated by design.
What cadences are supported?
Weekly (default Monday 06:00 Europe/Rome), bi-weekly, and monthly (1st of month, same hour). Per-account override. The Lyra Agent also lets you trigger an ad-hoc draft on demand from chat — useful for off-cycle reads.
What channels does it deliver to?
Email only. SMTP with DKIM signing. We don't currently advertise Slack, Teams, or webhook delivery — those are on the roadmap but not in scope today.
What happens if delivery fails?
Per-recipient delivery is tracked in `report_deliveries` — pending, sent, failed, bounced. A failed send for one recipient doesn't block delivery to the others; the row stays as `failed` with the SMTP error message attached, and you can retry from the run log.
Can I customise the template per client?
Section-level edit in place is supported on every run — change the headline, rewrite the summary, edit the recommendations. Brand colours, recipient list, and narrative tone (concise vs. detailed) are configurable per account. Custom section types ship via onboarding for agency plans.
Where does the log live and how long?
Every run writes to `report_generations` (status, AI provider, edited sections, timestamps) and `report_deliveries` (per-recipient outcomes). Both queryable in-app for 12 months, exportable as CSV per account.
Run the audit.
Keep the findings.
Connect your account and let Lyra run its 18 tools for 14 days. If the projected waste recovery isn't worth at least 10× the $49, don't pay. You keep every insight either way.
Read-only connect · write access opt-in per tool · SOC 2 in progress · GDPR + CCPA compliant