What this means for your store
Dashboard actions wire a widget selection to another lens, dashboard, or Salesforce record URL. Click a bar in “Deals stuck in Proposal” and land on the filtered opportunity list - not a CSV export and a manual search. Actions need stable ID columns (OpportunityId, AccountId) in the dataset. Display names duplicate across accounts and will send reps to the wrong record.
Scenario on a real storefront
A UK industrial-parts distributor adds a record action on a stale-deals table; selecting a row opens the Opportunity in Sales Cloud:
# Dashboard editor → Widget "Stale Deals Table"
# Columns: OpportunityName (display), OpportunityId (hidden)
# Action → Record Action
# Type: Salesforce Record
# Dataset field: OpportunityId
# Object: Opportunity
# Open in: New browser tab
# Action → Lens Navigation (drill)
# Target lens: Deal_Line_Detail
# Pass-through: OpportunityId = selection.OpportunityId
# SAQL must expose OpportunityId:
q = foreach q generate
'OpportunityId' as 'OpportunityId',
'Name' as 'OpportunityName',
'DaysInStage' as 'DaysInStage';
What to do next
- Actions break when ID columns get aggregated away - use
max(OpportunityId)at deal grain, never sum. - Experience Cloud partners need actions enabled in the app template and URLs that respect partner record access.
- Use drill to a detail lens for multi-metric exploration; save record actions for the final “open in CRM” click.
Bottom line
Dashboard actions turn read-only charts into a launch pad for Sales Cloud. Expose stable record IDs in SAQL, wire record and drill actions, test under real rep profiles.