# Send Client Reporting Automation to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- 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.
## Suggested prompts
### New install

```text
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.
```
### Upgrade existing

```text
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.
```
## Machine-readable fields
```json
{
  "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": {
    "downloadUrl": "/downloads/client-reporting",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=client-reporting",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md",
      "references/ga4-setup.md",
      "references/report-customization.md",
      "scripts/add-client.sh",
      "scripts/dashboard.sh",
      "scripts/deliver-report.sh"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "client-reporting",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-01T20:33:14.867Z",
      "expiresAt": "2026-05-08T20:33:14.867Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=client-reporting",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=client-reporting",
        "contentDisposition": "attachment; filename=\"client-reporting-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "client-reporting"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "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."
      ]
    }
  },
  "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"
  }
}
```
## Documentation

### Client Reporting Automation

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.

### Dependencies

pip3 install requests jinja2

### API Keys (configure in config.json)

Google Analytics 4 — GA4_PROPERTY_ID + service account key
Google Search Console — service account key (see seo-audit-suite references)
Social platforms — same credentials as social-media-autopilot skill
SendGrid — for email delivery (SENDGRID_API_KEY)

### Workspace

client-reports/
├── config.json           # Global settings, API keys
├── clients/              # Per-client configuration
│   └── client-name/
│       ├── config.json   # Client-specific settings (property IDs, branding)
│       ├── reports/      # Generated reports
│       └── data/         # Cached metrics data
├── templates/            # Report templates (Jinja2 HTML)
└── schedules.json        # Automated delivery schedule

Run scripts/init-workspace.sh to create this structure.

### 1. Add a Client

scripts/add-client.sh --name "acme-corp" --domain "acme.com" --email "ceo@acme.com"

Creates client directory with config template. Edit clients/acme-corp/config.json to add:

GA4 property ID
Search Console site URL
Social media handles
Branding (logo URL, brand colors)
Report preferences (metrics to include, frequency)

### 2. Pull Metrics

Fetch fresh data for a client:

scripts/pull-metrics.sh --client "acme-corp"                    # All sources
scripts/pull-metrics.sh --client "acme-corp" --source ga4       # Google Analytics only
scripts/pull-metrics.sh --client "acme-corp" --source gsc       # Search Console only
scripts/pull-metrics.sh --client "acme-corp" --source social    # Social metrics
scripts/pull-metrics.sh --client "acme-corp" --period 30d       # Last 30 days

Data sources and metrics:

Google Analytics 4:

Sessions, users, new users, bounce rate
Top pages by views
Traffic sources breakdown
Conversion events
Device/browser breakdown

Google Search Console:

Total clicks, impressions, CTR, avg position
Top queries by clicks
Top pages by impressions
Position changes vs previous period

Social Media:

Followers/following changes
Post engagement (likes, shares, comments)
Top performing posts
Reach/impressions

### 3. Generate Reports

scripts/generate-report.sh --client "acme-corp" --type monthly
scripts/generate-report.sh --client "acme-corp" --type weekly --format html
scripts/generate-report.sh --client "acme-corp" --type custom --metrics "traffic,rankings,social"

Report types:

weekly — 7-day snapshot with week-over-week changes
monthly — 30-day deep dive with month-over-month trends
quarterly — 90-day strategic overview
custom — pick specific metrics

Output formats:

Markdown — default, good for Slack/email
HTML — branded, professional, email-ready
PDF — via HTML-to-PDF conversion (requires wkhtmltopdf or similar)

### 4. Auto-Deliver Reports

scripts/deliver-report.sh --client "acme-corp" --latest         # Send most recent
scripts/deliver-report.sh --client "acme-corp" --via email      # Email delivery
scripts/deliver-report.sh --client "acme-corp" --via slack      # Slack webhook

### 5. Schedule Recurring Reports

Configure in schedules.json:

{
  "schedules": [
    {
      "client": "acme-corp",
      "type": "weekly",
      "day": "monday",
      "time": "09:00",
      "timezone": "America/Los_Angeles",
      "deliver_via": "email",
      "enabled": true
    },
    {
      "client": "acme-corp",
      "type": "monthly",
      "day_of_month": 1,
      "time": "09:00",
      "timezone": "America/Los_Angeles",
      "deliver_via": "email",
      "enabled": true
    }
  ]
}

Use with OpenClaw cron to automate: check schedules daily, generate and deliver due reports.

### 6. KPI Dashboard

Quick terminal dashboard for any client:

scripts/dashboard.sh --client "acme-corp"

Shows current period vs previous: traffic, rankings, social growth, conversions.

### Report Template System

Templates use Jinja2 and live in templates/:

<!-- templates/monthly.html -->
<html>
<head><style>/* brand styles */</style></head>
<body>
  <h1>Monthly Report — {{ client.name }}</h1>
  <p>{{ period.start }} to {{ period.end }}</p>
  
  <h2>Traffic Overview</h2>
  <table>
    <tr><td>Sessions</td><td>{{ ga4.sessions }}</td><td>{{ ga4.sessions_change }}%</td></tr>
    <tr><td>Users</td><td>{{ ga4.users }}</td><td>{{ ga4.users_change }}%</td></tr>
  </table>
  
  <h2>Search Performance</h2>
  <!-- ... -->
</body>
</html>

Customize templates per client by placing overrides in clients/<name>/templates/.

### Cron Integration

Daily: Pull fresh metrics for all active clients
Weekly: Generate and deliver weekly reports (Monday AM)
Monthly: Generate and deliver monthly reports (1st of month)
Quarterly: Generate quarterly reviews

### References

references/ga4-setup.md — Google Analytics 4 API setup and available metrics
references/report-customization.md — How to customize templates and metrics
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: reighlan
- Version: 1.0.0
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-01T20:33:14.867Z
- Expires at: 2026-05-08T20:33:14.867Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/client-reporting)
- [Send to Agent page](https://openagent3.xyz/skills/client-reporting/agent)
- [JSON manifest](https://openagent3.xyz/skills/client-reporting/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/client-reporting/agent.md)
- [Download page](https://openagent3.xyz/downloads/client-reporting)