---
title: "Embedded Analytics"
slug: /embedded
sidebar_label: "Introduction"
image: "https://cdn.holistics.io/product/embedded-og-image-20240916-284.png"
description: "Embed Holistics dashboards and self-service analytics into your own application with one signed payload and an iframe"
hide_title: true
---
With **Embedded Analytics**, you can embed specific dashboards (or a full
analytics experience) directly into your own application. Your users get analytics
that look and feel like a native part of your product, without ever leaving your app.
Think: customer usage dashboards in your SaaS app, per-client reports filtered to
each organization's data, or internal operational dashboards for your team. Here's
what you get out of the box:
- **No build from scratch**: embed pre-built dashboards instead of writing custom analytics code
- **Your app, your brand**: white-label the look, domain, and experience to match your product
- **Secure multi-tenancy**: [row-level permissions](/embedded/row-level-permissions) filter each report to the viewer's own data, mapped to your existing user system
- **Self-service exploration**: let users build their own dashboards and explore data
- **Developer friendly**: define portals as code, with Git integration, a live preview in the Embed Builder, and preview environments
## What your users can do
Each capability below is a payload change away. Turn on what your product needs, when it
needs it.
Show one or many dashboards with filters, export, and drill-through, filtered to each viewer's own data.
Let users drill down, break down, and build their own charts from your datasets.
Let users open the rows behind any chart to check the numbers, filtered to their own data.
Answer questions in plain language, summarize charts, and dig into data with conversational analytics.
Let users schedule dashboards to their inbox as PDF, PNG, CSV, or Excel, with their own filters applied.
Give each user a personal workspace, or a shared one per organization, to save and collaborate on dashboards.
## How it works
There is one way to embed, and it takes a few minutes. Your backend signs an **embed payload**
that describes what to show and who is viewing. Your frontend loads the result in an **iframe**.
1. **Generate embed credentials** in Holistics: one Key ID and Secret for all your embeds.
2. **Build and sign the payload** on your backend. List the dashboards to show, the viewer's
identity, and their [row-level permissions](/embedded/row-level-permissions), then sign it
with your Secret.
3. **Load the iframe** in your frontend, pointing at the embed URL with the signed token.
Everything lives in the payload, so you start with a single dashboard and unlock more later
by adding a few keys. There is no second setup to learn and no migration when your needs grow.
:::info Already using per-dashboard embed links?
Your existing links keep working. When you're ready for the newer capabilities, follow [Migrate to the new embed payload](/embedded/single-dashboard/migrate-to-new-embed-payload).
:::
Generate credentials, sign a payload, and load your first dashboard end to end.
Every payload and URL parameter: objects, identity, permissions, settings.
See embedded dashboards, exploration, and Ask AI working inside a sample app.
## Customize the experience
Make the embed look and behave like part of your product: your brand, your viewers' language,
and two-way communication with your app.
White-label colors, fonts, layout, and the Ask AI assistant so the embed feels native.
Serve dashboards in each viewer's language with translation files and a language user attribute.
Sync filters, navigate between dashboards, and refresh tokens from your app through postMessage.
## Operations & security
Once the basics are working, these guides cover multi-tenancy, governance, and production
concerns.
Filter every query to the viewer's own rows, either directly in the payload or through dataset rules and user attributes.
Map embed users and organizations to your own user system, and control what each role can do.
Move what you embed into a version-controlled AML file when keeping the payload in sync becomes a burden.
Point one embedded dashboard at a different database for each customer.
How signed tokens, expiry, and row-level permissions keep each viewer's data isolated.