Chris Vizes Data visualisation and more

You're telling me I can vibe-code a dashboard?

Recently a new button appears on the toolbar of dashboards in Tableau Next: Extensions.

When you click it, it shows all Lightning Web Components (LWCs) that have a target of an “analytics dashboard”. Make sure your agent is including that correct target. It takes a little while to find them as it is compiling and running various checks to generate the list of options for you.

You add your extension, but “We couldn’t display this content.”

We can open developer tools in our browser to help. In the console errors are shown which we can check. This error could be shared back with the agent that built it or something you could change yourself.

So what does the Agent generate?

A lightning web combonent, which is made up of standard web assets:

You can work on your extensions all together

When working on your extensions you are working from a repo that could contain all of your extensions. When applying changes you could then apply them across all.

Things you want you LWC to do

Package Manager

Within the setup of a Salesforce Org, there is a page under Packaging -> Package Manager.

Here you can create packages using first generation packaging where you build the package in the orgs UI in the browser. Second generation packaging is where you can use a repo, like from GitHub.

You add a component with type Lightning Web Component and add the resources and pages.

This generates a package of this extention that has an installation URL which can be shared with others so they can install it.

Relevant docs

  1. Integrate Custom LWC in Dashboards with the Extensions SDK
  2. Tableau Next Model Context Protocol (MCP) Server
  3. Semantic Model docs
  4. Semantic Query API Quick Start Guide
  5. Developer Guide on Extensions

Some Lessons

Ensuring your targest include analytics dashboards

Set up the following in the js-meta.xml:

<targets>
    <target>analytics__Dashboard</target>
</targets>

Query Limits

The query limit property needed for setting up the extension is less than 10,000, maybe more like 1k or 5k.

Using Salesforce d3 JS repo

Use the following to import D3:

import D3 from "@salesforce/resourceUrl/d3";

Roadmap

This is a very new feature and many parts are live today, like:

  1. Custome LWCs - Build extensions with lightning web components
  2. Dashboard Extension SDK - Event-drive integrations (filters, parameters, selections, data)
  3. AppExchange Distributions - Pulish your extensions, reach thousands of customers
  4. AI-powered Development - LWC skills for rapid extension creation

Hopefully coming soon:

  1. Dynamic Data Binding - SDM picker UI & field mappings (helps removing hard coding of SDMs in extension)
  2. Platform Interoperability - Enhanced filter propagation, Tableau Classic/CRMA integration
  3. Skills & Plugin Exosystem - Reusable, confiurable extension templates
  4. Developer Experience - Starter templates, improved debugging, better extension management
  5. Agentic Dashboard Authoring - Generates extensions & configure dashboards on-the-fly with natural language

Do Extension in Next Replace Existing Charts?

No, use extensions as a way to achieve a goal that Next can’t do. It’s much easier in terms of development, maintainance and integration to use what’s in the product. But maybe you can do someting cool in an extension that isn’t currently supported.