You have marketing data scattered across Google Ads, Meta Ads, GA4, and half a dozen other platforms. You want a unified view — a dashboard your team can use to make decisions, not just export CSVs and copy-paste into pivot tables every Monday morning.
This guide shows you how to build that dashboard without a BI tool subscription, without a developer, and without SQL. The workflow is: get all your marketing data into Google Sheets in a clean, structured format, connect that sheet to Claude AI, and let Claude build the interactive dashboard for you.
By the end, you’ll have a working marketing dashboard generated by AI from your own live data — and you’ll understand exactly how to keep it updated week after week.
Why Claude + Google Sheets is the Marketer’s New Superpower
Google Sheets is where marketers already live. It’s flexible, shareable, and familiar. But it’s terrible at understanding data — VLOOKUP, QUERY, and nested IF formulas require expertise and break the moment someone renames a column.
Claude reads your data the way a senior analyst would. You describe what you want in plain English, Claude performs the aggregation, identifies trends, writes the narrative explanation, and generates the code for a fully interactive dashboard that runs in any browser. No formula knowledge required.
What makes this workflow uniquely powerful for marketers:
- Claude supports up to 200K token context windows — enough to process months of multi-channel marketing data in a single conversation.
- Claude Artifacts generates live, interactive HTML dashboards — rendered directly in the chat window and shareable with a single link.
- MCP (Model Context Protocol) allows Claude to read your live Sheets data without any manual export step.
- The entire dashboard is generated by AI — you write prompts, not code.
Step Zero: Get Your Marketing Data into Google Sheets — Structured and Ready for AI
Before Claude can analyze anything, your data needs to actually be in Google Sheets — and it needs to be structured correctly. This is the step most tutorials skip, and it’s the reason most AI-generated dashboards produce mediocre results.
Manually copying data from Meta Ads, Google Ads, and GA4 into a spreadsheet is error-prone and unsustainable. You need a pipeline that pulls that data automatically, keeps it up to date, and structures it in a way that makes Claude’s job easy.
Porter Metrics: Your Marketing Data Pipeline to Google Sheets
With Porter Metrics, you can connect 20+ marketing data sources — Meta Ads, Google Ads, GA4, Google Search Console, Instagram, TikTok Ads, LinkedIn Ads, Pinterest, Snapchat, and more — and send that data directly into a Google Sheets spreadsheet, automatically, on a schedule you define. No code, no APIs, no engineering ticket.
Step-by-Step: Send Marketing Data to Google Sheets with Porter Metrics
Porter Metrics Setup — Google Sheets Destination
-
1
Log in to Porter Metrics at app.portermetrics.com. If you don’t have an account, you can start for free.
-
2
Click Create and select Google Sheets as the destination. Porter Metrics lets you send data to multiple destinations — choose Google Sheets for this workflow.
-
3
Select your marketing data sources. Porter Metrics connects to 20+ platforms including Meta Ads, Instagram, Google Ads, Google Search Console, GA4, TikTok Ads, LinkedIn Ads, Pinterest Ads, Snapchat Ads, YouTube Ads, Bing Ads, and more. You can connect multiple sources in the same table.
-
4
Select the accounts from each data source. Connect the ad accounts, properties, or profiles you want to pull data from. Each source can have multiple accounts.
-
5
Connect your Google account and select the Spreadsheet and Worksheet. Authorize Porter Metrics to access Google Sheets, then pick the spreadsheet and the specific tab (worksheet) where the data will land. You can create a new sheet or write to an existing one.
-
6
Select the metrics and dimensions. Choose exactly which columns go into your sheet — campaign name, impressions, clicks, spend, ROAS, conversions, date, and any other metrics relevant to your analysis. Porter Metrics normalizes field names across platforms so everything aligns in a single table.
-
7
Set the date range. Define how much historical data to include — last 30 days, last 90 days, or a custom range. This becomes the initial dataset Claude will analyze.
-
8
Optionally apply filters and sorting. Filter by campaign status, ad set, objective, or any other dimension. Sort the data by date or by a metric. This step keeps your sheet clean and focused.
-
9
Set the update frequency. Choose how often Porter Metrics refreshes the data in your sheet — daily, hourly, or on demand. Daily updates are sufficient for most marketing dashboards.
-
10
Choose the Write Mode: Overwrite or Insert Rows. Overwrite replaces the sheet content on each refresh (best for rolling windows like “last 30 days”). Insert Rows appends new data without touching existing rows (best for building a historical log).
-
11
Save and send. Click Save and trigger the first data sync. Within minutes, your marketing data lands in Google Sheets — structured, normalized, and ready for Claude to analyze.
Prefer BigQuery? Porter Metrics Connects There Too
If your marketing data volume is large — think months of granular campaign data across 10+ platforms — Google Sheets may not be the right destination. Porter Metrics can also send your marketing data directly to Google BigQuery, giving you a scalable data warehouse that Claude can query via MCP. For teams already using BigQuery, this is the enterprise-grade path: same no-code connector setup, same 20+ marketing sources, just a different (and more powerful) destination.
Blending Multiple Marketing Sources: Where the Real Insights Live
Single-platform data tells a partial story. Your Google Ads dashboard shows clicks. Your Meta Ads dashboard shows reach. GA4 shows sessions. But none of them show you the full picture: what combination of channels actually drove revenue this quarter?
Porter Metrics lets you blend data from multiple marketing platforms into a single unified table in Google Sheets. When you pass that blended sheet to Claude, you unlock a completely different level of analysis — cross-channel attribution, spend efficiency comparisons, and full-funnel visibility that no single platform can provide on its own.
Marketing data combinations that unlock the best Claude insights:
Full-Funnel Attribution
Combine Meta ad spend and impressions with GA4 post-click sessions and conversions. Ask Claude: “Which Meta campaigns drove the most revenue relative to spend, based on GA4 conversion data?”
Cross-Channel ROAS Comparison
Normalize spend, revenue, and ROAS across all paid channels in one table. Ask Claude: “Which channel delivered the best ROAS last month? Where should we shift budget?”
SEO + Organic Performance
Merge GSC impressions, clicks, and CTR with GA4 session quality and conversion data. Ask Claude: “Which organic landing pages have high impressions but low CTR? Where is the biggest SEO opportunity?”
B2B Lead Generation by Platform
Compare CPL, lead volume, and lead quality across paid channels. Ask Claude: “Which platform generates the most qualified leads at the lowest cost? Show trend over the last 90 days.”
E-Commerce Revenue Attribution
Map paid media spend to actual e-commerce revenue by channel. Ask Claude: “Build a revenue attribution dashboard showing which channels drive the highest revenue and lowest CAC.”
Social Media Performance Overview
Compare reach, engagement rate, CPM, and CTR across all social platforms. Ask Claude: “Which social channel has the best CPM and engagement for our target audience this quarter?”
The 4 Methods to Connect Google Sheets to Claude
Once your marketing data is in Google Sheets (via Porter Metrics or manually), you have four ways to connect that sheet to Claude. The best choice depends on your technical level and what you want to achieve.
| Method | Technical Level | Cost | Live Sheets Data | Can Build Dashboard | Status |
|---|---|---|---|---|---|
| Official Add-on =CLAUDE() formula |
Beginner | Free + API usage | ✓ In-cell | Partial (text only) | Buggy — needs fix |
| MCP + Claude Desktop No-code after setup |
Intermediate | Free + API usage | ✓ Read & Write | Yes — full dashboard | Recommended |
| Claude Code + Composio Terminal workflow |
Advanced | Free + API usage | ✓ Read & Write | Yes — full dashboard | Working |
| n8n / Albato Automation workflow |
Beginner-Mid | Freemium | ✓ Trigger-based | No | Working |
For the full dashboard generation workflow covered in this article, we recommend Method 2 (MCP + Claude Desktop). It’s the most capable, free, and doesn’t require programming skills beyond a one-time 30-minute setup.
Method 1: The Official Claude for Sheets Add-on
The simplest way to bring Claude into your spreadsheet is the official Claude for Sheets add-on, built by Anthropic and available in the Google Workspace Marketplace. It lets you call Claude directly from a cell using a formula — useful for cell-level tasks like summarizing ad copy, classifying campaigns, or generating variations.
How to Set It Up
- Go to Google Workspace Marketplace and search for Claude for Sheets.
- Click Install and accept the required permissions.
- In your spreadsheet, go to Extensions → Add-ons → Manage add-ons.
- Click the menu next to Claude for Sheets and check “Use in this document”.
- Reload the sheet. After 5–10 seconds, the Claude for Sheets sidebar will appear.
- Enter your Anthropic API key (get one at console.anthropic.com).
Basic Usage for Marketers
Once set up, use the =CLAUDE() formula to run AI analysis on any cell in your marketing data:
=CLAUDE("Classify this campaign objective as Awareness, Consideration, or Conversion: " & A2)
=CLAUDE("Suggest 3 improved ad headlines based on this current headline: " & B2)
=CLAUDE("What does this ROAS of " & C2 & " suggest about campaign profitability? Answer in one sentence.")
Fixing the Error 404: Model Deprecated Bug
Error 404: claude-3-haiku-20240307 because the underlying model has been deprecated. Here is the workaround.
- In your spreadsheet, go to Extensions → Apps Script.
- Delete any existing code and paste the following:
function CLAUDE_CUSTOM(prompt) {
const API_KEY = "YOUR_ANTHROPIC_API_KEY";
const url = "https://api.anthropic.com/v1/messages";
const payload = {
model: "claude-sonnet-4-6",
max_tokens: 1024,
messages: [{ role: "user", content: prompt }]
};
const options = {
method: "post",
contentType: "application/json",
headers: {
"x-api-key": API_KEY,
"anthropic-version": "2023-06-01"
},
payload: JSON.stringify(payload)
};
const response = UrlFetchApp.fetch(url, options);
const json = JSON.parse(response.getContentText());
return json.content[0].text;
}
- Click Save, then close the Apps Script editor.
- Back in your sheet, use
=CLAUDE_CUSTOM("Your prompt here")instead of=CLAUDE().
Method 2: Claude Desktop via MCP — The Most Powerful Setup
MCP stands for Model Context Protocol — Anthropic’s open standard for connecting AI assistants to external tools and data sources. With MCP configured, Claude Desktop can read your Google Sheets directly, analyze your live marketing data, and generate a complete interactive dashboard — all in a single conversation.
This is the method we recommend for building the full dashboard workflow described in this guide.
What You’ll Need
- Claude Desktop — latest version for macOS or Windows
- A Google account (personal Gmail or Google Workspace)
- A Google Cloud project (free to create at console.cloud.google.com)
uvpackage manager installed on your machine
Step-by-Step Setup
MCP Setup Steps
-
1
Enable Google Sheets API — Go to console.cloud.google.com, create a project, search “Google Sheets API” and click Enable. Also enable the Google Drive API.
-
2
Create OAuth Credentials — Go to APIs & Services → Credentials → Create Credentials → OAuth client ID. Choose Desktop app. Download the
credentials.jsonfile. -
3
Install uv package manager:
# macOS / Linux curl -LsSf https://astral.sh/uv/install.sh | sh # Windows (PowerShell) powershell -c "irm https://astral.sh/uv/install.ps1 | iex" -
4
Configure Claude Desktop — Open
~/Library/Application Support/Claude/claude_desktop_config.json(macOS) and add themcpServersblock below. -
5
Authenticate and Test — Restart Claude Desktop. Type “List my Google Sheets” — Claude will open a browser for OAuth login on the first run.
{
"mcpServers": {
"google-sheets": {
"command": "uvx",
"args": [
"mcp-google-sheets@latest",
"--credentials-file",
"/full/path/to/your/credentials.json"
]
}
}
}
credentials.json, not a relative path. This is the most frequent reason the setup fails.
7 Common Errors and Fixes
| Error | Cause | Fix |
|---|---|---|
uvx: command not found |
uv not installed or not in PATH | Run the uv install script and restart your terminal |
| MCP server not listed in Claude | Config file syntax error or wrong path | Validate JSON at jsonlint.com; use absolute path for credentials |
| 403 Permission Denied | Sheets or Drive API not enabled | Enable both APIs in Google Cloud Console |
| OAuth redirect mismatch | Wrong OAuth app type selected | Recreate credentials as “Desktop app” type |
| Authentication loop | Token file corrupted | Delete ~/.config/google-sheets-mcp/token.json and reauth |
| Claude can’t find a specific sheet | Sheet not shared with authorized account | Ensure the sheet is accessible from the Google account you authorized |
protocolVersion mismatch |
MCP client/server version mismatch | Update both Claude Desktop and the MCP server to latest versions |
Method 3: Claude Code + Composio (Developer Route)
For marketers with a technical background or a developer on the team, Claude Code paired with Composio as the MCP middleware offers the most flexible and scriptable setup. It supports full CRUD operations, multi-sheet workflows, and automated report generation that runs on a schedule without any manual intervention.
# Step 1: Install Claude Code
curl -fsSL https://claude.ai/install.sh | bash
# Step 2: Add the Google Sheets MCP via Composio
claude mcp add --transport http googlesheets-composio \
"YOUR_COMPOSIO_MCP_URL" \
--headers "X-API-Key:YOUR_COMPOSIO_API_KEY"
# Step 3: Restart Claude Code
exit
claude
# Step 4: Verify the server is registered
claude mcp list
After authentication, you can interact with your marketing spreadsheets in natural language:
- “Read the Porter Metrics export in the ‘Paid Media’ tab and calculate ROAS by channel for the last 30 days.”
- “Create a new sheet called ‘Weekly Summary’ and populate it with aggregated totals from the raw data tab.”
- “Compare this week’s spend vs. last week’s spend across all campaigns and flag anything that increased by more than 20%.”
Method 4: Automation with n8n or Albato
If your goal is to automate recurring marketing tasks — like sending a weekly AI summary of your Sheets data to Slack, or having Claude analyze new rows as they’re added by Porter Metrics — automation platforms like n8n or Albato are the right tool.
The workflow logic follows a simple pattern: New data added to Google Sheets by Porter Metrics → Claude AI analysis → Summary sent to Slack / Email.
Both n8n and Albato offer free tiers and pre-built templates for the Sheets + Claude integration. This method is best for automated reporting pipelines, not for building interactive dashboards from scratch.
The Full Pipeline: Porter Metrics + Google Sheets + Claude Dashboard
Now that your marketing data is in Google Sheets via Porter Metrics and Claude is connected via MCP, here is the complete dashboard generation workflow. This is the part that turns raw marketing data into a shareable, interactive visual report — without writing a single line of code.
4-Step Marketing Dashboard Generation
-
1
Tell Claude About Your Marketing Data — Start a new conversation in Claude Desktop. Give Claude context about what’s in your sheet: “Read the spreadsheet called ‘Porter Metrics Export’. The sheet called ‘Paid Media’ has these columns: Date, Platform, Campaign Name, Impressions, Clicks, Spend, Conversions, Revenue. Tell me the key trends — total spend by platform, top campaigns by ROAS, and any anomalies you notice.”
-
2
Describe the Marketing Dashboard You Want — Once Claude confirms it has read the data, ask it to build the dashboard: “Using the data you just read, build me a complete interactive HTML marketing dashboard. Include: 4 KPI cards (Total Spend, Total Revenue, Overall ROAS, Total Conversions), a line chart of weekly spend by platform, a horizontal bar chart of ROAS ranked highest to lowest, a table of top 10 campaigns by revenue, and a filter to switch between platforms. Dark header, clean design. Output as a single self-contained HTML file.”
-
3
Claude Generates the Dashboard — Claude produces a complete, interactive HTML file (typically 200–500 lines) with all charts rendered live inside the conversation Artifact panel. Review it and ask for iterations in plain English: “Change the bar chart to show spend instead of ROAS.” / “Add a date range filter.” / “Make the KPI cards bigger.”
-
4
Publish and Share — Click the Publish button on the Artifact panel. Claude generates a public URL with your interactive dashboard — no login required for viewers. Share in Slack, embed in Notion, or open in a client meeting instead of a static slide deck. When Porter Metrics refreshes your Google Sheet with new data, re-run the conversation to regenerate the dashboard with updated numbers.
Marketing Prompt Library — Copy and Paste into Claude
Use these prompts as starting points after Claude has read your Google Sheets data. Each one is tailored for a specific marketing use case. Paste them directly into Claude Desktop once your MCP connection is active.
Paid Advertising Performance Dashboard
Best used with a sheet containing data from Meta Ads, Google Ads, or TikTok Ads exported via Porter Metrics.
Build an interactive HTML paid media dashboard from this data. Include: 4 KPI cards (Total Spend, Total Revenue, Overall ROAS, Total Conversions), a line chart of daily spend by platform over the selected period, a horizontal bar chart ranking campaigns by ROAS (highest to lowest), a scatter plot of Spend vs. Conversions by campaign, and a sortable data table with all campaigns. Flag any campaign where ROAS is below 1.5 in red. Add a platform filter at the top.
Cross-Channel Attribution Dashboard
Best used with a blended sheet combining Meta Ads, Google Ads, and GA4 data via Porter Metrics.
Create a cross-channel attribution dashboard HTML page from this blended data. Show: a stacked bar chart of revenue by channel over time, a comparison table of Spend / Revenue / ROAS / CAC for each platform, a line chart showing conversion trends by channel, and a budget allocation recommendation based on current ROAS. Highlight the channel with the best ROAS. Include a period selector (last 7 / 30 / 90 days).
SEO & Organic Traffic Dashboard
Best used with a sheet combining Google Search Console and GA4 data via Porter Metrics.
Build an SEO performance dashboard from this data. Include: KPI cards for Total Impressions, Total Clicks, Average CTR, and Average Position. Show a line chart of impressions and clicks over time, a table of top 20 queries sorted by impressions with CTR and position, a chart comparing pages by click volume, and a highlight section showing queries with high impressions but CTR below 3% (biggest optimization opportunities). Clean, minimal design.
Social Media Performance Dashboard
Best used with a blended sheet combining Meta Ads, Instagram Ads, TikTok Ads, and Pinterest Ads data.
Generate a social media performance dashboard HTML file from this data. Show: CPM by platform (bar chart, lowest to highest), CTR comparison across platforms (horizontal bars), weekly reach trend by platform (line chart), engagement rate and cost-per-engagement table, and a top creatives section with the 5 highest-performing ad names by CTR. Use platform brand colors where possible. Add a date filter.
Campaign ROI & Budget Pacing Dashboard
Best used with a sheet containing campaign-level spend, budget, and revenue data from any platform.
Build a campaign ROI and budget pacing dashboard. Include: a KPI summary row showing total budget used vs. remaining, total revenue, and blended ROAS. A bar chart showing budget pacing by campaign (% spent vs. % of period elapsed). A table of all campaigns with Budget, Spent, Remaining, Revenue, ROAS, and a "Pacing" status (Ahead / On Track / Behind). Flag campaigns that are overpacing or underpacing by more than 15% in orange. Add a "Recommended action" column where Claude suggests pausing, scaling, or adjusting each campaign.
Tips for Better Marketing Dashboards
- Let Porter Metrics handle data structure: The single biggest factor in dashboard quality is how clean and structured your input data is. Porter Metrics normalizes field names, date formats, and numeric values across platforms automatically — so you start with data Claude can actually work with, not a spreadsheet you have to clean first.
- Always include a “Platform” or “Source” column: When blending data from multiple sources, make sure your sheet has a column identifying which platform each row came from. This lets Claude group, filter, and compare channels cleanly in any chart or table it generates.
- Anchor the dashboard to a specific decision: Before writing your prompt, decide what decision this dashboard should support. Add that context explicitly: “This dashboard will be reviewed by our CMO on Monday to decide where to reallocate budget for Q2.” Claude will prioritize the most relevant metrics for that audience.
- Iterate, don’t start over: Claude maintains context across the conversation. After the first dashboard is generated, ask for specific changes: “Change the bar chart to horizontal.” / “Add a 7-day rolling average line to the trend chart.” / “Include a benchmark line for our target ROAS of 3.0.” Each iteration takes seconds, not hours.
Frequently Asked Questions
Is my marketing data safe when I connect Google Sheets to Claude?
With the MCP method, your data travels from Google’s servers to Claude’s API over an encrypted connection. Anthropic’s standard privacy policy applies — data sent via the API is not used to train models by default. Avoid including PII (customer names, emails, phone numbers) in the sheets you pass to Claude.
How does Porter Metrics keep the dashboard data up to date?
When you set up a Porter Metrics table with a daily refresh schedule, the data in your Google Sheet is automatically updated every day. The next time you run the Claude MCP workflow, it reads the freshest version of the sheet. You can also trigger a manual refresh in Porter Metrics at any time before running the analysis.
What’s the difference between Claude Artifacts and the MCP method for dashboards?
Claude Artifacts can generate dashboards from data you paste or upload manually (like a CSV export). MCP lets Claude access your live, automatically-updated Google Sheets data without any manual export step. For production marketing dashboards that stay current, MCP combined with a Porter Metrics data pipeline is the right architecture.
How much marketing data can Claude process at once?
Claude supports context windows of up to 200,000 tokens. For most marketing use cases — 90 days of campaign data across 5–10 channels — Claude handles the full dataset in a single conversation. For very large exports, use Porter Metrics filters to limit the date range or select only the metrics you need before passing the sheet to Claude.
Can I use this workflow to automatically send marketing reports to my team?
Yes. Using Method 4 (n8n or Albato), you can automate the full loop: Porter Metrics refreshes the Google Sheet daily, n8n detects the update, triggers a Claude analysis via API, and sends the summary or dashboard link to a Slack channel or email. This requires some automation setup but produces a fully hands-off weekly marketing report.
Can Porter Metrics send data directly to BigQuery instead of Google Sheets?
Yes. Porter Metrics supports Google BigQuery as a destination in addition to Google Sheets. For teams that need to analyze large volumes of historical marketing data — multiple months, multiple platforms, granular daily data — BigQuery is the better destination. Claude can then connect to BigQuery via MCP and run the same natural language dashboard workflow on a much larger dataset.
Start Building Your Marketing Dashboard
The combination of Porter Metrics, Google Sheets, and Claude eliminates the three biggest bottlenecks in marketing reporting: getting data out of platforms, structuring it for analysis, and turning it into something visual and shareable.
The workflow is clear: use Porter Metrics to pull your marketing data from 20+ sources into a clean, structured Google Sheet on autopilot. Connect that sheet to Claude via MCP. Describe the dashboard you need in plain English. In minutes, you have an interactive, shareable marketing report built by AI from your live data.
Start with a single channel — Meta Ads or Google Ads — run it through Porter Metrics into Sheets, and build your first Claude dashboard. Once you see how fast the iteration loop is, you’ll never go back to building charts manually.