Skip to content
Analytics
- Salesforce Reports and Dashboards REST API Developer Guide Previous PDF Versions
- Delete a Dashboard
- Get Dashboard Metadata
- Return Details About Dashboard Components
- Filter Dashboard Results
- Get List of Recently Used Dashboards
- Get Dashboard Results
- Get Dashboard Status
- Refresh a Dashboard
- Save a Dashboard
- Save a Dashboard with a Custom Lightning Web Component (Beta)
- Set a Sticky Dashboard Filter
- Clone a Dashboard
- Download a CRM Analytics Dashboard as a PDF
- Download a CRM Analytics Lens as a PNG
- Download a Lightning Experience Dashboard as a PNG
- Download a Lightning Experience Report as a PNG
- Dashboards Examples
- Downloads Examples
- Examples
- Notifications Examples
- Reports Examples
- Delete an Analytics Notification
- Check Limits for Analytics Notifications
- Get Analytics Notifications
- Create an Analytics Notification
- Save Changes to an Analytics Notification
- Create a New Report
- Get a List of Report Types
- Clone Reports
- Delete Reports
- Download Formatted Excel Reports Using the Reports REST API
- Decode the Fact Map
- Filter Reports on Demand
- Run Reports Synchronously or Asynchronously
- Get Report Metadata
- List Asynchronous Runs of a Report
- List Recently Viewed Reports
- Get Report Data without Saving Changes to or Creating a Report
- Save Changes to Reports
- Build the Resource URL
- API End-of-Life Policy
- Overview
- Requirements and Limitations
- Step One: Obtain a Salesforce Developer Edition Organization
- Step Three: Make an HTTP Request to Run a Report
- Step Two: Authorize
- Prerequisites
- Quick Start
- Dashboard Describe
- Dashboard and Component Error Codes
- Dashboard Filter Options Analysis
- Dashboard List
- Dashboards
- Dashboard Results
- Dashboard Status
- Analytics Download
- Analytics Download
- Filter Operator List
- Filter Operators
- Folder Child Operations
- Folder Collections
- Folder Operations
- Folders
- Folder Share Recipients
- Folder Share by ID
- Folder Shares
- Analytics Notification List
- Analytics Notification Limits
- Analytics Notification
- Analytics Notifications
- Reference
- Report
- Changes to Resource Property Names
- Report Fields
- Describe
- Execute Sync
- Instance Results
- Instances List
- Execute Async
- Report List
- Query
- Reports
- Hide and Unhide Report Types
- Report Type List
- Recently Created Reports
- Recently Used Report Types
- Report Type
- Report Types
- Appendix
- Report Error Codes
- Use Array Functions for Multi-Select Widgets and Looping
- App Template Framework Overview
- Get Started with the App Template Framework
- array Functions
- date Functions
- rules.json Attributes
- json Functions
- rules.json Syntax
- Macros Use Case: Recursive Operations
- Macros in Rules
- Work with App Template Framework Rules
- Rules Reference
- Static Functions
- string Functions
- Salesforce Orchestrator App Commands
- Salesforce Orchestrator Commands
- Salesforce Orchestrator Template Commands
- atf
- Analytics CLI Plugin Command Reference Previous PDF Versions
- analytics:enable (Deprecated)
- analytics:query (Deprecated)
- sfdx (Deprecated)
- Help for Salesforce CLI Commands
- Salesforce Analytics CLI Plugin Command Reference
- analytics enable
- analytics query
- sf
- Analytics External Data API Developer Guide Previous PDF Versions
- Add the Data
- Configure the Upload
- Connect to Salesforce
- Update the Data
- External Data API Limits
- Manage the Upload
- External Data
- Prepare Data Files
- External Data Metadata Overview
- The InsightsExternalData Object
- The InsightsExternalDataPart Object
- Release Notes
- External Data Metadata Format Reference
- Lightning Web Components in CRM Analytics Dashboards Previous PDF Versions
- Architecture
- Getting Started with Lightning Web Components
- Component Attributes
- CRM Analytics Configuration
- Lightning Dashboards Configuration
- Other Widgets
- Hello World Component Example
- Query Data
- Lightning Web Components in CRM Analytics and Lightning Dashboards
- Setup Instructions
- Setup
- Reference
- Release Notes
- Bind columnMaps in Dashboard Interactions
- Build Data Serialization Interactions
- Data Serialization Functions for SQL and SOQL
- Data Manipulation Functions
- Data Selection Functions
- Data Serialization Functions
- Interaction Errors
- Interaction Functions
- Interactions in Dashboards
- Interaction Limitations for Dashboards
- Analytics Interactions Release Notes
- Interaction Syntax in the Dashboard
- Change the Map Type Based on a Toggle Widget
- Highlight Widget Values with Color Coding
- Bind Queries from Different Datasets
- Bind the Initial Filter Selection
- Create Deeper Dependencies with Nested Interactions
- Dynamically Set the Reference Line and Label on a Widget
- Bind a Custom Query with Other Queries
- Measure and Group Bindings in Compact-Form and SAQL-Form Queries
- Date Range Filter Interactions
- Equality Filter Interactions
- Range Filter Interactions
- Group Interactions
- Limit and Offset Interactions
- Measure Interactions
- Order Interactions
- Projection Interactions
- Bind Parts of a Query
- Get Started with Dashboard Interactions
- dataSourceLinks JSON
- dataSourceLinks Properties
- filters Properties
- filters JSON
- pages Properties
- widgetStyle Properties
- widgets Properties
- selectors Properties
- style Properties
- gridLayouts Properties
- gridLayouts JSON
- CRM Analytics Dashboard JSON Overview
- View or Modify a Dashboard JSON File
- Dashboard JSON Properties
- columns Properties
- filters Properties
- steps Properties for Compact Form and SAQL Form
- steps JSON
- source Step Type Properties
- aggregateflex Step Type Properties
- apex Step Type Properties
- grain Step Type Properties
- saql Step Type Properties
- soql Step Type Properties
- staticflex Step Type Properties
- visualizationParameters Properties
- CRM Analytics Dashboard JSON Example
- parameters Properties
- widget Properties
- widgets JSON
- widgetStyle JSON and Properties
- Analytics Dashboard JSON Developer Guide Previous PDF Versions
- Analytics SAQL Developer Guide Previous PDF Versions
- SAQL Basic Elements
- Create a Derived Dimension
- Create a Derived Measure
- Replace Null Values with coalesce()
- Combine Data from Multiple Data Streams with cogroup
- Analyze Your Data Over Time
- Calculate How Long Activities Take
- Calculate Grand Totals and Subtotals with the rollup Modifier and grouping() Function
- Calculate the Slope of the Regression Line
- Forecast Future Data Points with timeseries
- Dynamically Display Your Top Five Reps with Windowing
- Show the Top and Bottom Quartile
- Append Datasets using union
- Examples
- first()
- avg() or average()
- count()
- grouping()
- last()
- max()
- median()
- min()
- percentile_cont()
- percentile_disc()
- regr_r2()
- regr_intercept()
- regr_slope()
- stddev()
- stddevp()
- sum()
- unique()
- var()
- varp()
- Access Date Functions with Time Zone Enabled
- Calculate the Time Between Two Dates
- date_diff(datepart, startdate, enddate)
- date_to_string(DateTime | DateOnly, format)
- toDateOnly(epoch)
- toDateOnly(string, format)
- toDateTime(epoch)
- toDateTime(string, format)
- day_in_month(date)
- day_in_quarter(date)
- day_in_week(date)
- day_in_year(date)
- Determine the Day in the Week, Month, Quarter, or Year
- daysBetween(date1, date2)
- Filter By Date
- Group By Date
- month_days(date)
- now()
- Handle Null Dates
- Order By Date
- quarter_days(date)
- quarter_last_day(date)
- Convert Dates to and from Strings
- Use Time Zone-Enabled Dates in SAQL Projections
- week_last_day(date)
- year_days(date)
- year_last_day(date)
- Time Zone Date Functions
- SAQL Functions
- Overview
- Multivalue Field
- SAQL Operators
- Quick Start
- SAQL Reference
- SAQL Statements
- Date Formats
- arimax Show Parameters Query Tool
- Boolean Literals
- Filter by a Custom Fiscal Year
- Group by a Custom Fiscal Year
- Dates Outside Ranges Defined by Custom Fiscal Year
- Work with Custom Fiscal Year Data
- Comments
- toString()
- Aggregate Functions
- coalesce
- daysBetween()
- date_diff()
- Display the Opportunities Closed This Month
- now()
- Date Functions
- date_to_epoch()
- date_to_string()
- date()
- Time-Based Filtering
- Day in the Week, Month, Quarter, or Year
- First Day in the Week, Month, Quarter, or Year
- Last Day in the Week, Month, Quarter, or Year
- abs(n)
- acos(n)
- asin(n)
- atan(n)
- ceil(n)
- cos(n)
- degrees(n)
- exp(n)
- floor(n)
- log(m, n)
- pi()
- power(m, n)
- radians(n)
- round(n[, m])
- sign(n)
- sin(n)
- sqrt(n)
- tan(n)
- trunc(n[, m])
- Math Functions
- Number of Days in the Month, Quarter, or Year
- ascii()
- chr()
- ends_with()
- index_of()
- len()
- lower()
- ltrim()
- mv_to_string()
- number_to_string
- replace()
- rtrim()
- string_to_number
- substr()
- starts_with()
- trim()
- upper()
- String Functions
- toDate()
- Windowing Functions
- Identifiers
- Keywords
- SAQL Null Measures and Dimensions
- Number Literals
- Arithmetic Operators
- Simple case Operator
- Searched case Operator
- Comparison Operators
- Logical Operators
- Null Operators
- String Operators
- Introduction
- Speed Up Queries with Dataflow Transformations
- Use Group and Filter Pre-projection
- Limit Multivalue Fields
- Check for Redundant Filters
- Remove Redundant Projections
- Limit the Use of unique()
- Query Performance
- Quoted String Escape Sequences
- Analytics SAQL Release Notes
- Special Characters
- arimax
- cogroup
- fill
- filter
- foreach
- group-by rollup
- group-by
- join semi and anti
- limit
- load
- offset
- order
- sample
- timeseries
- union
- Statements
- String Literals
- Write Your First Query
- Use SAQL in the CRM Analytics Dashboard
- Analytics SDK Developer Guide Previous PDF Versions
- CRM Analytics Apex QueryBuilder Examples
- CRM Analytics Apex Lens
- CRM Analytics Apex Query
- CRM Analytics Apex Templates
- CRM Analytics in Apex
- CRM Analytics Assets SDK Aura Component
- CRM Analytics Lightning Web Components
- Analytics SDK Developer Guide Overview
- Analytics SDK Release Notes
- CRM Analytics Template SDK Aura Component
- CRM Analytics Aura Events - Asset Loaded Event
- CRM Analytics Aura Events - Discover Event
- CRM Analytics Aura Events - Discover Response Event
- CRM Analytics Aura Events - Page Change Event
- CRM Analytics Aura Events - Update Event
- CRM Analytics Aura Events - SelectionChanged Event
- CRM Analytics Aura Events
- SQL for Analytics Developer Guide Previous PDF Versions
- avg()
- count()
- Aggregate Functions
- max()
- min()
- percentile_cont
- percentile_disc
- regr_intercept()
- regr_r2()
- regr_slope()
- stddev_pop()
- stddev_samp()
- sum()
- var_pop()
- var_samp()
- BETWEEN Operator
- Boolean Expressions in SELECT Clause
- CASE Statements
- COALESCE()
- Access Parts of a Date
- Project a Custom Fiscal Date Part
- Day of Month
- Day of Quarter
- Day of Week
- Day of Year
- Filter By Date Parts or Date Field
- First and Last Day in the Week, Month, Quarter or Year Functions
- fiscal_month_first_day({date})
- fiscal_month_last_day({date})
- fiscal_quarter_first_day({date})
- fiscal_quarter_last_day({date})
- fiscal_week_first_day({date})
- fiscal_week_last_day({date})
- fiscal_year_first_day({date})
- fiscal_year_last_day({date})
- Group By Date Part
- Date Functions
- month_first_day({date})
- month_last_day({date})
- Day in Week, Month, Quarter or Year Functions
- Order By Date Part
- Project a Date Field
- quarter_first_day({date})
- quarter_last_day({date})
- week_first_day({date})
- week_last_day({date})
- year_first_day({date})
- year_last_day({date})
- FETCH Clause
- FILL
- FROM Clause
- GROUP BY ROLLUP
- GROUP BY Clause
- GROUPING()
- HAVING Clause
- Introducing SQL for CRM Analytics
- LIKE Clause
- LIMIT Clause
- abs({n})
- acos({n})
- asin({n})
- atan({n})
- ceil({n}), ceiling({n})
- cos({n})
- degrees({n})
- exp({n})
- floor({n})
- Math Functions
- ln({n})
- log({m},{n})
- log10({n})
- pi()
- power({m},{n})
- radians({n})
- round({n}[,{m}])
- sign({n})
- sin({n})
- sqrt({n})
- tan({n})
- trunc({n}[,{m}])
- NULLIF()
- OFFSET Clause
- ORDER BY Clause
- Quick Start: Run Your First Query
- SQL for Analytics Release Notes
- SELECT Clause
- SQL Statements
- ascii({char})
- char_length({str})
- chr({int})
- ends_with({source_str}, {search_str})
- index_of({source_str}, {search_str}, [{position},{occurrence}])
- String Functions and Operators
- lower({str})
- mv_to_string({multivalue_column_name}, [{delimeter}])
- position({search_str} IN {source_str})
- replace({str}, {old_str}, {new_str})
- starts_with({source_str}, {search_str})
- substring({str} FROM {start} FOR {length})
- trim(LEADING | TRAILING | BOTH, {chars}, {str})
- upper({str})
- Subquery
- TIMESERIES
- UNION Operator
- SQL vs SAQL
- WHERE Clause
- Window Functions
- Macro Examples
- Actions in Rules
- Add a Remote Connector to a CRM Analytics Template
- Add an Einstein Discovery Story to a CRM Analytics Template
- Add a Recipe to a CRM Analytics Template
- Access Methods
- Use the Apex Access Methods
- WaveTemplateConfigurationModifier Methods
- Use the Apex WaveTemplateConfigurationModifier Class
- API End-of-Life Policy
- Use the App Install History Page
- Templated App Type
- Use Array Functions for Multi-Select Widgets and Looping
- Array Variable Type for variables.json
- Work with Embedded App Auto-Install Requests
- Wizard Best Practices
- Choose Your Tool
- Create Dependent Templates
- Use VisualForce To Customize the Wizard UI
- Creating a Template from a Dependent App
- Best Practices
- Template Dependency Syntax
- Step 4: Deploy the WaveTemplate Object
- Edit auto-install.json
- Edit folder.json
- Step 3: Edit the JSON Files
- Edit org-readiness.json
- Edit Rules Files
- Edit template-info.json
- Edit ui.json
- Edit variables.json
- Configure Recipe Execution
- Feature Parameters for Analytics Templates
- Template Folder Structure
- Why CRM Analytics Templates?
- Macros in Rules
- The Source App
- Prerequisites
- Step 2: Retrieve (Export) the WaveTemplate Object
- Rule Macro And Macro Definition Attributes
- Rules Files Structure
- Structuring and Organizing Rules
- Share CRM Analytics Assets Between Apps
- Step 6: Share the Template
- The Template Object
- Step 8: Update an Existing Template
- Use Live Datasets in a CRM Analytics Template
- Use Case and Syntax for Variables with Related Values
- The Configuration Wizard
- Analytics Templates Developer Guide Previous PDF Versions
- Actions Syntax for Rules
- Access Apex Examples
- TemplateApexException Apex Examples
- TemplateInterruptException Apex Example
- WaveTemplateConfigurationModifier Apex Examples
- WaveTemplateConfigurationModifier Interfaces
- Test WaveTemplateConfigurationModifier
- auto-install.json Attributes
- Complex variables.json Variable Types
- excludes and excludeSelected Attributes in Variables
- folder.json Attributes
- array Functions
- json Functions
- Static Functions
- string Functions
- Use Functions in Rules
- Rules Testing with jsonxform/transformation endpoint
- Features Not Supported in This Release
- org-readiness.json Attributes
- Page Condition Syntax for ui.json
- Reading the Template Debug Logs
- Appendix
- Analytics Templates Release Notes
- rules.json Attributes
- rules.json Example
- Macro Use Case: Add an Array of SObject Names to Extract Workflow
- Macro Use Case: Delete Workflow Nodes
- Macro Use Case: Recursive Operations
- Rules Syntax
- Simple Variable Types for variables.json
- template-info.json Attributes
- template-info.json Example
- ui.json Attributes
- variables.json Attributes
- Variables Array in ui.json
- VisualForce Events for Customizing the Wizard UI
- Step 7: Create New (Downstream) Apps from the Template
- Create a Template with the Command Line Interface
- Create and Update a Template with Visual Studio Code
- Step 1: Create the WaveTemplate Object
- Debug the Template
- Use the Salesforce CLI to Retrieve the Template Files
- Use Visual Studio Code to Retrieve the Template Files
- The Process at a Glance
- Step 5: Test the Template
- Format the Results of a Query with Multiple Datasets
- Analytics Extended Metadata (XMD) Developer Guide Previous PDF Versions
- Add Actions to Dimensions
- Change Chart Colors for Dimension Values
- Change the Label for the Row Count Measure
- Change Display Labels for Dataset Fields and Values
- Format Measures
- Format Fields and Field Values with XMD
- Extended Metadata (XMD) Overview
- Basic Structure of the XMD JSON File
- Multiply Measures by a Fixed Amount
- Packaging Considerations for XMD
- Hide Dataset Fields from Lens and Dashboard
- Change the Default Fields for a Values Table
- Dates in XMD
- Dimensions and Derived Dimensions in XMD
- Measures and Derived Measures in XMD
- Organizations in XMD
- ShowDetailsDefaultFields in XMD
- Extended Metadata (XMD) Reference
- Access Data 360 XMD in the UI
- Configure the XMD for a Dataset
- Attributes for Analytics Dashboards Aura Component
- Aura Component for CRM Analytics Dashboards
- getState Method
- Reference for Analytics Dashboards Lightning Web Component
- Lightning Web Component getState Method
- Methods for Analytics Dashboards Lightning Web Component
- Lightning Web Components for Analytics Dashboards
- Reference for Analytics Dashboards Lightning Web Component
- Lightning Web Component setState Method
- Methods for Analytics Dashboards Aura Component
- Get Started with CRM Analytics Dashboard Components
- Reference for Analytics Dashboards Aura Component
- refresh Method
- Analytics Dashboard Component Release Notes
- setState Method
- Get and Set the Dashboard State
- Analytics Dashboard Use Cases for Aura Components
- CLI Deprecation Policy
- Generate the Access Token and Frontdoor URL for Tableau Next Embedding
- Browser Requirements for Tableau Next Embedding
- Add Event Listeners for Tableau Next Components
- Using Filters in Tableau Next Components
- Add Functionality to Tableau Next Embedded Components
- Best Practices for the Tableau Next Embedding SDK
- Copy Component Code Snippet from Tableau Next
- Embed the Tableau Agent
- Add a Tableau Next Component to Your Web App
- Install the Tableau Next Embedding SDK
- Logout from Salesforce Orgs
- Add Tableau Next Components from Multiple Salesforce Orgs
- Integrating the Tableau Next Embedding SDK
- Get Started with the Tableau Next Embedding SDK
- Tableau Next Embedding SDK Release Notes
- Configure a JWT Bearer Flow
- Update Salesforce Settings for Tableau Next Embedding
- Set Up Salesforce for Embedding Tableau Next Externally
- Set Up and Manage Authentication with External Client Apps
- Assign Tableau Next User Permissions
- Troubleshooting for Tableau Next Embedding
- Use Cases for Tableau Next Embedding
- Tableau Next MCPs, APIs, and SDKs
- Workflow for Creating Data 360 Data Kits with Tableau Next Assets
- Use CLI to Deploy Tableau Next Assets from Sandbox to Production
- Deploy Tableau Next Assets
- Enhance Your Dashboard Functionality with Custom LWC Extensions
- Tableau Next Development Environments
- Tableau Next Features Overview
- Get Started with Tableau Next Development
- Package Your Tableau Next App
- Workflow for Tableau Next Scratch Orgs
- Authenticate for Tableau Next Salesforce Connect API Endpoints
- Authenticate for Tableau Next Salesforce REST API Endpoints
- Authentication
- Getting Started with Tableau Next REST API
- Tableau Next Connect REST API Resources Overview
- Tableau Next Connect REST API