---
title: Salesforce Dashboard Limitations & Workarounds
type: article
created: '2026-03-04'
updated: '2026-03-04'
source_docs:
- raw/2026-03-04-weekly-call-w-melissa-127255244.md
tags:
- salesforce
- dashboards
- reporting
- orbit
- workarounds
- technical-debt
- crm-automation
layer: 2
client_source: null
industry_context: null
transferable: true
---

# Salesforce Dashboard Limitations & Workarounds

## Overview

Native Salesforce dashboards have significant aggregation limitations that force teams to build external data pipelines just to display basic counts and summaries. This is a known platform constraint — Salesforce acquired Tableau and subsequently deprioritized improvements to their native dashboard tooling, steering customers toward Tableau for advanced reporting.

The practical result: simple operations like "count the items in this list" are not possible natively, requiring workarounds that add complexity and fragility.

## The Core Limitation

Salesforce's native dashboards cannot perform basic aggregations on arbitrary report data — counting records in a filtered list being the most common example. Standard reports can display lists and some metrics (opens, clicks, scheduled sends), but computed counts or cross-object aggregations often fall outside what the native dashboard builder supports.

> "There's no way to get this number in Salesforce. No way. Like, you can't do it. Like, all the reports and stuff, they just don't work."
> — Mark Hope, 2026-03-04 sync

## The Workaround: API → Orbit → Salesforce

When native dashboards fall short, the pattern that has emerged is:

1. **Export data from Salesforce** via API to an external database (Orbit)
2. **Perform calculations in Orbit** — counts, aggregations, custom metrics
3. **Push results back to Salesforce** so they can be surfaced in a dashboard widget

This allows the final dashboard to display the computed number as if it were native, while the actual math happens outside Salesforce entirely.

### Known Implementation Cost

- Requires maintaining an active API connection between Salesforce and Orbit
- Any schema changes in Salesforce may break the pipeline
- The calculated values in the dashboard are only as fresh as the last sync
- Debugging failures requires tracing across two systems

This pattern was implemented for the **PaperTube** account. See also the related Apex scripting workaround required to make Salesforce Account Engagement (Pardot) behave as expected for that same client.

## Why This Happens

Salesforce's acquisition of Tableau created a product strategy misalignment: native dashboards stopped receiving meaningful investment, but Tableau licensing is a significant additional cost most mid-market clients won't absorb. The result is a capability gap that falls squarely on implementation teams to bridge.

Salesforce Account Engagement (formerly Pardot) is priced at approximately **$12,000/year**, which similarly pushes clients toward workarounds rather than native tooling. See [[wiki/knowledge/crm-automation/cost-driven-workaround-complexity]] for the broader pattern.

## Related Issues

- [[wiki/knowledge/crm-automation/hubspot-email-ses-pipeline]] — HubSpot clients face an analogous cost-avoidance problem, routing email through Orbit → SES rather than paying for HubSpot Marketing Professional
- [[wiki/clients/papertube/_index]] — Primary account where this Salesforce/Orbit workaround is active
- [[wiki/knowledge/crm-automation/cost-driven-workaround-complexity]] — General pattern: cost avoidance on native tools creates fragile multi-tool automations

## Recommendations

- **Document the pipeline** for each account using this pattern: what triggers the export, where Orbit stores the data, what the push-back automation looks like, and what the dashboard widget is reading. If something breaks, there is currently no map.
- **Evaluate Tableau** only if the client's reporting needs are complex enough to justify the cost — for most clients, the Orbit workaround is cheaper but requires ongoing maintenance ownership.
- **Set expectations with clients** that dashboard numbers may lag real-time Salesforce data by the sync interval.