# Report Sharing for Agencies — Many Clients, One Workspace, No Crossed Links

Canonical: https://commareports.com/for/agencies
Published: 2026-09-11

> Twelve clients, twelve monthly reports, and one link pasted into the wrong Slack channel is a breach. How agencies publish client-facing reports with separation that holds.

# Many clients, one workspace

An agency's reporting problem is not producing the report. It's that you
produce twelve of them, every month, for twelve organisations that must never
see each other's — and the whole system is held together by people pasting
the right link into the right Slack channel.

That works until the day it doesn't.

## Separation that isn't vigilance

The reliable version has three properties, in this order:

1. **Nothing is live until someone decides it is.** Reports created over the
   API start `private`. A generated report is not a published report, so a
   script that runs at 3am can't expose anything.
2. **Each client is a container, not a naming convention.** Teams and folders
   (Enterprise) give client work its own home, so "Acme — September" is not
   sitting one row above "Acme's competitor — September" in a flat list.
3. **Access is checked server-side.** Domain-gated visibility (Enterprise)
   means only verified `@client.com` emails can open, with no per-viewer
   invites to maintain and no seats to buy. Pairs with
   [SSO and SCIM](/security) if the agency is on an identity provider.

The full model — five visibility levels, link permissions, per-person roles —
is in [sharing & access control](/docs/sharing).

## The monthly report, automated

Retained client reporting is the same job every month, which makes it a
[routine](/features/routines): a schedule, a generation step, and an update
to the report that already exists.

```md
Every first Monday, rebuild the Acme performance report from last month's
data and publish it as a revision of report acme-monthly — do not create
a new report. Then post the URL to the #acme channel.
```

Because the revision lands at the same address, the client bookmarks one URL
in January and it is still the current report in November. Nobody searches
their inbox for "September report final".

Related: [scheduled HTML reports](/features/routines/scheduled-html-reports),
[weekly analytics digest](/features/routines/weekly-analytics-digest),
[monthly compliance digest](/features/routines/monthly-compliance-digest).

## What clients actually get

A URL that opens in the browser they have. No account, no extension, no PDF
conversion, no "it says the file is unsafe."

Whatever you built stays intact: a [Lighthouse audit](/share-lighthouse-report)
keeps its expandable diagnostics, a [Looker Studio](/share-looker-studio-report)
or [Metabase](/share-metabase-dashboard) export keeps its tables, a
[Plotly](/share-plotly-html) chart keeps its tooltips. Scripts run in a
sandboxed iframe, so interactive means interactive.

And when the client's head of marketing replies, they reply **on the number**
— an anchored comment on the row they're questioning, not a paragraph of
email that you have to map back to a table.

## White-labelling, honestly

- **Always yours:** the report's HTML, CSS, logo, layout, typography. The page
  is your artifact.
- **Enterprise:** custom domain (`reports.youragency.com`), no "Published on
  Comma" mark, password-protected and expiring links, audit log, IP allowlist,
  on-prem.
- **Never:** a per-client theme applied by Comma to your content. If you want
  the client's brand on it, put it in the HTML you publish — which you were
  doing anyway.

## Worth knowing

- **Viewers are free, forever.** Adding forty client-side readers costs
  nothing. Seat-based portals charge for exactly this.
- **One report per deliverable.** Revisions are the version history. Filenames
  are not.
- **Keep archives private, not deleted.** A closed engagement that might be
  referenced later is worth more as a private report with its comment trail
  than as a zip in Drive.
- **Limits.** Entry HTML 5 MB; assets 25 MB per file, 250 MB and 500 files per
  report.

## Try it

Comma is free — unlimited reports, unlimited commenters, unlimited revision
history. Client readers are never charged.

**[Start free →](/login)** · **[Talk about Enterprise →](/contact)**

### Related

- [For consultants](/for/consultants) ·
  [For freelance developers](/for/freelance-developers)
- [Share an HTML file with a client](/share-html-file-with-client) ·
  [Scheduled HTML reports](/features/routines/scheduled-html-reports)
- [Sharing & access control](/docs/sharing) · [Security](/security)
