Share an HTML report only with people at your company

You have an HTML report — a dashboard export, a test run, an incident write-up, something an agent generated — and it should be readable by everyone at work and nobody else.

The usual options are all slightly wrong:

  • A public link works until someone pastes it in the wrong channel.
  • Inviting people one by one doesn't scale past the first ten, and misses whoever joins next month.
  • A shared password gets forwarded along with the link and can't be revoked for one person. (More on that in password-protecting an HTML report.)
  • The company intranet / SharePoint can't render the HTML — it downloads the file or strips the scripts. See SharePoint and OneDrive HTML previews.

What you actually want is the Google Drive setting: anyone at Acme with the link. Comma has it for HTML.

How to set it up

  1. Publish the report. Drag the .html file onto commareports.com, paste it, or have your agent call create_report.
  2. Open Share → General access and pick People with a company email.
  3. Check the domain. Your own work domain is filled in for you. Add more if the audience spans several (acme.com, acme.io).
  4. Pick what they can do: view, comment, or edit.
  5. Copy the link and post it wherever your team talks.

The share dialog then reads, for example: Only signed-in users with an email at @acme.com can comment.

Who gets in

Visitor Result
Signed in, verified @acme.com email Opens the report
Signed out, works at Acme "Sign in to open" → report
Signed in with @gmail.com or another company Not available
Anonymous visitor the link was forwarded to Not available
Signed up with @acme.com but never verified it Not available
Someone you invited by name (e.g. a contractor) Opens, with their invite role

Two details make this hold up:

  • It's verified email, not typed email. The check uses the domain of the viewer's confirmed address. Creating an account as someone@acme.com without access to that inbox gets you nothing.
  • It's enforced in the database. The report row is only returned to a viewer who passes the check, so there is no client-side gate to bypass and nothing in the page source of the "Not available" screen.

A blocked visitor sees exactly what they would see for a deleted report. The link doesn't confirm that anything exists.

Don't add a public email domain

The allowlist accepts any domain you type, including gmail.com. Adding one means anyone with a Gmail address, which is close to public. Keep the list to domains your organization controls.

Domain vs. team vs. invite

Comma has three ways to say "my people". They combine — invites always work on top of the general setting.

Setting Use it when
People with a company email The audience is "everyone at the company", including people you don't know yet
Team A specific group (the data team, the client squad) should see it, regardless of their email
Invite by email A handful of named people, or someone outside the domain

The full model, with link permissions and roles, is in sharing & access control.

Set it from a script or an agent

Reports created over the API start private. To open one to the company, call the share endpoint with a token that has the sharing scope:

curl -fsS -X PUT "https://commareports.com/api/v1/reports/$REPORT_ID/share" \
  -H "Authorization: Bearer $COMMA_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "visibility": "domain", "allowed_email_domains": ["acme.com"], "public_permission": "comment" }'

The list replaces whatever was there, so send the full set of domains each time. Agents do the same with the MCP tool set_report_sharing, which takes the same visibility and allowed_email_domains fields:

Publish coverage/index.html to Comma and share it with everyone at acme.com as commenters.

That one line is a good CI habit: every nightly report lands behind the company domain without anyone touching the share dialog. See publishing from CI and the Comma MCP server.

Good fits

  • Weekly metrics and BI exports that everyone should see but that shouldn't leave the company.
  • Test, coverage and security reports from CI — readable by any engineer, not by the internet.
  • Incident write-ups and postmortems with internal hostnames in them.
  • AI-generated research and analysis shared in a company-wide channel.

Try it

Domain-restricted sharing is on every plan, including Free, with unlimited reports and commenters.

Publish a company-only report →

Related