1. TL;DR
Tableau Embedded (the Connected Apps JWT flow that ships with Tableau Cloud and Tableau Server) gives you the raw embed primitive: a signed URL you drop into an iframe. Everything around that — per-tenant branding, per-viewer row-level security, audit logs, token refresh, multi-vendor support if you add Power BI or QuickSight later — you build and maintain yourself.
Embedportal is the layer above. You keep using Tableau for authoring; Embedportal handles the multi-tenant plumbing. One configuration in Embedportal, one iframe in your app, and you ship an embedded analytics product your customers can actually use.
If you already own Tableau and you’re embedding for more than one tenant, Embedportal saves 2-6 engineer-months of distribution-layer work. If you only have one tenant and one dashboard, native Tableau Embedded is enough.
2. Feature table
| Capability | Tableau Embeddednative | Embedportalon top of Tableauchosen |
|---|---|---|
| Connected App / JWT signing | ✓ | ✓ |
| Token refresh auto-rotation | build yourself | ✓ |
| Multi-tenant organizations | build yourself | ✓ |
| Per-tenant white-label branding | build yourself | ✓ |
| Custom domain per tenant | build yourself | ✓ |
| Row-level security | ✓ (Tableau native) | ✓ (unified) |
| Immutable audit trail | build yourself | ✓ |
| 2FA for portal viewers | — | ✓ |
| SSO for portal viewers | build yourself | ✓ (SAML / OIDC / JWT) |
| Embed Power BI / QuickSight / Metabase too | — | ✓ |
| Engineering time to first tenant | 2-6 months | under 1 hour |
3. Setup effort
Tableau Embedded native: create a
Connected App, sign JWTs on your backend,
implement token refresh, build a mapping layer
from your auth identities to Tableau user
attributes, build a per-tenant branding layer,
build an audit trail writer, and build a
frontend component that hosts the
<tableau-viz>
web component. Then test all of that under
multi-tenant load. Realistically a 2-4 engineer
project for a first production release, 6 months
if you want it to survive SOC 2 review.
Embedportal: follow the six-step Tableau setup — create the Connected App, paste six fields, drop in an iframe. Under an hour, and RLS, branding, audit, SSO all work on day one.
4. Multi-tenant scale
This is where native Tableau Embedded gets hard. Tableau doesn’t have a native concept of “your customers” that’s separate from Tableau users. You need to map your tenant IDs to Tableau user attributes, manage the mapping as customers onboard and churn, and ensure your JWT-signing logic correctly scopes every request. Rate limits and caching behaviour differ by tenant count.
Embedportal treats tenants as first-class entities. One Tableau Connected App serves unlimited tenants; each tenant’s viewers never leak into another’s data even if the dashboards look identical. You don’t provision Tableau users per customer.
5. Row-level security
Tableau ships with powerful RLS primitives:
USERATTRIBUTE()
on data-source filters. What Tableau Embedded
native doesn’t give you is the
rule-definition surface. You have to decide what
attributes to pass, how to pass them, how to
default them, and how to override them per
dashboard — and write that yourself.
Embedportal exposes a rule definition UI on top
of Tableau’s primitive. You declare
attributes like
organization_id,
region,
role, and
Embedportal forwards them as signed JWT claims
with per-dashboard overrides. The Tableau side
is unchanged — USERATTRIBUTE()
in a calculated field. See the
RLS guide
for the full setup.
6. White-label branding
Tableau Embedded native gives you the option to hide the Tableau toolbar and tabs with URL parameters. That’s it. To actually deliver a white-labeled portal — per-tenant logo, palette, custom domain, themed org switcher, themed sidebar with the customer’s own dashboard list — you build the whole shell yourself.
Embedportal ships the shell. Each tenant gets their own logo, palette, custom domain, and themed portal UI. The embed drops into that shell, and your customers see their brand, not Tableau’s.
7. Multi-vendor future
A decision people underweight: your BI vendor choice may not survive the next three years. Teams migrate from Tableau to Metabase for cost, from Metabase to Power BI because finance already uses it, from Power BI to QuickSight because they moved to AWS. If your embedded analytics is tied to one vendor’s SDK, every migration is a new rebuild.
Embedportal’s entire point is vendor neutrality. Swap Tableau for Power BI by changing the dashboard’s integration source in Embedportal — no change in your product’s frontend code, no change for your customers. That optionality is worth something even if you never exercise it.
8. Pricing
Tableau Embedded native: included in your Tableau Cloud or Server licence; no extra per-embed fee. The cost is the engineering and maintenance work sitting on top of it.
Embedportal: flat pricing independent of your viewer count or Tableau licence. $249/month Starter (one BI integration), $499/month Professional (unlimited integrations, branding, SSO, audit, SLA), custom Enterprise. See full pricing.
Break-even is typically small: if your embedded analytics project would take even one month of one engineer, Embedportal’s annual fee is comfortably cheaper.
9. When to pick which
Pick native Tableau Embedded if
- You have one tenant, one customer, one dashboard. An internal-only embed or a single-client consulting deliverable.
- You have engineering capacity to build the multi-tenant layer yourself and strong reasons to own that code (for example, highly custom workflows Embedportal doesn’t support).
- You will never add a second BI vendor.
Pick Embedportal if
- You’re embedding for more than one tenant and want per-customer branding, RLS, and audit on day one.
- You want the optionality to add Power BI, QuickSight or Metabase later without rewriting your frontend.
- You’d rather your engineers work on your product than on embedded-analytics plumbing.
- You want a SOC-2-friendly audit log out of the box.
- You have existing atSpark customers — Embedportal is included on atSpark subscriptions at no extra cost.
10. FAQ
Is Embedportal a replacement for Tableau?
No. Embedportal sits on top of Tableau — you keep using Tableau to build and maintain dashboards; Embedportal embeds them into your SaaS with multi-tenant branding and RLS.
Does Embedportal require a Tableau licence?
Yes. Embedportal embeds your existing Tableau content via Connected Apps, so a Tableau Cloud or Server licence with Connected Apps enabled is required. Tableau licensing covers your team and content; Embedportal pricing is flat.
Can we switch from native embedding to Embedportal without rebuilding?
Yes. Embedportal points at your existing workbooks by view URL. The six-step setup takes under an hour; the frontend cutover is swapping a component or iframe.
Does Embedportal support only Tableau?
No — Tableau, Power BI, QuickSight and Metabase are all supported through the same interface. You can mix vendors within the same portal.
How does Embedportal handle Tableau’s 10-minute JWT expiry?
Embedportal signs short-lived tokens and auto-refreshes them 60 seconds before expiry. Your frontend never sees the Secret Value; your viewers never see the expiry.
Is my data sent to Embedportal?
No. Dashboards render directly from Tableau into your viewer’s browser. Embedportal signs the token that grants access — it does not proxy the data payload.
See Embedportal on your Tableau setup
14-day free trial on Professional. Bring the Tableau Connected App you already have; we’ll have your first tenant embedded by the end of the hour.