Salesforce · · 26 min read

Reports and Dashboards in Salesforce

A complete guide to Salesforce reporting — creating reports, custom report types, report folders, scheduling, exporting, dashboards, dashboard folders, and the power of one formula.

Part 17: Reports and Dashboards in Salesforce

Reports and dashboards are the analytics backbone of Salesforce. They transform raw data into actionable insights, giving stakeholders visibility into business performance without writing a single line of code. As an administrator, mastering reports and dashboards is one of the most valuable skills you can develop — users will constantly request new reports, modified views, and executive-level dashboards. This post covers everything you need to know about Salesforce reporting, from the fundamentals to advanced techniques like the Power of One formula, custom report types, and dynamic dashboards.


What Are Reports?

A report is a list of records that meet the criteria you define. Reports can display data in rows and columns, summarize values, create groupings, and render charts. Every report is built on top of a report type, which determines which objects and fields are available.

Salesforce provides four report formats:

FormatDescriptionGroupingsUse Case
TabularA simple flat list of records in rows and columns. No groupings or summaries.NoneQuick data exports, mailing lists, simple record lists
SummaryGroups rows by one or more columns. Supports subtotals and grand totals.Up to 3 row groupingsSales by region, cases by status, opportunities by stage
MatrixGroups data by both rows and columns, creating a grid.Up to 2 row and 2 column groupingsRevenue by product and quarter, cases by priority and owner
JoinedCombines multiple report blocks (each with its own report type) into a single view.Varies per blockComparing open vs closed opportunities side by side, multi-object summaries

When to Use Each Format

  • Tabular is the fastest to create but the least powerful. You cannot create a dashboard component from a tabular report — it must have at least one grouping.
  • Summary is the most commonly used format. Anytime you need subtotals or chart data grouped by a field, use summary.
  • Matrix is ideal for cross-tabular analysis where you need to compare two dimensions simultaneously.
  • Joined reports are powerful but complex. Use them when you need to show data from multiple report types in a single view, such as comparing open opportunities alongside recently closed ones.

What Are Report Folders?

Report folders control who can see, edit, and manage reports. Every report lives inside a folder, and the folder determines access.

Folder Access Levels

Access LevelCapabilities
ViewerCan run the report and view results. Cannot modify the report or folder.
EditorCan run, modify, and save the report. Cannot change folder sharing or delete the folder.
ManagerFull control — can run, modify, save, rename, delete reports, and change folder sharing settings.

Default Folders

  • Public Reports — Accessible to all users with the “Run Reports” permission.
  • My Personal Custom Reports — Private folder visible only to the owner. Other users cannot see or access these reports.
  • Unfiled Public Reports — A legacy folder where reports without a folder assignment end up. Avoid placing reports here.

Folder Sharing Model

Folder sharing follows the analytics sharing model, which is separate from the org-wide defaults for objects. You can share folders with:

  • Roles — All users in a specific role.
  • Roles and Subordinates — A role plus everyone below it in the role hierarchy.
  • Public Groups — Predefined groups of users.
  • Individual Users — Specific people.

To configure the analytics sharing model, navigate to Setup > Sharing Settings and look for the Report and Dashboard folder sharing options. If “Enhanced Folder Sharing” is enabled (which it is by default in most orgs), you get the granular Viewer/Editor/Manager model described above.


How to Create a Report

Step-by-Step: Using the Report Builder

  1. Navigate to the Reports tab from the App Launcher or navigation bar.
  2. Click New Report.
  3. Select a Report Type. This determines which objects and fields are available. For example, choosing “Opportunities” gives you all standard and custom fields on the Opportunity object. Choosing “Opportunities with Products” gives you fields from both Opportunity and Opportunity Line Item.
  4. Click Start Report. This opens the Report Builder.

The Report Builder Interface

The report builder has several key areas:

  • Outline Panel (left side) — Shows the current columns in the report. You can drag fields to reorder them, remove columns, and add groupings.
  • Filters Panel (top) — Displays active filters. Every report starts with a default “Show Me” filter (e.g., “My Opportunities” or “All Opportunities”) and a date range filter.
  • Preview Panel (center) — Shows a live preview of your report data. Click Update Preview or enable Auto-Update to refresh.
  • Fields Panel (left side, toggle) — Lists all available fields from the report type. Drag fields into the outline or double-click to add them as columns.

Adding Columns

  • Open the Fields panel on the left sidebar.
  • Browse fields by object or use the search bar.
  • Drag a field into the Columns section of the Outline panel, or double-click it.
  • To remove a column, click the dropdown arrow next to the column name in the Outline and select Remove Column.

Adding Groupings

Groupings summarize data by a field value. To add a grouping:

  1. Drag a field from the Fields panel to the Group Rows area in the Outline (for Summary and Matrix reports) or the Group Columns area (for Matrix reports).
  2. Alternatively, click the dropdown arrow on any column in the Outline and select Group Rows by This Field.
  3. Summary reports support up to 3 row groupings. Matrix reports support up to 2 row groupings and 2 column groupings.

Filtering Reports

Filters narrow down the records displayed. Salesforce offers several filtering options:

  • Standard Filters — The “Show Me” filter controls record ownership (e.g., “My records,” “My team’s records,” “All records”). The date filter controls the time range.
  • Field Filters — Click Add Filter in the Filters panel. Choose a field, an operator (equals, not equal, contains, greater than, less than, etc.), and a value. You can add up to 20 field filters.
  • Filter Logic — By default, all filters use AND logic. Click Add Filter Logic to use OR, NOT, or complex combinations like (1 AND 2) OR 3.
  • Cross Filters — These filter records based on related child objects. For example, “Accounts with Opportunities” or “Contacts without Activities.” Cross filters are extremely powerful for finding records that do or do not have related records.
  • Row Limit Filters — In tabular reports, you can limit results to the top or bottom N rows sorted by a specific field.

Bucket Fields

Bucket fields let you categorize report records on the fly without creating formulas or custom fields. They group field values into named categories called “buckets.”

For example, you could bucket the Annual Revenue field into:

  • Small: $0 - $100,000
  • Medium: $100,001 - $1,000,000
  • Large: $1,000,001+

To create a bucket field:

  1. Click the dropdown arrow on a column in the Outline.
  2. Select Bucket This Field.
  3. Define your bucket names and ranges.
  4. The bucket field appears as a new column you can also use as a grouping.

You can create up to 5 bucket fields per report.

Summary Formulas

Summary formulas perform calculations on summarized data across groupings. They are different from row-level formulas.

To add a summary formula:

  1. In the Outline panel, click the dropdown arrow next to the Columns section.
  2. Select Add Summary Formula.
  3. Give the formula a name and description.
  4. Choose the display type (number, currency, percent).
  5. Choose where to display it: All Summary Levels or at specific grouping levels.
  6. Write the formula. You can reference aggregate functions like AMOUNT:SUM, AMOUNT:AVG, AMOUNT:MAX, AMOUNT:MIN, and RowCount.

Example summary formula for win rate:

WON:SUM / RowCount * 100

Row-Level Formulas

Row-level formulas calculate a value for each individual row in the report. They behave like formula fields but exist only within the report.

To add a row-level formula:

  1. Click the Columns dropdown in the Outline panel.
  2. Select Add Row-Level Formula.
  3. Define the formula using field API names from the report type.
  4. Choose the output format (number, currency, percent).

Example: calculating days until close from a report on opportunities:

Opportunity.CloseDate - TODAY()

Report Charts

You can add a chart to any Summary, Matrix, or Joined report:

  1. Click the Chart toggle button in the Report Builder toolbar.
  2. Select a chart type: Bar, Column, Line, Donut, Funnel, Scatter, or a combination.
  3. Configure the X-axis, Y-axis, and groupings.
  4. Charts can be displayed at the top of the report and can also be embedded on record page layouts as report chart components.

How to Create a Custom Report Type

Standard report types cover common object relationships, but you often need reports that span objects in ways Salesforce does not provide out of the box. Custom report types solve this.

Step-by-Step

  1. Navigate to Setup > Report Types (search for “Report Types” in the Quick Find box).
  2. Click New Custom Report Type.
  3. Primary Object — Select the main object (e.g., Accounts).
  4. Report Type Label — Give it a descriptive name like “Accounts with or without Contacts.”
  5. Report Type Name — The API name auto-populates.
  6. Description — Explain what this report type covers. This description appears when users select a report type.
  7. Store in Category — Choose the category where this report type appears (e.g., Accounts & Contacts, Opportunities, Other).
  8. Deployment Status — Set to “In Development” while building, then change to “Deployed” when ready for users.
  9. Click Next.

Defining Object Relationships

After creating the report type, you define the relationship chain:

  • A to B relationship — Choose the child object related to your primary object.
  • Relationship type — Select whether B records must exist:
    • Each “A” record must have at least one related “B” record — Inner join. Only shows A records that have B records.
    • “A” records may or may not have related “B” records — Left outer join. Shows all A records, even those without B records.
  • You can chain up to 4 objects in a single custom report type (A > B > C > D).

Editing the Layout

After defining relationships, click Edit Layout to control which fields from each object appear in the report type:

  • Add or remove fields from each object.
  • Rearrange field sections.
  • Set default columns that appear when users first create a report with this type.
  • Mark fields as checked by default so they show up automatically.

Important Notes on Custom Report Types

  • You can create up to 400 custom report types per org (may vary by edition).
  • Once deployed, users can select the custom report type when creating new reports.
  • You cannot change the primary object after saving.
  • Deleting a custom report type deletes all reports based on it — use “In Development” status to hide it instead.

How to Share Your Report

Sharing a report means placing it in a folder with the appropriate access settings.

Steps to Share

  1. Open the report you want to share.
  2. Click Save or Save As and choose the destination folder.
  3. To modify folder sharing, navigate to the Reports tab and find the folder in the left sidebar.
  4. Click the dropdown arrow next to the folder name and select Share.
  5. Add users, roles, roles and subordinates, or public groups.
  6. Assign them Viewer, Editor, or Manager access.
  7. Click Share to save.

Sharing Tips

  • Create a logical folder structure: by department (Sales Reports, Service Reports), by function (Pipeline Reports, Forecast Reports), or by audience (Executive Reports, Team Reports).
  • Use roles and public groups instead of individual users for easier maintenance.
  • Reports in your private folder cannot be shared. Move them to a shared folder first.

How to Clone a Report

Cloning saves time when you need a similar report with minor changes.

  1. Open the report you want to clone.
  2. Click the dropdown arrow next to the Save button.
  3. Select Save As.
  4. Enter a new Report Name.
  5. Choose the destination folder.
  6. Click Save.

The cloned report is a completely independent copy. Changes to the original do not affect the clone, and vice versa.


How to Schedule a Report

Scheduling delivers report results via email on a recurring basis.

Steps to Schedule

  1. Open the report you want to schedule.
  2. Click the dropdown arrow next to the Subscribe button (or look for the Subscribe option).
  3. Click Subscribe or, in Lightning, click the dropdown menu and select Subscribe.
  4. Set the Frequency: Daily, Weekly, or Monthly.
  5. Set the Day and Time for delivery.
  6. Choose the recipients: yourself, other users, or groups. Note that only users with access to the report folder can receive scheduled reports.
  7. Add Conditions (optional): you can set the report to send only when certain thresholds are met (e.g., only send when total amount exceeds $100,000).
  8. Click Save.

Scheduling Limits

  • Each user can subscribe to up to 7 scheduled reports.
  • Reports can be scheduled to run at specific times, but execution times may vary slightly due to server load.
  • Scheduled reports are sent as HTML email or CSV attachments depending on settings.

How to Export a Report

Exporting lets you download report data for offline analysis.

Steps to Export

  1. Open the report.
  2. Click the dropdown arrow next to the report name or the action menu.
  3. Select Export.
  4. Choose the format:
    • Formatted Report (.xlsx) — Preserves groupings, subtotals, and formatting in an Excel file.
    • Details Only (.xlsx) — Exports raw row-level data without groupings or subtotals.
    • Details Only (.csv) — Exports raw data in CSV format for use in other tools.
  5. Click Export.

Export Considerations

  • Exported reports respect field-level security — users only see fields they have permission to view.
  • For very large datasets, consider using Data Loader or data export tools instead.
  • Exports include a maximum of 2,000 rows for tabular reports in some contexts. Use filters to narrow results if needed.

Reporting Limitations

Understanding Salesforce reporting limits helps you design reports effectively and set user expectations.

LimitationValue
Maximum columns in a report256
Maximum field filters per report20
Maximum bucket fields per report5
Maximum values per bucket field20
Maximum custom report types per org400
Maximum row groupings (Summary report)3
Maximum row groupings (Matrix report)2
Maximum column groupings (Matrix report)2
Maximum blocks in a Joined report5
Maximum report subscriptions per user7
Maximum records returned in the UI2,000
Maximum records for exportUp to 256,000 (varies by context)
Maximum custom summary formulas per report5
Maximum row-level formulas per report5
Maximum characters in filter value255
Formula field limit in one report100

The Power of One Formula

The Power of One is a simple but incredibly useful technique for accurate counting in reports that span multiple objects.

The Problem

When you create a report that joins a parent object to a child object (e.g., Accounts with Contacts), the record count reflects the child records, not the parent. If one account has 5 contacts, the report shows 5 rows — and the record count is 5. But you might want to know how many unique accounts have contacts. The standard record count cannot tell you this.

The Solution

Create a formula field on the parent object that always returns the value 1.

Step-by-Step

  1. Navigate to Setup > Object Manager > Account > Fields & Relationships.
  2. Click New.
  3. Select Formula as the field type. Click Next.
  4. Field Label: Power of One (or any name you prefer).
  5. Formula Return Type: Number with 0 decimal places.
  6. Enter the formula: 1
  7. Click Next, set field-level security, and Save.

Using Power of One in Reports

  1. Create a report using “Accounts with Contacts” report type.
  2. Add the Power of One field from the Account object as a column.
  3. Group the report by any field (e.g., Account Name or Industry).
  4. The Sum of the Power of One field at each grouping level tells you the count of unique accounts, regardless of how many child records exist.

This technique works on any object. Many admins create Power of One fields on Accounts, Contacts, Opportunities, and Cases to enable accurate counting across all reporting scenarios.

Why It Matters

Without Power of One, a report on “Accounts with Opportunities” where one account has 10 opportunities would show a record count of 10. With Power of One on the Account object, summing that field gives you 1 — correctly counting the unique account. This distinction is critical for dashboards that display metrics like “Number of Accounts with Open Opportunities.”


What Are Dashboards?

A dashboard is a visual display of data from multiple reports. Each dashboard contains components — individual charts, metrics, tables, or gauges — and each component is powered by a single source report.

Dashboards provide at-a-glance visibility into key metrics and are the primary tool for executive and managerial reporting in Salesforce.

Dashboard Components

Component TypeDescriptionBest For
Chart (Bar, Column, Line, Donut, Funnel)Visual representation of report data with various chart styles.Trends, comparisons, distributions
GaugeA dial that shows a single value relative to a target range.KPI tracking (e.g., quota attainment at 78%)
MetricDisplays a single grand total value from a report.Headline numbers (e.g., Total Revenue: $2.4M)
TableA tabular listing of report data within the dashboard.Top 10 lists, leaderboards
Visualforce PageEmbeds a custom Visualforce page as a dashboard component.Highly customized visualizations

Static Dashboards vs. Dynamic Dashboards

FeatureStatic DashboardDynamic Dashboard
Running UserRuns as a single specified user. All viewers see the same data based on that user’s permissions.Runs as the logged-in user. Each viewer sees data based on their own permissions.
ConfigurationSet a specific running user in dashboard properties.Select “Run as logged-in user” in dashboard properties.
Use CaseExecutive dashboards where everyone should see the full picture.Team dashboards where each rep should only see their own data.
LimitsNo additional limits.Limited number of dynamic dashboards varies by edition (e.g., 3 for Enterprise, 10 for Unlimited).

Running User Considerations

The running user determines what data is visible in a dashboard. This is a critical concept:

  • If the running user is a System Administrator, all records are visible regardless of sharing rules and OWDs.
  • If the running user is a Sales Rep, only records the rep can see (based on OWDs, sharing rules, and role hierarchy) are displayed.
  • For dynamic dashboards, there is no single running user — each viewer sees data filtered by their own access level.
  • When choosing a running user for static dashboards, consider data sensitivity. A dashboard on the home page that runs as an admin may inadvertently expose data to users who should not see it.

How to Make a Dashboard Folder

Dashboard folders work identically to report folders and follow the same sharing model.

Steps

  1. Navigate to the Dashboards tab.
  2. In the left sidebar, click New Folder.
  3. Enter a Folder Name (e.g., “Sales Dashboards” or “Executive Dashboards”).
  4. Click Save.
  5. To share the folder, click the dropdown arrow next to the folder name and select Share.
  6. Add users, roles, roles and subordinates, or public groups.
  7. Assign Viewer, Editor, or Manager access.
  8. Click Done.

Folder Organization Best Practices

  • Mirror your report folder structure so related reports and dashboards are easy to find.
  • Create separate folders for different teams or business units.
  • Use a “Manager” access level sparingly — only for admins and team leads who need to control folder contents.

How to Create a Dashboard

Step-by-Step

  1. Navigate to the Dashboards tab.
  2. Click New Dashboard.
  3. Enter a Name and optional Description.
  4. Select the Folder where the dashboard should be saved.
  5. Click Create.

Adding Components

  1. In the dashboard editor, click the + Component button.
  2. Select the source report. The report must already exist — dashboards pull data from saved reports.
  3. Choose a component type: chart (bar, column, line, donut, funnel, scatter), gauge, metric, or table.
  4. Configure the component:
    • Chart components — Select the X-axis field (grouping), Y-axis field (measure), and optional secondary grouping for stacked or grouped charts.
    • Gauge components — Set the minimum, maximum, and breakpoint values that define the low, medium, and high ranges.
    • Metric components — Choose which grand total value to display and optionally add a label.
    • Table components — Select which columns to display and the sort order.
  5. Give the component a title and optional subtitle and footer.
  6. Click Add to place the component on the dashboard canvas.
  7. Drag and resize components on the grid to arrange the layout.

Configuring Dashboard Properties

  • Click the Properties button (gear icon) in the dashboard editor.
  • Set the Running User — choose a specific user or “Run as logged-in user” for a dynamic dashboard.
  • Set the Dashboard Theme — light or dark background.
  • Set Auto-Refresh — optionally refresh the dashboard on a schedule.

Saving and Sharing

  1. Click Save when you are satisfied with the layout.
  2. Click Done to exit the editor.
  3. The dashboard is accessible to anyone who has access to its folder.
  4. Share the folder (as described above) to control visibility.

How to Put a Dashboard on a Page Layout

You can embed dashboards (or specific report charts) directly on record page layouts using Lightning App Builder.

Embedding a Dashboard on a Home Page

  1. Navigate to Setup > Lightning App Builder.
  2. Open the Home Page layout (or create a new one).
  3. Drag the Dashboard component from the component palette onto the page canvas.
  4. In the component properties panel, select the dashboard you want to display.
  5. Click Save and Activate the page.

Embedding a Report Chart on a Record Page

  1. Navigate to Setup > Lightning App Builder.
  2. Open or create a Record Page for the desired object (e.g., Account).
  3. Drag the Report Chart component onto the page.
  4. Select the source report. The report must be a Summary or Matrix report with a chart defined.
  5. The chart automatically filters to show data relevant to the current record (if the report is filtered by the record’s ID field).
  6. Click Save and Activate.

Considerations

  • Dashboard components on home pages refresh when the page loads, which can add to page load time if the dashboard has many components.
  • Report charts on record pages only work if the report type includes the object whose record page you are editing.
  • Users must have access to the underlying report and dashboard folders to see embedded components.

Dashboard Limitations

LimitationValue
Maximum components per dashboard20
Maximum columns in the dashboard grid12
Maximum filters per dashboard3
Maximum dynamic dashboards (Enterprise Edition)3
Maximum dynamic dashboards (Unlimited Edition)10
Maximum dashboard subscriptions per user7
Maximum dashboards per folderNo hard limit (but performance degrades with hundreds)
Maximum characters in a component title80
Refresh rateManual or scheduled; not real-time
Data freshnessReflects data as of the last refresh; dashboards do not auto-update in real-time

Section Notes

Here are the key takeaways from this section:

  1. Reports are the foundation — Every dashboard component is powered by a report. Build clean, well-organized reports first, then layer dashboards on top.
  2. Report types matter — Choosing the right report type (standard or custom) determines which fields and objects are available. Plan your report type before building.
  3. Folder sharing is your access control — Use report and dashboard folders with Viewer/Editor/Manager permissions to control who can see and modify analytics content.
  4. Power of One is essential — Create this formula field on every major object. It solves the most common reporting accuracy problem: counting unique parent records in parent-child reports.
  5. Dynamic dashboards show personalized data — Use them for team dashboards where each user should see only their own records. Use static dashboards with a specific running user when everyone should see the same data.
  6. Know the limits — 20 components per dashboard, 3 row groupings in summary reports, 5 bucket fields, 20 field filters. Design within these constraints.
  7. Schedule and subscribe — Automate report delivery so stakeholders get regular updates without logging in. Set conditions to avoid email noise.
  8. Cross filters are powerful — Use them to answer questions like “Which accounts do NOT have open opportunities?” without writing formulas.
  9. Joined reports unlock multi-object analysis — When you need to compare data across different report types in a single view, joined reports are the way.
  10. Always consider the running user — The running user on a dashboard determines data visibility. Misconfigurations here can either hide data users need or expose data they should not see.

PROJECT: Set Up a Custom Report Type and Schedule a Report

This hands-on project walks you through creating a custom report type, building a report with it, and scheduling that report for delivery.

Part A: Create a Custom Report Type

Objective: Create a custom report type that shows Accounts with or without Opportunities, including Opportunity Product (Line Item) details.

Steps:

  1. Navigate to Setup > Report Types.
  2. Click New Custom Report Type.
  3. Configure the report type:
    • Primary Object: Accounts
    • Report Type Label: Accounts with Opportunity Products
    • Report Type Name: Accounts_with_Opportunity_Products
    • Description: Shows accounts with their opportunities and line items. Accounts without opportunities are included.
    • Store in Category: Accounts & Contacts
    • Deployment Status: In Development
  4. Click Next.
  5. Define the object relationships:
    • B Object: Opportunities. Select “A” records may or may not have related “B” records” (outer join).
    • Click Add another related object.
    • C Object: Opportunity Products (Line Items). Select “B” records may or may not have related “C” records” (outer join).
  6. Click Save.
  7. Click Edit Layout to review and add fields from all three objects. Make sure key fields like Account Name, Opportunity Name, Stage, Product Name, Quantity, and Total Price are available.
  8. Change the Deployment Status to Deployed.
  9. Click Save.

Part B: Build a Report Using the Custom Report Type

Steps:

  1. Navigate to the Reports tab and click New Report.
  2. Search for your custom report type: “Accounts with Opportunity Products.”
  3. Select it and click Start Report.
  4. Add the following columns:
    • Account Name
    • Industry
    • Opportunity Name
    • Stage
    • Close Date
    • Product Name
    • Quantity
    • Total Price
  5. Add a Row Grouping by Account Name.
  6. Add a second Row Grouping by Opportunity Name.
  7. Add a Field Filter: Stage equals “Closed Won” OR Stage equals “Prospecting” (use filter logic: 1 OR 2).
  8. Add a Summary Formula:
    • Label: Average Deal Size
    • Format: Currency
    • Formula: AMOUNT:SUM / RowCount
    • Display at: All Summary Levels
  9. Click Update Preview to verify data.
  10. Click Save. Name it “Account Opportunity Product Analysis.” Save it in a shared folder (create one called “Admin Training Reports” if needed).
  11. Toggle the Chart on. Select a Stacked Bar chart with Account Name on the X-axis and Total Price Sum on the Y-axis, grouped by Stage.

Part C: Schedule the Report

Steps:

  1. With the report open, click the dropdown menu and select Subscribe.
  2. Set the frequency to Weekly, running every Monday at 8:00 AM.
  3. Add yourself as a recipient.
  4. Add a condition: only send if the Record Count is greater than 0 (so you are not emailed an empty report).
  5. Click Save.
  6. Verify the subscription by checking the report’s subscription details.

Part D: Create a Dashboard with the Report

Steps:

  1. Navigate to the Dashboards tab and click New Dashboard.
  2. Name it “Account & Opportunity Overview.”
  3. Save it in a shared folder (create one called “Admin Training Dashboards” if needed).
  4. Add the following components:
    • Component 1: A Donut Chart from your “Account Opportunity Product Analysis” report, showing Total Price grouped by Stage.
    • Component 2: A Metric showing the Grand Total of the Amount field.
    • Component 3: A Table listing the top 10 Accounts by Total Price.
  5. Arrange the components on the dashboard grid.
  6. Set the Running User to yourself (or “Run as logged-in user” for a dynamic experience).
  7. Click Save and Done.
  8. Refresh the dashboard and verify all components display data correctly.

Validation Checklist

After completing the project, confirm the following:

  • Custom report type “Accounts with Opportunity Products” is deployed and visible when creating new reports.
  • The report uses the custom report type and displays Account, Opportunity, and Product data with two groupings.
  • Filter logic correctly shows Closed Won OR Prospecting opportunities.
  • Summary formula for Average Deal Size calculates correctly at each grouping level.
  • Report subscription is active and scheduled for Monday at 8:00 AM.
  • Dashboard contains three components (donut chart, metric, table) and displays data.
  • Dashboard folder sharing is configured so the intended audience can view it.

Next up — Part 18: Accounts and Contacts in Salesforce. We will explore the core data model of Salesforce: Account and Contact objects, their relationship, person accounts, account hierarchies, and best practices for managing customer data.