Glumes ITSalesforce Ecosystem Experts
Back to Blog
Analytics

Turning CRM Data into Decisions with Tableau & CRM Analytics

Glumes TeamApril 22, 202610 min read

Pick the right tool

  • CRM Analytics (CRMA) — embedded in Salesforce, SAQL/SQL, Einstein Discovery. Best for in-context sales/service analytics.
  • Tableau Cloud + Tableau Pulse — best for enterprise BI, wide data blending, and executive storyboards.
  • Data Cloud + Tableau Semantic Layer — the modern default when data lives outside Salesforce.

Most enterprises need both. Draw the line at "does it need to render inside a Salesforce record page?".

Dataflow → Recipe → Dataset (CRMA)

Recipes replace Dataflows for new work. A minimal pipeline:

Sync (Opportunity, Account, User)
  ├─► Recipe: "Pipeline"
  │    ├─ Transform: derive Stage_Weighted_Amount = Amount * Probability
  │    ├─ Join Account.Industry
  │    └─ Register: pipeline_v1
  └─► Recipe: "Snapshots"
       └─ Append daily → pipeline_history

Two rules that prevent nightly failures:

  1. Filter at sync, not in the recipe. Sync fewer rows.
  2. Register datasets under a version suffix (_v1, _v2). Lens/dashboards bind by API name — versioning lets you cut over safely.

SAQL you'll actually reuse

Weighted pipeline by close month:

q = load "pipeline_v1";
q = filter q by 'IsClosed' == "false";
q = group q by ('CloseDate_Year','CloseDate_Month');
q = foreach q generate
      'CloseDate_Year' + '-' + 'CloseDate_Month' as 'Month',
      sum('Stage_Weighted_Amount') as 'Weighted',
      sum('Amount') as 'Open';
q = order q by 'Month' asc;

Einstein Discovery for predictions

Discovery trains a model from a dataset (GLM / GBM / Random Forest under the hood) and returns SHAP-style explanations per prediction.

Deploy the model as a Predict action, then wire it into:

  • A Flow (write Predicted_Churn__c on Account)
  • An Agentforce Action (Get churn factors for this account)
  • A Sales Cloud page component (top 3 improvement suggestions inline)

Tableau Pulse: metrics that push

Pulse turns dashboards into subscribed metrics with LLM-generated narratives. Define metrics as code:

metric: net_new_arr
  measure: sum(Opportunity.ARR) where IsWon and CloseDate = current_quarter
  dimensions: [Segment, Region, Product]
  goal: 12_500_000
  cadence: weekly

Users subscribe once — Pulse ships an insight (change vs. prior period, driver breakdown, anomaly detection) every Monday.

Governance that survives contact with users

  • One certified data source per grain (Opportunity, Case, Order). Everyone joins to it.
  • Row-level security via Sharing Inheritance in CRMA — mirrors Salesforce sharing rules automatically.
  • Version dashboards in Git via SFDX force:analytics metadata.
  • Deprecate — don't delete — old datasets. Rename pipeline_v1_deprecated_pipeline_v1 and set alerts on read.

Anti-patterns

  • Recreating your data warehouse inside CRMA
  • SAQL for anything a Recipe can express
  • Dashboards with more than 8 widgets on the primary tab
  • Predictions with no feedback loop (measure prediction vs. actual, retrain quarterly)
TableauAnalyticsCRM

Related articles