Sharing and embedding

Share a dashboard internally, by link, or embedded in your own product.

Four ways to share, in increasing order of exposure. Pick the least exposed one that works.

Mode Audience Admin approval per person Consumes a seat
Project members Named members On invite Yes
Team Anyone signed in On invite Yes
Link People you approve, individually Yes, on every first open No
Embed Your product’s users No — your app vouches for them No

Share with members

The default. Add people to the project with a role; the dashboard follows — see Roles.

Share → Create link produces a URL for the dashboard. The link is an invitation, not access: the first time someone opens it, they are asked to identify themselves and their request goes to a team admin. Nothing renders until an admin approves that person.

You send the link

Anywhere you like — email, Slack, a message. The URL alone reveals nothing.

They open it and request access

They see the dashboard’s name and an access request form, not the data.

An admin approves or declines

The request appears in Needs attention and by email. Approving grants that individual access to that dashboard.

They see the dashboard

Subsequent visits go straight through, for that person only.

Option Effect
Expiry 24 hours, 7 days, 30 days, or never
Lock filters Viewers cannot change the filter state
Allow export Permits CSV and image download
Auto-approve domain Requests from a named email domain skip manual approval

Forwarding does not grant access

If a recipient forwards the link, the next person gets their own approval prompt — they do not inherit the first person’s access. That is the point of per-person approval: the URL is not the credential.

Auto-approve is the one setting that removes the gate

An auto-approved domain means anyone with an address at that domain sees the dashboard without a human deciding. Use it for your own domain, never for a customer’s or a public mail provider.

Revoke an individual’s access from Share → Access, or invalidate the link entirely with Share → Reset link. Every approval, decline, and revocation is written to the audit trail.

Embedding

Embeds render a dashboard inside your own product, scoped per end user. Chartizer verifies a signed token, so your users never need Chartizer accounts.

Create an embed key

Settings → Embeds → New key. You get a key ID and a signing secret — the secret is shown once.

Sign a token on your server

Include the dashboard, the viewer’s identity, and any attributes your row-level rules need.

Node
import jwt from "jsonwebtoken";

const token = jwt.sign(
  {
    dashboard: "weekly-dealers",
    user: { id: "dealer-4471", email: "ana@dealer.example" },
    attributes: { region: "EU", dealer_id: "4471" },
    filters: { range: "last_90d" },
    lock_filters: ["dealer_id"],
    exp: Math.floor(Date.now() / 1000) + 600,
  },
  process.env.CHARTIZER_EMBED_SECRET,
  { keyid: process.env.CHARTIZER_EMBED_KEY_ID }
);

Render the iframe

HTML
<iframe
  src="https://embed.chartizer.com/v1/dashboard?token=TOKEN"
  width="100%"
  height="720"
  frameborder="0"
  allow="clipboard-write"
></iframe>

Restrict the domains

List the origins allowed to frame your embeds. Requests from anywhere else are refused.

Sign on the server, always

The signing secret must never reach the browser. Anyone holding it can mint a token for any dashboard and any set of attributes — including another customer’s.

Keep token lifetimes short

Ten minutes is plenty. The iframe requests a fresh token on reload, and short expiry limits the damage of a leaked URL.

Scheduled delivery

Send a dashboard on a schedule instead of asking people to visit it.

Channel Format
Email PNG plus optional CSV attachment
Slack Image and link to a channel
Webhook JSON payload of the underlying data
Monday morning digest
{
  "dashboard": "weekly-dealers",
  "schedule": { "cron": "0 8 * * 1", "timezone": "Europe/Riga" },
  "filters": { "range": "last_7d" },
  "recipients": ["team@acme.example"],
  "format": "png+csv"
}

Scheduled sends run as their creator

Recipients see what you can see, not what they can. Row-level rules do not apply to a broadcast email. For per-recipient scoping, use an embed.

Auditing

Share → Activity lists every link created, rotated, and opened, with timestamps and IP ranges. Embed token issuance is logged under the embed key. Both feed the team audit trail.