{
  "schemaVersion": "1.0",
  "item": {
    "slug": "client-reporting",
    "name": "Client Reporting Automation",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/reighlan/client-reporting",
    "canonicalUrl": "https://clawhub.ai/reighlan/client-reporting",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/client-reporting",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=client-reporting",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/ga4-setup.md",
      "references/report-customization.md",
      "scripts/add-client.sh",
      "scripts/dashboard.sh",
      "scripts/deliver-report.sh"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/client-reporting"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/client-reporting",
    "agentPageUrl": "https://openagent3.xyz/skills/client-reporting/agent",
    "manifestUrl": "https://openagent3.xyz/skills/client-reporting/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/client-reporting/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Client Reporting Automation",
        "body": "Pull metrics from multiple sources, generate branded reports, and auto-deliver to clients. Built for agencies and freelancers who need consistent, professional reporting without manual work."
      },
      {
        "title": "Dependencies",
        "body": "pip3 install requests jinja2"
      },
      {
        "title": "API Keys (configure in config.json)",
        "body": "Google Analytics 4 — GA4_PROPERTY_ID + service account key\nGoogle Search Console — service account key (see seo-audit-suite references)\nSocial platforms — same credentials as social-media-autopilot skill\nSendGrid — for email delivery (SENDGRID_API_KEY)"
      },
      {
        "title": "Workspace",
        "body": "client-reports/\n├── config.json           # Global settings, API keys\n├── clients/              # Per-client configuration\n│   └── client-name/\n│       ├── config.json   # Client-specific settings (property IDs, branding)\n│       ├── reports/      # Generated reports\n│       └── data/         # Cached metrics data\n├── templates/            # Report templates (Jinja2 HTML)\n└── schedules.json        # Automated delivery schedule\n\nRun scripts/init-workspace.sh to create this structure."
      },
      {
        "title": "1. Add a Client",
        "body": "scripts/add-client.sh --name \"acme-corp\" --domain \"acme.com\" --email \"ceo@acme.com\"\n\nCreates client directory with config template. Edit clients/acme-corp/config.json to add:\n\nGA4 property ID\nSearch Console site URL\nSocial media handles\nBranding (logo URL, brand colors)\nReport preferences (metrics to include, frequency)"
      },
      {
        "title": "2. Pull Metrics",
        "body": "Fetch fresh data for a client:\n\nscripts/pull-metrics.sh --client \"acme-corp\"                    # All sources\nscripts/pull-metrics.sh --client \"acme-corp\" --source ga4       # Google Analytics only\nscripts/pull-metrics.sh --client \"acme-corp\" --source gsc       # Search Console only\nscripts/pull-metrics.sh --client \"acme-corp\" --source social    # Social metrics\nscripts/pull-metrics.sh --client \"acme-corp\" --period 30d       # Last 30 days\n\nData sources and metrics:\n\nGoogle Analytics 4:\n\nSessions, users, new users, bounce rate\nTop pages by views\nTraffic sources breakdown\nConversion events\nDevice/browser breakdown\n\nGoogle Search Console:\n\nTotal clicks, impressions, CTR, avg position\nTop queries by clicks\nTop pages by impressions\nPosition changes vs previous period\n\nSocial Media:\n\nFollowers/following changes\nPost engagement (likes, shares, comments)\nTop performing posts\nReach/impressions"
      },
      {
        "title": "3. Generate Reports",
        "body": "scripts/generate-report.sh --client \"acme-corp\" --type monthly\nscripts/generate-report.sh --client \"acme-corp\" --type weekly --format html\nscripts/generate-report.sh --client \"acme-corp\" --type custom --metrics \"traffic,rankings,social\"\n\nReport types:\n\nweekly — 7-day snapshot with week-over-week changes\nmonthly — 30-day deep dive with month-over-month trends\nquarterly — 90-day strategic overview\ncustom — pick specific metrics\n\nOutput formats:\n\nMarkdown — default, good for Slack/email\nHTML — branded, professional, email-ready\nPDF — via HTML-to-PDF conversion (requires wkhtmltopdf or similar)"
      },
      {
        "title": "4. Auto-Deliver Reports",
        "body": "scripts/deliver-report.sh --client \"acme-corp\" --latest         # Send most recent\nscripts/deliver-report.sh --client \"acme-corp\" --via email      # Email delivery\nscripts/deliver-report.sh --client \"acme-corp\" --via slack      # Slack webhook"
      },
      {
        "title": "5. Schedule Recurring Reports",
        "body": "Configure in schedules.json:\n\n{\n  \"schedules\": [\n    {\n      \"client\": \"acme-corp\",\n      \"type\": \"weekly\",\n      \"day\": \"monday\",\n      \"time\": \"09:00\",\n      \"timezone\": \"America/Los_Angeles\",\n      \"deliver_via\": \"email\",\n      \"enabled\": true\n    },\n    {\n      \"client\": \"acme-corp\",\n      \"type\": \"monthly\",\n      \"day_of_month\": 1,\n      \"time\": \"09:00\",\n      \"timezone\": \"America/Los_Angeles\",\n      \"deliver_via\": \"email\",\n      \"enabled\": true\n    }\n  ]\n}\n\nUse with OpenClaw cron to automate: check schedules daily, generate and deliver due reports."
      },
      {
        "title": "6. KPI Dashboard",
        "body": "Quick terminal dashboard for any client:\n\nscripts/dashboard.sh --client \"acme-corp\"\n\nShows current period vs previous: traffic, rankings, social growth, conversions."
      },
      {
        "title": "Report Template System",
        "body": "Templates use Jinja2 and live in templates/:\n\n<!-- templates/monthly.html -->\n<html>\n<head><style>/* brand styles */</style></head>\n<body>\n  <h1>Monthly Report — {{ client.name }}</h1>\n  <p>{{ period.start }} to {{ period.end }}</p>\n  \n  <h2>Traffic Overview</h2>\n  <table>\n    <tr><td>Sessions</td><td>{{ ga4.sessions }}</td><td>{{ ga4.sessions_change }}%</td></tr>\n    <tr><td>Users</td><td>{{ ga4.users }}</td><td>{{ ga4.users_change }}%</td></tr>\n  </table>\n  \n  <h2>Search Performance</h2>\n  <!-- ... -->\n</body>\n</html>\n\nCustomize templates per client by placing overrides in clients/<name>/templates/."
      },
      {
        "title": "Cron Integration",
        "body": "Daily: Pull fresh metrics for all active clients\nWeekly: Generate and deliver weekly reports (Monday AM)\nMonthly: Generate and deliver monthly reports (1st of month)\nQuarterly: Generate quarterly reviews"
      },
      {
        "title": "References",
        "body": "references/ga4-setup.md — Google Analytics 4 API setup and available metrics\nreferences/report-customization.md — How to customize templates and metrics"
      }
    ],
    "body": "Client Reporting Automation\n\nPull metrics from multiple sources, generate branded reports, and auto-deliver to clients. Built for agencies and freelancers who need consistent, professional reporting without manual work.\n\nSetup\nDependencies\npip3 install requests jinja2\n\nAPI Keys (configure in config.json)\nGoogle Analytics 4 — GA4_PROPERTY_ID + service account key\nGoogle Search Console — service account key (see seo-audit-suite references)\nSocial platforms — same credentials as social-media-autopilot skill\nSendGrid — for email delivery (SENDGRID_API_KEY)\nWorkspace\nclient-reports/\n├── config.json           # Global settings, API keys\n├── clients/              # Per-client configuration\n│   └── client-name/\n│       ├── config.json   # Client-specific settings (property IDs, branding)\n│       ├── reports/      # Generated reports\n│       └── data/         # Cached metrics data\n├── templates/            # Report templates (Jinja2 HTML)\n└── schedules.json        # Automated delivery schedule\n\n\nRun scripts/init-workspace.sh to create this structure.\n\nCore Workflows\n1. Add a Client\nscripts/add-client.sh --name \"acme-corp\" --domain \"acme.com\" --email \"ceo@acme.com\"\n\n\nCreates client directory with config template. Edit clients/acme-corp/config.json to add:\n\nGA4 property ID\nSearch Console site URL\nSocial media handles\nBranding (logo URL, brand colors)\nReport preferences (metrics to include, frequency)\n2. Pull Metrics\n\nFetch fresh data for a client:\n\nscripts/pull-metrics.sh --client \"acme-corp\"                    # All sources\nscripts/pull-metrics.sh --client \"acme-corp\" --source ga4       # Google Analytics only\nscripts/pull-metrics.sh --client \"acme-corp\" --source gsc       # Search Console only\nscripts/pull-metrics.sh --client \"acme-corp\" --source social    # Social metrics\nscripts/pull-metrics.sh --client \"acme-corp\" --period 30d       # Last 30 days\n\n\nData sources and metrics:\n\nGoogle Analytics 4:\n\nSessions, users, new users, bounce rate\nTop pages by views\nTraffic sources breakdown\nConversion events\nDevice/browser breakdown\n\nGoogle Search Console:\n\nTotal clicks, impressions, CTR, avg position\nTop queries by clicks\nTop pages by impressions\nPosition changes vs previous period\n\nSocial Media:\n\nFollowers/following changes\nPost engagement (likes, shares, comments)\nTop performing posts\nReach/impressions\n3. Generate Reports\nscripts/generate-report.sh --client \"acme-corp\" --type monthly\nscripts/generate-report.sh --client \"acme-corp\" --type weekly --format html\nscripts/generate-report.sh --client \"acme-corp\" --type custom --metrics \"traffic,rankings,social\"\n\n\nReport types:\n\nweekly — 7-day snapshot with week-over-week changes\nmonthly — 30-day deep dive with month-over-month trends\nquarterly — 90-day strategic overview\ncustom — pick specific metrics\n\nOutput formats:\n\nMarkdown — default, good for Slack/email\nHTML — branded, professional, email-ready\nPDF — via HTML-to-PDF conversion (requires wkhtmltopdf or similar)\n4. Auto-Deliver Reports\nscripts/deliver-report.sh --client \"acme-corp\" --latest         # Send most recent\nscripts/deliver-report.sh --client \"acme-corp\" --via email      # Email delivery\nscripts/deliver-report.sh --client \"acme-corp\" --via slack      # Slack webhook\n\n5. Schedule Recurring Reports\n\nConfigure in schedules.json:\n\n{\n  \"schedules\": [\n    {\n      \"client\": \"acme-corp\",\n      \"type\": \"weekly\",\n      \"day\": \"monday\",\n      \"time\": \"09:00\",\n      \"timezone\": \"America/Los_Angeles\",\n      \"deliver_via\": \"email\",\n      \"enabled\": true\n    },\n    {\n      \"client\": \"acme-corp\",\n      \"type\": \"monthly\",\n      \"day_of_month\": 1,\n      \"time\": \"09:00\",\n      \"timezone\": \"America/Los_Angeles\",\n      \"deliver_via\": \"email\",\n      \"enabled\": true\n    }\n  ]\n}\n\n\nUse with OpenClaw cron to automate: check schedules daily, generate and deliver due reports.\n\n6. KPI Dashboard\n\nQuick terminal dashboard for any client:\n\nscripts/dashboard.sh --client \"acme-corp\"\n\n\nShows current period vs previous: traffic, rankings, social growth, conversions.\n\nReport Template System\n\nTemplates use Jinja2 and live in templates/:\n\n<!-- templates/monthly.html -->\n<html>\n<head><style>/* brand styles */</style></head>\n<body>\n  <h1>Monthly Report — {{ client.name }}</h1>\n  <p>{{ period.start }} to {{ period.end }}</p>\n  \n  <h2>Traffic Overview</h2>\n  <table>\n    <tr><td>Sessions</td><td>{{ ga4.sessions }}</td><td>{{ ga4.sessions_change }}%</td></tr>\n    <tr><td>Users</td><td>{{ ga4.users }}</td><td>{{ ga4.users_change }}%</td></tr>\n  </table>\n  \n  <h2>Search Performance</h2>\n  <!-- ... -->\n</body>\n</html>\n\n\nCustomize templates per client by placing overrides in clients/<name>/templates/.\n\nCron Integration\nDaily: Pull fresh metrics for all active clients\nWeekly: Generate and deliver weekly reports (Monday AM)\nMonthly: Generate and deliver monthly reports (1st of month)\nQuarterly: Generate quarterly reviews\nReferences\nreferences/ga4-setup.md — Google Analytics 4 API setup and available metrics\nreferences/report-customization.md — How to customize templates and metrics"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/reighlan/client-reporting",
    "publisherUrl": "https://clawhub.ai/reighlan/client-reporting",
    "owner": "reighlan",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/client-reporting",
    "downloadUrl": "https://openagent3.xyz/downloads/client-reporting",
    "agentUrl": "https://openagent3.xyz/skills/client-reporting/agent",
    "manifestUrl": "https://openagent3.xyz/skills/client-reporting/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/client-reporting/agent.md"
  }
}