learn

/

methodology

Automate your weekly marketing report with Claude or ChatGPT

Build a live marketing dashboard with Claude artifacts or ChatGPT Sites, then schedule a weekly report that says what changed and what to check next.
Build a live marketing dashboard with Claude artifacts or ChatGPT Sites, then schedule a weekly report that says what changed and what to check next.

By Gabriele Franco, co-founder of Cassandra

Automate Marketing Reports with AI: Claude and ChatGPT

Get one practical idea every week to grow with the same team

To automate your marketing reports, connect your ad accounts and GA4 to Claude or ChatGPT, ask for a live dashboard (a Claude artifact or a ChatGPT Site), then schedule a weekly task that writes the report. Lock the connector to read-only before you schedule it, because nobody is there to approve changes.

What you'll find in this guide

This guide is part of a five-part series on AI for marketers: Meta Ads, Google Ads, GA4, messaging with Claude Code and automated weekly reports.

Rather skip the setup? Cassandra connects your ad accounts, analytics and sales in one place and tells you what to do next. Start for free.

Most weekly marketing reports are a ritual, not a decision tool. Someone opens Ads Manager, Google Ads and GA4, pastes numbers into a sheet, colors a few cells red, writes "CPA up, investigating" and sends it. Everybody reads it. Nobody changes anything.

A report should work like a smoke alarm, not a diary. Its only job is to tell you where to look this week. The copying and pasting is the part a machine should do, and in 2026 Claude and ChatGPT can do it for you: a live dashboard you open whenever you want, and a written report that lands every Monday without anyone touching a spreadsheet. Setup takes about 20 minutes once your data is connected.

What do you need to connect first?

The AI can only report on what it can read. Connect at least one source first, about 10 minutes each:

Which Claude or ChatGPT plan do you need?


Claude

ChatGPT

Live dashboard

An artifact that reads your connectors: Pro, Max, Team or Enterprise

ChatGPT Sites: Plus, Pro, or supported Business and Enterprise workspaces

Weekly report

Scheduled tasks: Pro, Max, Team or Enterprise

Agent mode with a repeat: Plus, Pro, Business or Enterprise

If you built reports in ChatGPT's Canvas before: it's gone from the current models. Sites replaces it.

A dashboard you open, a report that arrives

How do you build a live marketing dashboard with Claude or ChatGPT?

Step 1: Turn on code execution (Claude only)

In Claude, go to Settings > Capabilities and switch on Cloud code execution and file creation. On Team and Enterprise, an admin turns it on under Organization settings > Capabilities.

Step 2: Ask for the dashboard

In Claude, start a new chat, switch your connector on (+ > Connectors > Windsor.ai) and paste the prompt below. In ChatGPT, open Work, type @Sites and paste the same prompt.

Build a dashboard of my marketing for the last 28 days, using live data from Windsor
(Meta Ads, Google Ads and GA4, whichever are connected).
Top row: total spend, purchases, cost per purchase, revenue, each with the change vs the previous 28 days.
Then: spend and purchases by channel per week (bar chart), a table of the 10 campaigns with the most spend
(spend, purchases, cost per purchase, change), and GA4 sessions by channel.
Label every number with its source (Meta, Google Ads or GA4) and the date range.
Add a note under the totals: platform purchases can overlap, so their sum can exceed real orders

Build a dashboard of my marketing for the last 28 days, using live data from Windsor
(Meta Ads, Google Ads and GA4, whichever are connected).
Top row: total spend, purchases, cost per purchase, revenue, each with the change vs the previous 28 days.
Then: spend and purchases by channel per week (bar chart), a table of the 10 campaigns with the most spend
(spend, purchases, cost per purchase, change), and GA4 sessions by channel.
Label every number with its source (Meta, Google Ads or GA4) and the date range.
Add a note under the totals: platform purchases can overlap, so their sum can exceed real orders

Notice the last line of the prompt. It's there on purpose, and we'll come back to it.

Step 3: Check two numbers before you trust any of them

Compare total Meta spend and total Google Ads spend with what each platform shows for the same dates.

Here's the rule: spend is the one number that must match to the cent, because it's money that actually left your bank account. If spend is off, every ratio built on it (cost per purchase, ROAS) is off too. Tell the AI which number is wrong and where you saw the right one, and rebuild.

Step 4: Share it

In Claude, open the dashboard, click Share and choose who can see it under Who has access. One catch: a dashboard that reads your connectors can't be opened by "Anyone with the link". Each viewer sees the data through their own connection, so share it with teammates who have Windsor connected too.

In ChatGPT, click Share, choose under Who has access, then Publish. Visitors also use their own connected apps.

How do you get a marketing report every Monday automatically?

Step 5: Lock it to read-only first

You wouldn't hand a new intern the company card on day one. Don't hand it to an agent that runs at 7am on a Monday while you're asleep.

A scheduled report runs when nobody is watching, so nobody is there to approve a change. Before you schedule it, block every tool that can change your accounts: in Claude go to Customize > Connectors > Windsor.ai > Tool permissions and set them to Blocked, and in Windsor switch Write actions off. The prompt below says "read only" too, but a sentence in a prompt is a reminder, not a lock. The Meta Ads and Google Ads guides list every lock.

Step 6: Create the schedule

In Claude, click Scheduled in the left sidebar, then New task, then Set up manually, and set it to run weekly on Monday morning. It runs in the cloud, so your laptop can be closed.

In ChatGPT, start agent mode from the tools menu (or type /agent), run the prompt once, then click the clock icon to repeat it weekly. You can manage repeats at chatgpt.com/schedules.

Fill in the three context lines once, then use this prompt:

Every Monday, write my weekly growth report. Read only: never change budgets, bids, ads or campaigns.

Context:
- Goal: <for example: €650,000 revenue from 1 October to 31 December, cost per order under €35>
- Source of truth for sales: <Shopify orders, or GA4 purchases>
- What we know about this week: <promotions

Every Monday, write my weekly growth report. Read only: never change budgets, bids, ads or campaigns.

Context:
- Goal: <for example: €650,000 revenue from 1 October to 31 December, cost per order under €35>
- Source of truth for sales: <Shopify orders, or GA4 purchases>
- What we know about this week: <promotions

Each section answers one question, in the order a head of growth asks them on a Monday: are we going to make it, what moved, why, and what do we do now. Point 3 is where most reports give up. They stop at "CPA went up", which is a symptom, not a cause. A rising cost per order can mean tired creatives, a competitor running 30% off, a holiday week, a broken checkout or a stock-out on the best seller, and each one needs a different fix. That's why the prompt makes the AI look outside the ad accounts too: the cause is often not in Ads Manager at all.

For point 3 to work, make sure web search is turned on in Claude or ChatGPT, so the AI can check holidays, competitors' offers and news. Search Console through Windsor adds real search demand for your brand and category.

Point 4 is the whole reason the report exists. If you cut anything, cut the tables, never the next steps.

Step 7: Run it once now

Don't wait for Monday to find out the prompt is wrong. Run it by hand, read it, and fix any section that comes back empty or vague.

How do you know the report is right?

Remember the last line of the dashboard prompt. Here's why it's there. Ask this in the same chat or task:

Which numbers in this report come from ad platforms and could count the same sale twice
Which numbers in this report come from ad platforms and could count the same sale twice

A good answer names the Meta and Google Ads purchases, says their sum can be higher than your real orders, and points to GA4 or your shop data to check.

This is the oldest trap in marketing reporting. A customer clicks a Meta ad on Monday and a Google ad on Thursday, then buys. Meta claims the sale. Google claims the sale. Add the two platforms up and you sold more than you actually did. Each platform grades its own homework, and every one of them gets an A.

If the AI tells you the totals are exact, it's wrong. Add "say what each number can't prove" to the prompt.

What are the most common mistakes with AI marketing reports?

Summing platform conversions. As above: the total looks great and is fiction. Compare against real orders.

Reporting without a goal. "CPA up 12%" means nothing until you know whether you're still on pace for the quarter. Start with progress to goal.

Stopping at the symptom. A report that ends with a table and no cause or next step is a diary. Keep points 3 and 4.

Leaving write access on. A scheduled task with write tools allowed is a budget change waiting to happen with nobody approving it.

Changing the date window every week. "Last 7 days" on a Tuesday and on a Monday are different weeks. Always ask for complete days, the same weekday to weekday.

Trusting the first version. The first run always has a gap: a missing channel, a wrong time zone, a metric named differently. Run it by hand twice before you let it run alone.

What if the dashboard or report shows wrong data?

What you see

Why

Fix

The dashboard shows made-up sample data

The connector was off when it was built

Switch it on and ask for a rebuild with live data

A colleague sees an empty dashboard

They haven't connected Windsor themselves

They add the connector (see the guides above)

The report is missing a channel

That source isn't connected, or the free plan only keeps one

Connect it, or only name the sources you have

Numbers don't match the platforms

Different dates, time zone or attribution window

Put the exact settings in the prompt

Lots of numbers, no next step

The prompt only asked for numbers

Keep point 4 of the prompt

Marketing decisions should not rely on one data source

A report tells you what moved inside each ad account. It can't tell you why, and it can't tell you what to do, because the answer usually lives outside the ad accounts: what customers are saying in reviews, which products are selling or out of stock, what your site analytics shows, how much the channels overlap, what your last test proved.

Even one line in the prompt helps. "We ran a 20% promotion from Thursday" or "the best seller was out of stock for four days" turns a list of numbers into a reason. The more of the brand's context the report can see, the closer it gets to a decision. More on this in what is a marketing brain.

That's what we built Cassandra for. It pulls your ad accounts, analytics, sales, products, reviews and incrementality tests into one brain, turns every report into next steps, and makes the changes in your ad accounts within the rules your team sets. You can start for free with your website and data.

Key takeaways

  • Automate the copy and paste, never the judgment. Claude or ChatGPT can build the dashboard and write the Monday report in about 20 minutes of setup.

  • Spend must match the platform to the cent. If it doesn't, nothing else in the report counts.

  • Never add up platform conversions. Every platform grades its own homework.

  • Lock the connector to read-only before anything runs on a schedule.

  • A good report answers four questions in order: are we on track for the goal, what changed, why, and what do we do now.

  • Look for the cause outside the ad accounts too. A higher cost per order is a symptom, not a diagnosis.

Next

Menus and plans checked on 22 October 2026. If a label has changed, look for the closest match.

To automate your marketing reports, connect your ad accounts and GA4 to Claude or ChatGPT, ask for a live dashboard (a Claude artifact or a ChatGPT Site), then schedule a weekly task that writes the report. Lock the connector to read-only before you schedule it, because nobody is there to approve changes.

What you'll find in this guide

This guide is part of a five-part series on AI for marketers: Meta Ads, Google Ads, GA4, messaging with Claude Code and automated weekly reports.

Rather skip the setup? Cassandra connects your ad accounts, analytics and sales in one place and tells you what to do next. Start for free.

Most weekly marketing reports are a ritual, not a decision tool. Someone opens Ads Manager, Google Ads and GA4, pastes numbers into a sheet, colors a few cells red, writes "CPA up, investigating" and sends it. Everybody reads it. Nobody changes anything.

A report should work like a smoke alarm, not a diary. Its only job is to tell you where to look this week. The copying and pasting is the part a machine should do, and in 2026 Claude and ChatGPT can do it for you: a live dashboard you open whenever you want, and a written report that lands every Monday without anyone touching a spreadsheet. Setup takes about 20 minutes once your data is connected.

What do you need to connect first?

The AI can only report on what it can read. Connect at least one source first, about 10 minutes each:

Which Claude or ChatGPT plan do you need?


Claude

ChatGPT

Live dashboard

An artifact that reads your connectors: Pro, Max, Team or Enterprise

ChatGPT Sites: Plus, Pro, or supported Business and Enterprise workspaces

Weekly report

Scheduled tasks: Pro, Max, Team or Enterprise

Agent mode with a repeat: Plus, Pro, Business or Enterprise

If you built reports in ChatGPT's Canvas before: it's gone from the current models. Sites replaces it.

A dashboard you open, a report that arrives

How do you build a live marketing dashboard with Claude or ChatGPT?

Step 1: Turn on code execution (Claude only)

In Claude, go to Settings > Capabilities and switch on Cloud code execution and file creation. On Team and Enterprise, an admin turns it on under Organization settings > Capabilities.

Step 2: Ask for the dashboard

In Claude, start a new chat, switch your connector on (+ > Connectors > Windsor.ai) and paste the prompt below. In ChatGPT, open Work, type @Sites and paste the same prompt.

Build a dashboard of my marketing for the last 28 days, using live data from Windsor
(Meta Ads, Google Ads and GA4, whichever are connected).
Top row: total spend, purchases, cost per purchase, revenue, each with the change vs the previous 28 days.
Then: spend and purchases by channel per week (bar chart), a table of the 10 campaigns with the most spend
(spend, purchases, cost per purchase, change), and GA4 sessions by channel.
Label every number with its source (Meta, Google Ads or GA4) and the date range.
Add a note under the totals: platform purchases can overlap, so their sum can exceed real orders

Notice the last line of the prompt. It's there on purpose, and we'll come back to it.

Step 3: Check two numbers before you trust any of them

Compare total Meta spend and total Google Ads spend with what each platform shows for the same dates.

Here's the rule: spend is the one number that must match to the cent, because it's money that actually left your bank account. If spend is off, every ratio built on it (cost per purchase, ROAS) is off too. Tell the AI which number is wrong and where you saw the right one, and rebuild.

Step 4: Share it

In Claude, open the dashboard, click Share and choose who can see it under Who has access. One catch: a dashboard that reads your connectors can't be opened by "Anyone with the link". Each viewer sees the data through their own connection, so share it with teammates who have Windsor connected too.

In ChatGPT, click Share, choose under Who has access, then Publish. Visitors also use their own connected apps.

How do you get a marketing report every Monday automatically?

Step 5: Lock it to read-only first

You wouldn't hand a new intern the company card on day one. Don't hand it to an agent that runs at 7am on a Monday while you're asleep.

A scheduled report runs when nobody is watching, so nobody is there to approve a change. Before you schedule it, block every tool that can change your accounts: in Claude go to Customize > Connectors > Windsor.ai > Tool permissions and set them to Blocked, and in Windsor switch Write actions off. The prompt below says "read only" too, but a sentence in a prompt is a reminder, not a lock. The Meta Ads and Google Ads guides list every lock.

Step 6: Create the schedule

In Claude, click Scheduled in the left sidebar, then New task, then Set up manually, and set it to run weekly on Monday morning. It runs in the cloud, so your laptop can be closed.

In ChatGPT, start agent mode from the tools menu (or type /agent), run the prompt once, then click the clock icon to repeat it weekly. You can manage repeats at chatgpt.com/schedules.

Fill in the three context lines once, then use this prompt:

Every Monday, write my weekly growth report. Read only: never change budgets, bids, ads or campaigns.

Context:
- Goal: <for example: €650,000 revenue from 1 October to 31 December, cost per order under €35>
- Source of truth for sales: <Shopify orders, or GA4 purchases>
- What we know about this week: <promotions

Each section answers one question, in the order a head of growth asks them on a Monday: are we going to make it, what moved, why, and what do we do now. Point 3 is where most reports give up. They stop at "CPA went up", which is a symptom, not a cause. A rising cost per order can mean tired creatives, a competitor running 30% off, a holiday week, a broken checkout or a stock-out on the best seller, and each one needs a different fix. That's why the prompt makes the AI look outside the ad accounts too: the cause is often not in Ads Manager at all.

For point 3 to work, make sure web search is turned on in Claude or ChatGPT, so the AI can check holidays, competitors' offers and news. Search Console through Windsor adds real search demand for your brand and category.

Point 4 is the whole reason the report exists. If you cut anything, cut the tables, never the next steps.

Step 7: Run it once now

Don't wait for Monday to find out the prompt is wrong. Run it by hand, read it, and fix any section that comes back empty or vague.

How do you know the report is right?

Remember the last line of the dashboard prompt. Here's why it's there. Ask this in the same chat or task:

Which numbers in this report come from ad platforms and could count the same sale twice

A good answer names the Meta and Google Ads purchases, says their sum can be higher than your real orders, and points to GA4 or your shop data to check.

This is the oldest trap in marketing reporting. A customer clicks a Meta ad on Monday and a Google ad on Thursday, then buys. Meta claims the sale. Google claims the sale. Add the two platforms up and you sold more than you actually did. Each platform grades its own homework, and every one of them gets an A.

If the AI tells you the totals are exact, it's wrong. Add "say what each number can't prove" to the prompt.

What are the most common mistakes with AI marketing reports?

Summing platform conversions. As above: the total looks great and is fiction. Compare against real orders.

Reporting without a goal. "CPA up 12%" means nothing until you know whether you're still on pace for the quarter. Start with progress to goal.

Stopping at the symptom. A report that ends with a table and no cause or next step is a diary. Keep points 3 and 4.

Leaving write access on. A scheduled task with write tools allowed is a budget change waiting to happen with nobody approving it.

Changing the date window every week. "Last 7 days" on a Tuesday and on a Monday are different weeks. Always ask for complete days, the same weekday to weekday.

Trusting the first version. The first run always has a gap: a missing channel, a wrong time zone, a metric named differently. Run it by hand twice before you let it run alone.

What if the dashboard or report shows wrong data?

What you see

Why

Fix

The dashboard shows made-up sample data

The connector was off when it was built

Switch it on and ask for a rebuild with live data

A colleague sees an empty dashboard

They haven't connected Windsor themselves

They add the connector (see the guides above)

The report is missing a channel

That source isn't connected, or the free plan only keeps one

Connect it, or only name the sources you have

Numbers don't match the platforms

Different dates, time zone or attribution window

Put the exact settings in the prompt

Lots of numbers, no next step

The prompt only asked for numbers

Keep point 4 of the prompt

Marketing decisions should not rely on one data source

A report tells you what moved inside each ad account. It can't tell you why, and it can't tell you what to do, because the answer usually lives outside the ad accounts: what customers are saying in reviews, which products are selling or out of stock, what your site analytics shows, how much the channels overlap, what your last test proved.

Even one line in the prompt helps. "We ran a 20% promotion from Thursday" or "the best seller was out of stock for four days" turns a list of numbers into a reason. The more of the brand's context the report can see, the closer it gets to a decision. More on this in what is a marketing brain.

That's what we built Cassandra for. It pulls your ad accounts, analytics, sales, products, reviews and incrementality tests into one brain, turns every report into next steps, and makes the changes in your ad accounts within the rules your team sets. You can start for free with your website and data.

Key takeaways

  • Automate the copy and paste, never the judgment. Claude or ChatGPT can build the dashboard and write the Monday report in about 20 minutes of setup.

  • Spend must match the platform to the cent. If it doesn't, nothing else in the report counts.

  • Never add up platform conversions. Every platform grades its own homework.

  • Lock the connector to read-only before anything runs on a schedule.

  • A good report answers four questions in order: are we on track for the goal, what changed, why, and what do we do now.

  • Look for the cause outside the ad accounts too. A higher cost per order is a symptom, not a diagnosis.

Next

Menus and plans checked on 22 October 2026. If a label has changed, look for the closest match.

Your marketing brain.

Cassandra is the AI marketing brain for growth teams. It learns what drives growth with marketing mix modeling and incrementality tests, then does the work in your ad accounts, within your rules.

Copyright © 2026 – All Rights Reserved

Your marketing brain.

Cassandra is the AI marketing brain for growth teams. It learns what drives growth with marketing mix modeling and incrementality tests, then does the work in your ad accounts, within your rules.

Copyright © 2026 – All Rights Reserved