SalesOS.

Custom Reports

Build custom reports with flexible filters, groupings, and visualizations to answer any business question.

Overview

Custom Reports in SalesOS empower every team member to answer business questions without relying on analysts or pre-built dashboards. The report builder provides a flexible, no-code interface for constructing queries across any CRM data, applying sophisticated filters, grouping results into meaningful segments, and visualizing findings through charts and tables.

Whether you need a simple list of overdue tasks or a complex multi-dimensional analysis of revenue by territory, product line, and quarter, the reporting engine handles it with consistent performance and an intuitive building experience.

Report Builder Interface

The report builder is accessed from Analytics > Reports > New Report and consists of four main panels:

Data Source Panel (Left)

Displays available objects and their fields as a navigable tree. Drag fields from this panel into the report canvas to add columns.

Report Canvas (Center)

The primary workspace where you arrange columns, define groupings, and preview results. The canvas updates in real time as you modify the report structure.

Filter Panel (Right)

Define criteria that limit which records appear in the report. Filters can be simple single-field conditions or complex multi-level logic groups.

Properties Panel (Top)

Configure report-level settings including name, description, report type, date range, and sharing permissions.

Report Types

SalesOS supports three fundamental report layouts, each suited to different analytical needs.

Tabular Reports

Tabular reports display records as flat rows with columns. They are the simplest report type and ideal for:

  • Record lists (e.g., all open opportunities closing this quarter).
  • Activity logs and audit trails.
  • Data exports for external analysis.
  • Operational reports that reps use daily.

Tabular reports support sorting by any column, column reordering, and row-level detail links back to the source record.

Summary Reports

Summary reports add grouping levels to tabular data, with subtotals and aggregate calculations at each group break. They are ideal for:

  • Pipeline by stage (grouped by stage with subtotals).
  • Revenue by rep by quarter (multi-level grouping).
  • Activity metrics by team and time period.
  • Any analysis requiring sub-aggregations.

Summary reports support up to three nested grouping levels and display expandable/collapsible group sections.

Matrix Reports

Matrix reports display data in a two-dimensional grid with row groupings and column groupings, similar to a pivot table. They are ideal for:

  • Win rate by industry (rows) and deal size (columns).
  • Activity count by rep (rows) and month (columns).
  • Revenue by product (rows) and region (columns).
  • Any cross-tabulation analysis.

Matrix reports calculate aggregate values (sum, count, average, min, max) at each cell intersection and provide row and column totals.

Data Sources

Reports can query data from any SalesOS object or combination of related objects:

Primary Objects

ObjectCommon Report Use Cases
OpportunitiesPipeline analysis, forecasting, win/loss
AccountsCustomer segmentation, health scores
ContactsStakeholder mapping, engagement
LeadsFunnel conversion, source analysis
ActivitiesRep productivity, engagement metrics
TasksWorkload, completion rates
QuotesCPQ analytics, discount patterns
OrdersRevenue recognition, fulfillment
ContractsRenewal tracking, churn risk
ProductsCatalog utilization, revenue mix

Cross-Object Reporting

SalesOS automatically resolves relationships between objects, allowing you to include fields from related records:

  • Report on Opportunities with Account industry and Contact title.
  • Report on Activities with associated Opportunity stage and value.
  • Report on Quotes with line item details and Product categories.

The system displays available relationships as expandable nodes in the data source panel.

Adding Fields and Columns

Dragging Fields

Drag any field from the data source panel into the report canvas to add it as a column. Fields can be reordered by dragging within the canvas.

Field Types

TypeDisplayAggregation Options
TextAs-isCount, Count Distinct
NumberFormatted with localeSum, Average, Min, Max, Count
CurrencyWith currency symbolSum, Average, Min, Max
DateFormatted per user preferenceCount, Min (earliest), Max (latest)
DateTimeDate + timeCount, Min, Max
BooleanYes/No or custom labelsCount True, Count False, Percentage
PicklistDisplay valueCount per value, Count Distinct
LookupRelated record nameCount, Count Distinct

Column Configuration

Each column can be individually configured:

  • Header label: Override the default field name with a custom header.
  • Width: Fixed pixel width or auto-size.
  • Alignment: Left, center, or right.
  • Format: Number formatting, date format, currency display.
  • Conditional formatting: Color-code cells based on value thresholds.

Filters and Logic

Basic Filters

Add filters by selecting a field, an operator, and a value:

Operator CategoryOperators
Equalityequals, not equal to, is null, is not null
Comparisongreater than, less than, greater or equal, less or equal
Textcontains, does not contain, starts with, ends with
Listin, not in
Datebefore, after, between, last N days, next N days, this week/month/quarter/year
Booleanis true, is false

AND/OR Logic

Filters can be combined using AND/OR logic groups:

AND logic (all conditions must be true):

  • Stage equals "Negotiation" AND Amount greater than $50,000 AND Close Date within next 30 days.

OR logic (any condition can be true):

  • Industry equals "Healthcare" OR Industry equals "Life Sciences."

Nested logic:

  • (Stage equals "Proposal" OR Stage equals "Negotiation") AND (Amount greater than $100,000) AND (Competitor is not null).

Dynamic Filters

Dynamic filters use relative values that update automatically:

  • Current User: Filter by records owned by the viewing user.
  • Current User's Team: Records owned by anyone in the viewer's team.
  • Relative Dates: "This Quarter," "Last 30 Days," "Next Fiscal Year."
  • Runtime Parameters: Prompt the viewer to select filter values when running the report.

Grouping and Subtotals

Adding Groups

In summary and matrix reports, designate fields as group-by dimensions:

  1. Drag a field to the Group By area (or right-click a column and select "Group by this field").
  2. Choose the grouping granularity (for dates: day, week, month, quarter, year).
  3. Set sort order for groups (ascending, descending, or by aggregate value).

Subtotal Functions

At each group break, SalesOS calculates:

  • Sum: Total of numeric values in the group.
  • Count: Number of records in the group.
  • Average: Mean value across the group.
  • Min/Max: Extreme values within the group.
  • Percentage of Total: Group subtotal as a percentage of the grand total.

Multi-Level Grouping

Summary reports support up to three nested grouping levels. For example:

  • Level 1: Region
  • Level 2: Sales Rep
  • Level 3: Deal Stage

Each level displays its own subtotals, with a grand total at the bottom.

Sorting

Reports can be sorted by any column or aggregate value:

  • Single sort: Click any column header to sort ascending/descending.
  • Multi-sort: Hold Shift and click additional columns for tie-breaking sort order.
  • Group sort: Sort groups by their subtotal values (e.g., show highest-revenue regions first).
  • Custom sort: Define custom sort orders for picklist values (e.g., stage order from Prospecting to Closed Won).

Calculated Fields

Calculated fields create new data points from existing fields using formulas.

Formula Types

TypeExample
ArithmeticAmount * Probability / 100 (weighted pipeline)
Date MathDATEDIFF(CloseDate, TODAY()) (days to close)
ConditionalIF(Amount > 100000, "Enterprise", "SMB")
TextCONCATENATE(FirstName, " ", LastName)
AggregateAmount / COUNT(LineItems) (average line item value)

Creating Calculated Fields

  1. Click Add Calculated Field in the report canvas toolbar.
  2. Enter a name for the field.
  3. Build the formula using the formula editor (autocomplete for field names and functions).
  4. Set the output format (number, currency, percentage, text).
  5. The calculated field appears as a column and can be used in filters and groupings.

Available Functions

SalesOS provides 50+ built-in functions across categories:

  • Math: SUM, AVG, ROUND, CEILING, FLOOR, ABS, POWER
  • Text: CONCATENATE, LEFT, RIGHT, MID, UPPER, LOWER, TRIM, LENGTH
  • Date: TODAY, NOW, DATEDIFF, DATEADD, MONTH, YEAR, QUARTER, WEEKDAY
  • Logic: IF, AND, OR, NOT, CASE, ISNULL, BLANKVALUE
  • Aggregate: RUNNING_SUM, PERCENT_OF_TOTAL, RANK

Chart Visualizations

Every report can be enhanced with visual charts that make patterns immediately apparent.

Available Chart Types

Chart TypeBest For
Bar (horizontal)Comparing values across categories
Column (vertical)Time-series comparisons, rankings
LineTrends over time
AreaVolume trends, stacked compositions
Pie / DonutPart-of-whole relationships (limit to 6-8 segments)
FunnelConversion through sequential stages
ScatterCorrelation between two numeric variables
ComboDual-axis (e.g., revenue bars + win rate line)
GaugeSingle KPI against target
HeatmapDensity or intensity across two dimensions

Chart Configuration

  • Axes: Select which fields map to X and Y axes.
  • Series: Define multiple data series for comparison.
  • Colors: Use brand palette or custom color assignments.
  • Labels: Show/hide data labels, format values.
  • Legend: Position and style.
  • Reference lines: Add target lines, averages, or benchmarks.

Scheduling and Email Delivery

Reports can be scheduled to run automatically and deliver results via email.

Schedule Configuration

SettingOptions
FrequencyDaily, Weekly, Monthly, Quarterly
Day/TimeSpecific day and time (timezone-aware)
RecipientsIndividual users, teams, or email addresses
FormatInline HTML table, PDF attachment, CSV attachment, Excel attachment
ConditionsOnly send if results are non-empty, or if threshold exceeded

Subscription Management

Users can subscribe to reports they have access to without requiring the report owner to configure delivery. Self-service subscriptions honor the same permission model as direct report access.

Sharing and Permissions

Visibility Levels

LevelDescription
PrivateOnly the creator can view and edit
TeamAll members of the creator's team can view; creator edits
OrganizationAll org members can view; creator and admins edit
Public LinkShareable URL (read-only, optional password protection)

Collaboration

  • View access: See report results with current data.
  • Edit access: Modify report structure, filters, and configuration.
  • Clone: Any viewer can clone a shared report to create their own editable copy.
  • Transfer ownership: Admins can reassign report ownership when users leave.

Report Folders

Organize reports into folders for easy discovery:

  • My Reports: Personal reports visible only to the creator.
  • Team Folders: Shared folders visible to team members.
  • Organization Folders: Company-wide folders organized by function (Sales, Marketing, Finance, Operations).
  • Favorites: Quick-access folder for bookmarked reports.

Folders support nesting up to three levels deep and can have independent permission settings.

Exporting

Export Formats

FormatUse Case
CSVData analysis in spreadsheets, import into other tools
Excel (.xlsx)Formatted export with charts, multiple sheets for grouped data
PDFPresentation-ready, printable reports with headers and footers
Google SheetsDirect export to a connected Google Sheets document

Export Options

  • All records or current page for large reports.
  • Include/exclude chart visualizations (PDF and Excel only).
  • Include/exclude subtotals and grand totals.
  • Custom headers and footers with company branding (PDF).
  • Filtered or full dataset (export can ignore runtime filters).

Scheduled Exports

Combine scheduling with export to automatically deliver fresh data files to external systems, shared drives, or SFTP endpoints on a recurring basis.

Performance Considerations

Large Data Sets

For reports spanning millions of records:

  • SalesOS automatically applies pagination (default 2,000 rows per page).
  • Aggregations compute across the full dataset regardless of pagination.
  • Indexes on commonly filtered fields ensure sub-second query times.
  • Reports exceeding 100,000 rows generate asynchronously with email notification on completion.

Query Optimization

  • Apply date range filters to limit the scan window.
  • Use indexed fields (Owner, Created Date, Stage) in primary filters.
  • Avoid "contains" filters on large text fields when possible.
  • Limit cross-object joins to necessary relationships only.

Best Practices

  1. Start with the question, not the data. Before building a report, articulate the specific business question you need to answer. This prevents scope creep and ensures the report delivers actionable insight rather than raw data.

  2. Use descriptive report names. Name reports clearly so others can find and understand them without opening. Include the key dimension and time frame: "Q2 Pipeline by Stage and Region" rather than "Pipeline Report."

  3. Set appropriate date filters. Always include a date boundary in your reports. Unbounded reports query all historical data, which is slower and often less relevant than a focused time window.

  4. Leverage dynamic filters for reusable reports. Use "Current User" and "This Quarter" filters to build a single report that serves multiple people with personalized results.

  5. Keep visualizations simple. Choose the chart type that most directly communicates your insight. A simple bar chart often communicates more effectively than a complex multi-series area chart.

  6. Organize reports into logical folders. Invest time in folder structure early. As your report library grows, good organization prevents duplication and helps new team members find existing reports.

  7. Review scheduled reports periodically. Reports that run on schedules consume system resources and inbox attention. Audit scheduled reports quarterly and retire those no longer providing value.

  8. Use calculated fields for derived metrics. Rather than exporting data and computing metrics in spreadsheets, build calculated fields directly in the report. This ensures consistency and enables sharing the complete analysis.

  9. Clone before modifying shared reports. If you need a variant of a team report, clone it rather than modifying the original. This preserves the shared version for other users.

  10. Export to the right format for the audience. Executives prefer PDF with charts. Analysts prefer CSV for further manipulation. Match the export format to how the recipient will consume the data.