Skip to content
esc close · switch
LYRA/ Tools/ Operations/ Automated Reporting
Operations Scheduled draftApproval-gated send

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.

Email-only delivery · Weekly · bi-weekly · monthly · Approval before send
What runs · the configured workflow

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.

Workflow · Multi-brand agency · 11 client accounts Live · last sync 09:38 UTC
01 · Accounts 11 Wired to a report Each client account paired with one weekly template. MCC + 10 sub-accounts.
02 · Cadence Mon 06:00 Europe/Rome · default Default weekly schedule. Per-account override available — bi-weekly, monthly on the 1st.
03 · Recipients 38 Email addresses Across 11 distribution lists. Avg. 3.5 per client. Email-only delivery.
04 · Format HTML Email · 6 sections HTML email with 6 AI-drafted sections. Each section editable in place before send. Per-section AI re-generate available.
Templates wired
  • Weekly performance · DTC7 accts
  • Weekly performance · B2B3 accts
  • Monthly business review11 accts
Sections per report
  • Executive summaryLyra Agent
  • KPI commentaryLyra Agent
  • Campaign analysisLyra Agent
  • Search-term insightsLyra Agent
  • Lyra impactLyra Agent
  • RecommendationsLyra Agent
Delivery channel
  • SMTP · Gmail · DKIMprimary
  • Per-recipient trackingdelivered/failed
  • Approval gate before sendmanual click
The deck · what gets drafted

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.

basalt-dtc · weekly · 2026-W17 delivered Apr 27 · 09:00 UTC · 4 recipients · HTML · 64 KB run #18 · v.4.2
Weekly performance · DTC

Week 17, 2026 . Apr 20 – Apr 26.

ClientBasalt DTC Window7d rolling Drafted2026-04-27 · 06:00 Rome Run#18 · v.4.2
LYRA REPORTING 01 · 08
Section 02 · Executive summary

Spend up 4% , ROAS held flat at 3.6×.

Total spend rose to €38.4k (+€1.5k WoW), driven by Autumn PMax pacing taking up its lifted budget. ROAS held at 3.6× — same as W16 — and conversions climbed to 1,142 (+62 WoW).

The Brand campaign group continued to be the cheapest source of conversions at €18 CPA; the Non-Brand Search group drifted to €51 CPA (+€4 WoW), worth a look in the standup.

Lyra Agent · narrative · 2026-04-27
Daily spend · €last 7d · €38.4k total
Apr 202122232425Apr 26
LYRA REPORTING 02 · 08

Spend & pacing · on plan .

Section 03 · 7d · vs prior 7d
Spend €38.4k ▲ +4.0% WoW
Conversions 1,142 ▲ +5.7% WoW
ROAS 3.6× — flat WoW
Pacing · MTD 94% ▼ -2pp vs plan
LYRA REPORTING 03 · 08
Sent to · 4 recipients
EMe.morgan@basalt.comJRj.reiss@basalt.comPDperf-director@agency.co+1basalt-perf@list.agency.co
DKIM ok · all delivered
What's in the pipeline · how the workflow works

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.

01 · Sourcesread-only

What feeds the pipeline.

Connected Google Ads accounts, OAuth-linked. The reporting query is read-only; the workflow never edits the account.

Scope Account · windowed
Window Last 7d / 28d / period
Source Direct API
02 · Templates3 wired

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.

Templated Layout · charts · KPIs
Generated 6 narrative sections
Editable Per-section, in place
03 · Lyra Agentnarrative slots

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.

Inputs Same as charts
Sections 6 per run
Fallback Template if AI down
04 · Approvalbefore send

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.

State flow Drafted → Approved → Sent
Per-section Edit · re-generate
Trigger Manual click
05 · Deliveryemail-only

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.

Channel Email · DKIM
Tracking Per-recipient
Roadmap Slack/webhook later
06 · Auditper-run

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.

Retention 12 months
Tables report_generations + report_deliveries
Export CSV per account
Case · multi-brand agency · 11 accounts · $120k/mo total spend
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.
PD Performance Director · multi-brand agency 11 client accounts · $120k/month total · anonymized
Analyst capacityReports drafted per analyst per week
Decks generated on scheduleLast 12 weeks · 11 accounts × weekly 132 / 132
Hours reclaimed MondaysAvg. across the analyst team · per week ~14h
Time to first scheduled draftFrom OAuth to first cron run <24h
Frequently asked

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.

14-day free trial · No credit card · Cancel in one click

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