Weekly marketing report
Business task
The CMO needs a weekly report for the marketing team meeting and for leadership. The report should include: a summary across all ad channels (spend, leads, CPL), creative performance, sales funnel conversion, manager performance, plus key insights and recommendations for the following week. The report needs to be ready by 9:00 AM Monday.
Report architecture
This recipe is composite — it aggregates data from the following recipes:
- Meta Ads and Google Ads conversion report — ROAS and conversions for the two main channels
- Meta Ads creative performance — the best and worst creatives for the week
- Pipedrive funnel conversion — sales funnel bottlenecks
- Bitrix24 sales rep performance report — manager KPIs
- Multi-channel ROAS → Kommo — ROAS across all channels
If any of these recipes haven't been set up yet, run them individually following the instructions in the corresponding files.
Connections (via compose reports)
All connections are configured in the underlying recipes. A complete weekly report requires:
| Connector | Used in which recipes |
|---|---|
meta-ads | conversion-report, creative-performance, multi-source-roas |
google-ads | conversion-report, multi-source-roas |
tiktok-ads | multi-source-roas |
kommo | multi-source-roas |
pipedrive | funnel-conversion |
bitrix24 | sales-by-manager |
If your stack is different (for example, you use HubSpot instead of Pipedrive), replace the corresponding source recipe with the equivalent — for example, Deal loss reasons in HubSpot.
Report settings
- Name:
Weekly marketing report - Report type: composite
- Source reports:
conversion-report,creative-performance,funnel-conversion,sales-by-manager,multi-source-roas - Date range:
last_weekfor operational metrics - Comparison period:
previous_period— the prior week for week-over-week comparison - Grouping: by source report, channel, and day of week
- Timezone:
Europe/Moscow
Parameters
{
"type": "composite",
"source_reports": [
"conversion-report",
"creative-performance",
"funnel-conversion",
"sales-by-manager",
"multi-source-roas"
],
"date_range": "last_week",
"compare": "previous_period",
"group_by": ["source_report", "channel", "day_of_week"],
"timezone": "Europe/Moscow"
}Week-over-week comparison (compare: "previous_period") is a key feature of the weekly report. Every table shows not just the value for this week, but also the prior week, with both an absolute and percentage change. Green up arrows mean growth, red down arrows mean decline.
Report metrics
A summary of key metrics by block:
Block 1: Channel performance
| Metric | Type | Description |
|---|---|---|
spend_by_channel | currency | Spend by channel |
leads_by_channel | number | Leads by channel |
cpl_by_channel | currency | CPL by channel |
roas_by_channel | percent | ROAS by channel |
revenue_by_channel | currency | Revenue by channel |
Block 2: Creatives
| Metric | Type | Description |
|---|---|---|
top_ctr_creatives | list | Top 5 creatives by CTR |
top_roas_creatives | list | Top 5 creatives by ROAS |
worst_ctr_creatives | list | Bottom 5 creatives by CTR |
Block 3: Sales funnel
| Metric | Type | Description |
|---|---|---|
funnel_stages | list | Stage-by-stage funnel conversion |
bottleneck_stage | string | Stage with the worst conversion |
avg_cycle_days | number | Average deal cycle length, in days |
Block 4: Managers
| Metric | Type | Description |
|---|---|---|
top_manager | string | Top manager by revenue |
top_win_rate | percent | Best Win Rate |
avg_check_by_manager | currency | Average order value by manager |
Calculated metrics:
{
"calculated_metrics": [
{
"name": "wow_spend_change",
"formula": "ROUND(([spend] - [spend_prev]) / ABS([spend_prev]) * 100, 1)",
"type": "percent",
"description": "Week-over-week spend change"
},
{
"name": "wow_leads_change",
"formula": "ROUND(([leads] - [leads_prev]) / ABS([leads_prev]) * 100, 1)",
"type": "percent",
"description": "Week-over-week lead change"
},
{
"name": "wow_roas_change",
"formula": "ROUND(([roas] - [roas_prev]) / ABS([roas_prev]) * 100, 1)",
"type": "percent",
"description": "Week-over-week ROAS change"
}
]
}Filters
No filters are applied at the composite report level — each source report uses its own filters.
Write mode
Mode: Replace
A composite report doesn't store its own data and is always rebuilt on each run.
Schedule
{
"schedule": {
"enabled": true,
"interval": "weekly",
"time": "09:00",
"timezone": "Europe/Moscow",
"days_of_week": [1],
"retry_on_failure": true,
"max_retries": 3
}
}Running on Mondays at 9:00 AM means the report is ready by the start of the team meeting. Make sure all source reports are scheduled earlier (no later than 8:30 AM), otherwise the weekly report will be assembled from stale data.
Recommendation: set up a dependency chain in LightLead: source reports run first, and the composite report runs only after they complete successfully. This guarantees data freshness.
Expected result
After a successful run:
- Status:
completed - Format: a structured report with 4 blocks, ready to present at the team meeting
- Contents:
- Block 1: a channel table with WoW changes — immediately shows which channel is underperforming
- Block 2: top 5 and bottom 5 creatives — recommendations for replacing underperforming creatives
- Block 3: the funnel with the bottleneck highlighted — focuses the team on the problem stage
- Block 4: top manager and bottom manager — the basis for KPIs and motivation
- Export: automatic delivery to Google Slides or PDF for distribution to the team
- WoW trends: red and green change indicators for a quick read on momentum
Screenshot
[Screenshot]
[Screenshot]