Skip to main content

Single Dashboard Embedding

Introduction

Embedded Dashboard

Single Dashboard embedding lets you integrate a Holistics dashboard into your own web application — so it looks and feels like a native part of your product. It's a popular choice for B2B companies that need to deliver analytics to their customers.

  • Skip building from scratch — embed a fully-featured dashboard without custom development
  • Seamless experience — your users see their data inside your app, no separate Holistics login needed
  • Data security built in — viewers only see the data you allow through row-level permissions
  • White-labeling — remove Holistics branding to keep your UI consistent

How it works

Embed architecture diagram

On the frontend, the dashboard is loaded in an iframe. The iframe URL contains two pieces of information: an embed_code that identifies the dashboard, and a time-sensitive token that controls what the viewer can see.

On the backend, your server generates the token using a secret key. The token is a JWT that encodes dashboard settings, filter defaults, and row-level permissions for the current user.

Here's the high-level flow:

  1. Create an embed link — From your dashboard's settings, generate an embed_code (identifies the dashboard) and a secret_key (used to sign tokens).
  2. Generate a token on your backend — Build a JWT payload with settings, permissions, and filters, then sign it with the secret key. The Embedded Analytics Sandbox helps you generate this code interactively.
  3. Embed the iframe in your frontend — Construct the embed URL with embed_code and token, and add it to your page via an iframe.
Ready to implement?

Head to the Quickstart for a full walkthrough with code examples in JavaScript, Python, and Ruby.

For more advanced use cases — like embedding multiple dashboards or enabling self-service analytics — check out Embed Portal (Beta).

Next Steps


Need help? Check our FAQs or contact support for assistance with your implementation.


Let us know what you think about this document :)