Case Study

Member Data, Embedded and Isolated: Tableau Inside a Salesforce Portal

How a workforce benchmarking network gave each member organisation its own live Tableau dashboards inside its Salesforce portal, with isolation proven on every dashboard and load time cut from 13.4 to 6.9 seconds.

A workforce benchmarking network collects survey data from member organisations on enrolment, outcomes, wages and equity, and lets each member compare itself with the network. A Salesforce partner built the member portal and brought us in for the reporting layer: six embedded Tableau dashboards that had to match a custom reporting interface without leaking one member's data to another.

Workforce Development / Benchmarking Network · US·Tableau CloudTableau Extensions APISalesforceEmbedded AnalyticsRow-Level Security
B
Benchmarking Network
|Member Portal · Program Outcomes
Tableau EmbeddedSalesforce Portal
Member Organisation · signed in

Embedded dashboards

6

one filter extension

Survey rows

48,301

230 surveys · Prep flow

Filter panel unlock

6.9s

▲ was 13.4s

main dashboard

Hardening checks

19/19

▲ all passing

scripted verifier

Extract refresh

Hourly

Tableau Cloud

Filters

3 / 8 selected

Program

Program AProgram BProgram CProgram D

Cohort year

20242025

Saved filters

Board report viewapplied
Youth programs onlyload
Year-over-yearload

Completion Rate · Member vs Network

Benchmark
Program A
72%network 64%▲ 8pp
Program B
58%network 61%▼ 3pp
Program C
81%network 70%▲ 11pp
Your programs Network median

Placement Wage Distribution

% of placements
< $15$15–20$20–25$25–30$30+

Isolation Checks

test member
Own programs onlyPASS
Network benchmark visiblePASS
Other members hiddenPASS
Saved filters scopedPASS

Equity Comparison

Suppressed < n
Group 1

$21.40

Group 2

$20.85

Group 3

—

small group

Group 4

$22.10

At a glance

Results That Speak for Themselves

6

embedded dashboards, each with a custom filter panel

19/19

go-live hardening checks passing (the same checks failed on the prior revision)

13.4s to 6.9s

filter panel unlock time on the main dashboard

16,273

filter catalog rows served without blocking the page

From challenge to outcome

The Problem & Our Approach

Embedded Analytics Is a Security Product First

The network's existing reporting was a custom web interface. The Tableau version had to match its behaviour without leaking one member's data to another, and one leaked comparison would end the network's credibility.

  • Native Tableau filters could not do the job. The network needed dynamic filter catalogs, saved filters, an 8-selection cap with clear messaging, and an empty state when a selection returns nothing.
  • Data isolation was not optional. Each member must see only its own programs plus network benchmarks, and small groups must stay suppressed.
  • It had to be fast enough to use. The first working extension took 13.4 seconds to unlock its filter panel because of serial calls to Tableau.

A Filter Extension, a Tableau-Native Data Layer and Tested Isolation

One Tableau extension serves all six dashboards from a per-dashboard config, on top of a Prep-built data layer of 48,301 rows across 230 surveys, with automated checks that log in as a test member.

  • Tableau-native data layer: a Prep flow unions three branches and computes the filter catalog as a published data source, replacing a script-plus-server push.
  • Filter extension: saved filters, a filter cap and a live-only catalog, driven by a per-dashboard config.
  • Isolation: identity-bound sessions into the portal; automated checks log in as a test member and confirm only that member's programs appear.
  • Empty states: an in-chart "No data available for this selection" label on equity and wages charts.
  • Performance: skips unchanged filters, loads the filter catalog in the background, serialises reads; on return visits the init run makes 0 filter calls (was 11 to 13).
  • Go-live hardening: a scripted patch and verifier with 19 checks, isolation on 6 dashboards, user journeys on 6, and an hourly extract refresh.

What We Achieved

Six embedded dashboards, each with its own filter panel, inside a Salesforce member portal.
Member isolation proven by automated tests on all six dashboards, and 19 of 19 go-live hardening checks passing.
Filter panel unlock time on the main dashboard cut from 13.4 to 6.9 seconds.
A filter catalog of 16,273 rows served in the background without blocking the page.
A scripted verifier that is re-run on every publish.

Filter Panel Unlock Time, Before and After

DashboardBeforeAfter
Outcomes dashboard (main)13.4s6.9s
Pay comparison dashboard11.2s8.7s
Equity comparison dashboard11.3s8.3s
Distribution dashboard6.4s7.0s (unchanged code)

What Changed After Delivery

  • Isolation is tested, not assumed. Member isolation passes on all 6 dashboards, and user journeys pass (26/26 on the outcomes dashboard, 18/18 on the distribution dashboard).
  • Every publish is re-verified. The verification run on revision 58 found a re-saved test parameter value, and a cross-organisation guard kept member isolation passing while it was cleared.

The Pattern, Not the Industry

Any membership body, franchise network or marketplace that shows each participant its own numbers next to the group's faces this same problem.

  • Prove isolation with automated tests that log in as a member.
  • Keep filter logic in the data layer where Tableau can refresh it.
  • Measure load time per phase; call count matters more than data size.
  • Treat every publish as a possible regression and re-run the verifier.
  • If your members can see a dashboard, your testing has to see it as a member.

Discuss a similar Workforce Development / Benchmarking Network project

Lets Viz runs a paid discovery audit ($500–1,000, credited toward the project) to scope your requirements, data model, and architecture before writing a line of code.

From Lets Viz

Helping companies make data-driven decisions to achieve their Goals

Experience superior data analysis with our custom dashboards. Specialising in all tools and technologies, we turn data into visually compelling, actionable insights.

NDA-safe · No obligation · Clear next steps