Analytics report
Skill UmertheGTME/claude-skills-for-heyreach/analytics-report
Claude skills for running HeyReach LinkedIn outreach in plain English: campaign building, ICP sourcing via Prospeo, sequence templates, and read-only analytics.
npx -y skills add UmertheGTME/claude-skills-for-heyreach --skill analytics-reportAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Generate READ-ONLY weekly or monthly performance reports across all HeyReach workspaces in an organization, written to a dated markdown file. Use when the user wants an analytics report, a workspace performance digest, org-wide or agency-wide stats, "how are my campaigns doing", weekly/monthly numbers, or KPIs (acceptance rate, reply rate, interested leads) per workspace and as an org roll-up. Requires an organization / tenant API key. Strictly read-only β it never creates, edits, starts, pauses, or deletes anything. Can be scheduled to run automatically.
SKILL.md
6.9 KB, ~1.7k tokens by cl100k_base, as published. Nobody here has run it
HeyReach Analytics Report (read-only, org-wide)
From one organization API key, produce a weekly or monthly report: an org roll-up plus a per-workspace breakdown with period-over-period trends, written to a dated markdown file.
Triggers
"weekly/monthly HeyReach report", "workspace analytics", "how are my campaigns doing across workspaces", "org-wide stats", "agency performance digest", "acceptance/reply rates per workspace", "interested-lead report".
π Read-only contract (do not violate)
This skill only reads. It is safe to run against a live production org. It issues exactly these calls:
heyreach workspaces listβ enumerate workspacesGET .../organizations/api-keys/workspaces/{id}viacurlβ read each workspace's existing public key (temporary: theheyreach workspaces api-keysCLI command is currently broken β see Edge cases)heyreach stats overall(and optionallystats by-campaign,campaigns list/get) β read metricsWriteβ only to the local report file
Never call (and they're not in allowed-tools): workspaces create-api-key / create / update /
invite-*, any campaigns create/start/pause/resume/stop-lead/add-leads/update-*, any lists/leads write,
inbox send-message, or webhooks writes. If a workspace lacks a public key, skip and flag it β never
create one (that would be a write).
Prerequisites
An organization / tenant API key (HeyReach β Organization settings). The regular workspace key will not
work for workspaces *.
export HEYREACH_TENANT_KEY=your_org_key_here
Set expectations
Before pulling data, give the user a one-line, plain heads-up:
"Reading stats across N workspaces (read-only), ~3 calls each β building the <weekly|monthly> report."
How it works
1. Validate the org key + list workspaces
heyreach workspaces list --api-key "$HEYREACH_TENANT_KEY" --limit 100
Each item: { workspaceId, workspaceName, seatsLimit, usedSeats }. Paginate with --offset if totalCount > 100.
2. Pick the window (from the system clock)
- Weekly: current = trailing 7 days; previous = the 7 days before that (for trends).
- Monthly: current = trailing 30 days; previous = the 30 days before that.
END=$(date -u +%Y-%m-%dT%H:%M:%SZ); START=$(date -u -v-7d +%Y-%m-%dT%H:%M:%SZ) # weekly current (BSD/macOS date)
PREV_END=$START; PREV_START=$(date -u -v-14d +%Y-%m-%dT%H:%M:%SZ)
# monthly: use -v-30d and -v-60d. GNU/Linux date: use `date -u -d '7 days ago'`.
3. Per workspace, read its public key (read-only)
The CLI's workspaces api-keys is currently broken (returns {}), so read the key directly β GET only:
KEY=$(curl -s --max-time 20 -H "X-API-KEY: $HEYREACH_TENANT_KEY" \
"https://api.heyreach.io/api/public/management/organizations/api-keys/workspaces/$WID" | jq -r '.publicApi // empty')
If KEY is empty β skip this workspace and add it to the "Skipped" list (no key exists; do not create one).
4. Pull stats for both windows
heyreach stats overall --api-key "$KEY" --start-date "$START" --end-date "$END" | jq '.overallStats'
heyreach stats overall --api-key "$KEY" --start-date "$PREV_START" --end-date "$PREV_END" | jq '.overallStats'
Use .overallStats (windowed aggregate). Pace requests (org API limit is 300/min); for very large orgs, batch.
5. Aggregate β write the markdown report
Sum/blend across workspaces for the roll-up, compute deltas vs the previous window, and write:
reports/heyreach-<weekly|monthly>-<YYYY-MM-DD>.md (see layout below). Tell the user the file path.
Report layout
# HeyReach <Weekly|Monthly> Report β <date range>
Generated <timestamp> Β· N workspaces covered Β· M skipped (no API key)
## Org roll-up
| Metric | This period | Prev | Ξ |
| Connections sent / accepted / acceptance % | β¦ | β¦ | β²βΌ |
| Messages started / replies / reply % | β¦ | β¦ | β²βΌ |
| Interested (auto-tagged) / total tagged / interested % | β¦ | β¦ | β²βΌ |
| InMails Β· follows Β· profile views Β· post likes Β· unique leads contacted | β¦ | β¦ | β²βΌ |
## Per workspace
| Workspace | Conn sent | Accept % | Msgs | Reply % | Interested | Ξ conn |
| Acme Outbound | 142 | 38% | 96 | 29% | 11 | β² |
β¦
## Notable movers
- biggest +/- swings vs last period
## Skipped (no public API key β generate one in-app to include)
- Globex Demo (10293), Initech Agency (10488), β¦
Metrics reference (overallStats fields)
| Group | Fields |
|---|---|
| Volume | connectionsSent, totalMessageStarted, inmailMessagesSent, follows, profileViews, postLikes, uniqueLeadsContacted |
| Rates | connectionAcceptanceRate, messageReplyRate, inMailReplyRate (0β1 fractions β Γ100 for %) |
| Outcomes | connectionsAccepted, totalMessageReplies, totalAutoTagged |
| Interested | autoTaggedInterested, autoTaggedInterestedRate |
Use the API's overallStats.*Rate values directly β don't recompute from byDayStats (per-day acceptance can
exceed 100% because acceptances lag the sends that earned them; the windowed overallStats rate is correct).
Edge cases
- No public key on a workspace β skip + flag. Common (many workspaces never had a key generated). Never create one.
- Zero-activity workspace β show zeros, don't error.
- CLI bug β
workspaces api-keysreturns{}: the API returns the keys flat ({publicApi, n8N, β¦}) but the CLI expects them nested underapiKeys. Use thecurlGET above until the CLI is fixed; then switch toheyreach workspaces api-keys --workspace-id <id>and dropcurlfromallowed-tools. - Rate limit: org API = 300 req/min; ~3 calls/workspace. Pace for orgs with >100 workspaces.
Scheduling (optional, set up after the report looks right)
Wrap this in a recurring task (the scheduling skill / cron). Requirements for unattended runs:
- The org key must be in the environment (
HEYREACH_TENANT_KEY). - Use file delivery (this skill's default) β headless/cron runs may not have MCP connectors (Notion/Slack).
- Recommended cadence: a weekly run (e.g. Monday 07:00) and a monthly run (1st of month).
Gives 0 of the 12 instructions most docs writing skills give in ~1.7k tokens
Counted across 1,637 of the 3,044 authors here whose files we hold, read 2026-08-06
- announce the skill at startin 54 of 1637, across 21 files
- convert legacy doc files before editingin 45 of 1637, across 7 files
- predict questions readers might askin 42 of 1637, across 3 files
- Generate clarifying questions for initial contextin 42 of 1637, across 3 files
- Create document scaffold with placeholder textin 42 of 1637, across 3 files
- Brainstorm content options for each sectionin 42 of 1637, across 3 files
- Test document with fresh context-less instancein 42 of 1637, across 3 files
- ask interview questions one at a timein 42 of 1637, across 26 files
- include exact file paths in every taskin 42 of 1637, across 15 files
- Apply surgical edits during refinementin 41 of 1637, across 2 files
- Offer structured workflow or freeformin 40 of 1637, across 1 file
- Ask for document meta-contextin 40 of 1637, across 1 file
Said here and by no other author read
- enumerate workspaces
- paginate workspace list if total exceeds one hundred
- calculate trailing weekly or monthly report windows
- fetch each workspace public key via get request
- skip workspace if public key is missing
- read workspace stats for both windows
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.