White Label Client Report logo

White Label Client Report

Community
Enriquemarq1
white-label-client-report

Add a white-label client report to your own social media app on the Zernio API: organic and paid numbers side by side under your agency's logo, how fast the brand answers its messages, what people feel in the comments, and a branded link or PDF the client opens. Part 2 of white-label-blueprint; works on any app that already has one Zernio profile per client. Triggers: 'client report', 'white label report', 'agency report', 'monthly report for my clients', 'organic and paid in one report', 'response time report', 'comment sentiment'.

Overview

PublisherEnriquemarq1
Repositoryzernio-library-skills
Skill namewhite-label-client-report
Stars
50
Forks
13
Bundled files
2
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 2 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by Enriquemarq1 on GitHub. Read the source before you install it.

Installation

Install the White Label Client Report AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/Enriquemarq1/zernio-library-skills/tree/main/.claude/skills/white-label-client-report
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/Enriquemarq1/zernio-library-skills.git /tmp/zernio-library-skills
mkdir -p .claude/skills
cp -r /tmp/zernio-library-skills/.claude/skills/white-label-client-report .claude/skills/white-label-client-report
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable White Label Client Report in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads White Label Client Report on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so White Label Client Report is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

White-Label Client Report: your logo on every number

Your logo. Their numbers. One API. The client opens a report with your agency's name on it, and every number on it comes from the same API that already posts, answers messages and runs ads for them.

YOUR APP → [1 YOUR LOGO] → [2 ORGANIC] → [3 PAID] → [4 RESPONSE TIME] → [5 SENTIMENT]
            your link,      one call,     next to     how fast the       what people
            your PDF        vs last       organic     brand answers      feel, built
                            period                                       on top

The law: a report is only white-label if the client never sees anyone's name but yours, on the screen, in the link and in the PDF.

#CheckWhat proves it
1Your logo, your linkThe client opens /c/{profileId}/report or the PDF: your brand, no vendor name anywhere
2Organic in one callGET /v1/analytics/dashboard returns totals, followers, the daily series, top posts and the previous period at once
3Paid next to organicGET /v1/ads for the same client and the same dates, in the column beside organic
4How fast the brand answersGET /v1/analytics/inbox/response-time and /volume: median first reply, the spread, messages received
5What people feelComments from GET /v1/inbox/comments, scored by your own code. Zernio gives you the raw comments; the analysis is yours to add

Fastest path: clone the app, or paste the stages into your own. The finished app from the video, with this report built in, is in this repo at apps/white-label-app/: npm ci, npm run demo to see it on made-up data, then your key and clients.json (its README has the setup). Clone it, or read it beside the stages below while you build your own.

Starting from the blueprint app? Paste reference/stage-prompts.md one stage at a time (seven stages: the tab, organic, paid, community, sentiment, the client link and PDF, then the look) into Claude Code inside that app. Starting from your own app? Stage 0 reads your code first and keeps your framework, design and data model.

The architecture (still thin)

  • No new database. Every number is read live, scoped to the client's profileId. For many clients in production, Zernio's own guide recommends a sync worker that fills your database once an hour, so a page view never calls the API (multi-tenant analytics). Say so; don't build it for a demo.
  • One report page, two doors. The agency sees it as a tab inside the client's workspace; the client gets the same page on a branded link with none of your navigation, plus a Download PDF button (the browser's print to PDF with a print stylesheet; no PDF library).
  • One window for every number. A 30 or 90 day selector drives organic, paid, response time and sentiment together, with the previous period beside it.
  • Spend is optional on screen. Some clients don't want their budget in a shared link. A "Show spend" switch, off by default, hides spend, CPC and cost per result and keeps impressions, reach, clicks and CTR.

The endpoints that carry each check

All on https://zernio.com/api/v1, bearer key server-side only. Checked against docs.zernio.com on October 19, 2026.

  1. ORGANIC: GET /analytics/dashboard?profileId=…&fromDate=…&toDate=…&compare=previous_period&topPosts=5. Returns totals and previousTotals (impressions, reach, likes, comments, shares, saves, clicks, views, engagementRate), followers and previousFollowers (current, gained, byAccount), daily[] and topPosts[]. Both dates are required, UTC days, at most 366 days. Add &platform=facebook to match a paid column that runs on Meta. Top posts carry lifetime metrics, so they won't add up to the totals; label them "top posts published in this period".
  2. PAID: GET /ads/accounts?accountId={the client's ads connection} once to find the ad account, then GET /ads?adAccountId=…&source=all&fromDate=…&toDate=…. Scope by the ad account: a profile-wide list can come back empty while history syncs. source=all includes ads made directly in the platform's ads manager. Each ad has metrics (spend, impressions, reach, clicks, ctr, cpc, cpm, conversions, costPerConversion, roas) and a currency. A 202 with backfillPending: true means Zernio is still pulling history: show "syncing", never a zero.
  3. RESPONSE TIME: GET /analytics/inbox/response-time?profileId=…&fromDate=…&toDate=… returns summary (sampleSize, medianSeconds, p90Seconds, fastestSeconds, slowestSeconds) and histogram[] (0–1m, 1–5m, 5–15m, 15–60m, 1–4h, 4–24h, 1d+). Unanswered conversations are excluded, so pair it with GET /analytics/inbox/volume (summary.received, sent, uniqueConversations, byPlatform[]).
  4. COMMENTS: GET /inbox/comments?profileId=…&minComments=1 lists the client's posts with comments, then GET /inbox/comments/{postId}?accountId=… returns each comment's message and createdTime. Cached up to 10 minutes. Instagram, Facebook, YouTube, X, Threads, Bluesky, Reddit, LinkedIn (organization pages) and TikTok (Business).
  5. WHITE LABEL: nothing to call. It's your route, your CSS and your print stylesheet.

Honest limits to say out loud

  • Follower counts refresh once a day; post metrics are cached for an hour; YouTube daily views arrive two to three days late; Instagram insights run about a day behind. Put an "as of" time on the report (dataAsOf).
  • Some platforms report views and others impressions; TikTok has no reach. Show what each platform gives instead of inventing a common number.
  • Response time covers conversations that got an answer. The reply share comes from the volume endpoint.
  • Sentiment is your code's estimate, not Zernio's. A word-list scorer is free and runs offline; swap in a language model when you need nuance. Show who said what nowhere: counts and themes are enough for a report.
  • Pricing (zernio.com/pricing, October 19, 2026): two accounts free, then $6, $3 and $1 per connected account per month, every feature included. An ad account counts as an account.

The look

A report only sells the agency if it looks like a product. reference/design-system.md is the design system the video's app uses: the calm language of Zernio's own dashboard. It has the tokens (white cards, cream sidebar, warm 1px borders, charcoal text, one accent, Geist), and five patterns:

  • the sidebar and switcher, with your logo or your face as the agency mark;
  • cards;
  • ranked rows with a BEST winner;
  • tables with coloured metric icons and real platform logos;
  • engagement-rate pills and deltas.

Stage 6 applies it to the whole app with your own accent colour and mark.

Files

  • apps/white-label-app/: the finished app with this report, ready to clone (report/ holds the report code).
  • reference/stage-prompts.md: one prompt per stage, paste-ready.
  • reference/design-system.md: the look (tokens, five patterns, where it applies, how to check it).
  • The polish loop from white-label-blueprint (../white-label-blueprint/reference/ui-polish-loop.md) finishes the look.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the White Label Client Report AI skill do?

Add a white-label client report to your own social media app on the Zernio API: organic and paid numbers side by side under your agency's logo, how fast the brand answers its messages, what people feel in the comments, and a branded link or PDF the client opens. Part 2 of white-label-blueprint; works on any app that already has one Zernio profile per client. Triggers: 'client report', 'white label report', 'agency report', 'monthly report for my clients', 'organic and paid in one report', 'response time report', 'comment sentiment'.

Why use White Label Client Report on TypingMind?

Because you install it once and use it with any model. White Label Client Report is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install White Label Client Report in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/Enriquemarq1/zernio-library-skills/tree/main/.claude/skills/white-label-client-report. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use White Label Client Report?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with White Label Client Report?

As many as you like. As long as a model supports skills, you can use White Label Client Report with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the White Label Client Report AI skill free?

Yes. It is published on GitHub by Enriquemarq1 under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇