ClaudeWorkInbox & emailAI score · 83/100AI-assisted edit · no obvious prompt-injection riskn8n.io

Auto-generate a weekly business health report with n8n and Claude

Google Sheets data → n8n scheduled fetch → Claude analysis → Gmail delivery → Sheets logging

Some experienceStepsWorkflowPromptTip
Who
Small-business owners or operators who need a weekly digest of business metrics, trends, and action items emailed automatically
You get
Every Monday at 7AM, receive a plain-text email comparing this week vs last week, with trends, concerns, and top 3 actions
You need
n8n · gmail · google-sheets

Constraints

Prerequisites: n8n instance (self-hosted or Cloud), Google account with Sheets and Gmail access, Anthropic API key. Cost: Anthropic API usage-based; n8n Cloud has a free tier. Input: a Google Sheet with one row per day and columns for key metrics. Output: a plain-text Gmail report plus an appended log row in Sheets.

What they did

Template author akshaychug published this workflow in the n8n official template gallery as #14931. It includes 15 nodes: schedule trigger, settings configuration, parallel fetches for two weeks of data, a Code node that formats a comparison table, a Claude LLM Chain that generates the report, Gmail delivery, and Sheets logging.

How it went

The author claims (template description) the workflow runs automatically each Monday, produces a structured report with overall health, week-on-week summary, wins, concerns, top 3 actions, and a trend to watch, then delivers it by Gmail. Not independently verified by this site.

Worth knowing

The source notes you can change the trigger day/time, add more data sources before the Format Data node, or swap Claude Sonnet for Claude Haiku to reduce cost. Sticky Note3 explicitly recommends editing the system prompt to describe your business and what good performance means. Note: description.md and sticky-notes.md differ slightly on Report Log columns (the former includes Week Covered and Business; the latter lists only Date, Summary, Status). The workflow.json actually maps all five columns, so creating the full five-column tab is recommended.

n8n workflow template

Structure checked · Not run-tested

Use “Import from File” in n8n, or copy the JSON and paste it into the editor. Connect your own accounts, then try test data. The template is inactive by default.

Setup and test checklist

Credentials to connect

  • After import, connect your own credentials on auth-required nodes; author secrets are not included.

Configuration to replace

  • Source template is n8n public workflow #14931 (~15 nodes). Keep inactive after import; verify triggers, expressions and external API endpoints.
  • Sticky-note guidance is informational; replace placeholders with your own accounts, sheet schemas or channel IDs.

Test input and expected output

  • Manually run the main path once in a test workspace and confirm credentialed nodes authenticate without errors.
  • Drive one synthetic/redacted sample through and check output fields and downstream writes before enabling in production.

Template changes

  • Author credential bindings, webhookId and execution data are removed; the workflow is inactive. Nodes, connections and original prompts are preserved. Not run-tested in n8n.
  • No business-logic edits; verify keys, quotas and privacy compliance before use.

Template retrieved: 2026-10-24

Steps

  1. Prepare the data sheet and connect Google account

    Create a Google Sheet with one row per day and columns for your key business metrics (e.g., Revenue, Leads, Calls, Conversions). In the n8n workflow, open both Fetch This Week Data and Fetch Last Week Data nodes, connect your Google account, and select the sheet. Both nodes use the same documentId.

  2. Configure report settings

    Open the Configure Report Settings node (a Code node) and edit the first three constants: BUSINESS_NAME, REPORT_EMAIL, and METRICS_DESCRIPTION (a short plain-English description of what each column means, e.g. 'Revenue (USD), New Leads, Sales Calls Booked, Deals Closed, Refunds'). Save the node; it will auto-calculate the date ranges for this week and last week.

    Setup guidance · Source text。JS Code field of the Configure Report Settings node; replace constants then save

    // ================================================
    //  EDIT THIS NODE -- all your settings live here
    // ================================================
    
    const BUSINESS_NAME    = 'Your Business Name';
    const REPORT_EMAIL     = '[email protected]';
    const METRICS_DESCRIPTION = 'Revenue (USD), New Leads, Sales Calls Booked, Deals Closed, Refunds';
    
    // ================================================
    //  DO NOT EDIT BELOW THIS LINE
    // ================================================
    
    const now   = new Date();
    const today = now.toISOString().split('T')[0];
    
    // This week: last 7 days
    const thisWeekEnd   = new Date(now);
    const thisWeekStart = new Date(now);
    thisWeekStart.setDate(thisWeekStart.getDate() - 7);
    
    // Last week: 8-14 days ago
    const lastWeekEnd   = new Date(thisWeekStart);
    const lastWeekStart = new Date(thisWeekStart);
    lastWeekStart.setDate(lastWeekStart.getDate() - 7);
    
    function fmt(d) { return d.toISOString().split('T')[0]; }
    
    return [{
      json: {
        business_name:        BUSINESS_NAME,
        report_email:         REPORT_EMAIL,
        metrics_description:  METRICS_DESCRIPTION,
        run_date:             today,
        this_week_start:      fmt(thisWeekStart),
        this_week_end:        fmt(thisWeekEnd),
        last_week_start:      fmt(lastWeekStart),
        last_week_end:        fmt(lastWeekEnd)
      }
    }];
  3. Set up Claude AI and the analysis prompt

    Under the Analyse with Claude node, open the Claude Sonnet sub-node, add an Anthropic credential, and paste your API key from console.anthropic.com. The model is set to claude-sonnet-4-5. The Analyse with Claude node already contains the full system prompt; you may edit it to describe your business and what good performance looks like, as noted in Sticky Note3.

    Execution prompt · Source text。Text field of the Analyse with Claude node (promptType=define)

    =You are a sharp business analyst reviewing weekly performance data for {{ $json.business_name }}.
    
    Your job is to write a clear, honest weekly business health report that a busy owner can read in 2 minutes.
    
    METRICS IN THIS DATASET: {{ $json.metrics_description }}
    
    DATA:
    {{ $json.formatted_data }}
    
    Write the report using EXACTLY this structure:
    
    WEEKLY BUSINESS HEALTH REPORT -- {{ $json.run_date }}
    
    OVERALL HEALTH: [One of: Strong / Steady / Needs Attention / Critical]
    
    WEEK-ON-WEEK SUMMARY:
    Write 2-3 sentences comparing this week to last week in plain English. Be specific with numbers.
    
    WHAT IS WORKING:
    - [specific win with numbers]
    - [specific win with numbers]
    
    WHAT NEEDS ATTENTION:
    - [specific concern with numbers and why it matters]
    - [specific concern with numbers and why it matters]
    
    TOP 3 ACTIONS THIS WEEK:
    1. [Concrete action -- one sentence]
    2. [Concrete action -- one sentence]
    3. [Concrete action -- one sentence]
    
    TREND TO WATCH:
    One sentence on the most important trend developing across both weeks.
    
    Rules: Be direct. Use actual numbers from the data. Do not hedge or add disclaimers. If data is missing or incomplete, say so and explain what you can still see.
  4. Connect Gmail and create the log sheet

    Connect your Gmail account in the Send Weekly Report node. Then create a second tab in the same Google Sheet named Report Log with columns in this order: Date, Week Covered, Business, Status, Summary. Open the Log Report Run node, connect the same Google account, and select the Report Log tab. [First-test safety] Before the first test, set Send Weekly Report to your own test inbox, or temporarily disconnect that Gmail node, and use a test archive sheet for Report Log; reconnect production recipients/sheet only after the dry-run looks correct.

  5. Activate and verify

    Save the workflow and click Activate. The Weekly Schedule Trigger is already set to Mondays at 7:00. Before the first scheduled run, execute manually once to verify the email arrives and Report Log appends correctly. If data is missing or date ranges look wrong, check the constants in Configure Report Settings and the date column format in your sheet.

Prompt you can copy

Setup guidance · Editorial suggestion。Give to a setup assistant to confirm inputs and permissions, then replace constants and credentials step by step

This block is the prompt. Ads are never placed here.

You are setting up an n8n automation: every Monday at 7AM it pulls the last two weeks of business data from Google Sheets, analyses it with Claude AI, emails a health report via Gmail, and logs the run to a second sheet tab. First confirm you have: an n8n instance, Google OAuth credentials (Sheets + Gmail), and an Anthropic API key. Then replace YOUR_BUSINESS_NAME, REPORT_EMAIL, METRICS_DESCRIPTION, and YOUR_GOOGLE_SHEET_ID. Run a manual test before the first scheduled execution and verify both inbox and Report Log.

This prompt is for understanding workflow structure and locating configuration fields, not for node execution.

Source

Generate a weekly business health report from Google Sheets with Claude · akshaychug · n8n.io · 2026-04-08

Comments & feedback

Tried this method? Share results, problems or improvements. Comments appear after moderation. Please avoid sensitive information.

Loading…

    Related