5 min read

How to Track Custom Dashboards in Amplitude

Custom dashboards let your team answer specific questions about user behavior, but only if you're tracking the right events. This guide shows you how to instrument event tracking so your custom dashboards reflect the metrics that actually matter to your business.

Instrument Dashboard View Events

Start by tracking when users access and interact with dashboards.

Track dashboard view events with the Amplitude SDK

Use amplitude.track() to log when a user views a dashboard. Include the dashboard ID and dashboard type so you can segment later. Call this on page load or when a dashboard view occurs in your app.

javascript
import * as amplitude from '@amplitude/analytics-browser';

amplitude.track('Dashboard Viewed', {
  dashboardId: 'dashboard_123',
  dashboardName: 'Product Metrics',
  dashboardType: 'custom',
  userId: currentUser.id
});
Track dashboard views with key identifying information

Capture dashboard interactions beyond initial view

Track specific actions like filter application, metric selection, or date range changes. These interactions show how users engage with their dashboards.

javascript
amplitude.track('Dashboard Filter Applied', {
  dashboardId: 'dashboard_123',
  filterType: 'date_range',
  filterValue: '30days',
  userId: currentUser.id
});

amplitude.track('Dashboard Export', {
  dashboardId: 'dashboard_123',
  exportFormat: 'csv',
  metricsCount: 5,
  userId: currentUser.id
});
Track different dashboard interactions as separate events
Tip: Include dashboardId in every dashboard-related event. This makes it easy to filter and segment by specific dashboards in your custom dashboard charts.

Add User and Session Context

Dashboard usage patterns vary by user role and team. Enrich your events with context so you can see who's using what.

Set user properties to categorize dashboard users

Use amplitude.setUserProperties() to tag users by role, department, or usage frequency. This makes it simple to segment dashboard usage in your custom dashboards.

javascript
amplitude.setUserProperties({
  userRole: 'analyst',
  department: 'product',
  dashboardsCreated: 3,
  dashboardAccessFrequency: 'daily'
});
Set user properties once, then all future events include this context

Track custom dashboard creation and sharing

When users create or share a custom dashboard, log that as a separate event type. This captures adoption behavior that matters for understanding your analytics workflow.

javascript
amplitude.track('Dashboard Created', {
  dashboardName: 'Revenue Cohort Analysis',
  dashboardType: 'cohort',
  metricsIncluded: ['retention', 'ltv', 'churn'],
  isShared: false
});

amplitude.track('Dashboard Shared', {
  dashboardId: 'dashboard_456',
  sharedWith: 'team',
  permissionLevel: 'view'
});
Create vs. share events show different engagement patterns
Watch out: Don't set user properties for high-cardinality values like specific dashboard IDs or timestamps. Those belong in event properties, not user properties, to avoid inflating your property quota.

Build Custom Dashboards Around This Data

Once your events are flowing, create custom dashboards in Amplitude to visualize usage patterns.

Create a dashboard events list in Amplitude

In the Amplitude UI, navigate to Dashboards > Create Dashboard. Add a chart using your dashboard events. Use Dashboard Viewed as your event and segment by dashboardId to see which dashboards get the most attention.

javascript
// Verify your events are flowing with the Amplitude JavaScript SDK
amplitude.track('Dashboard Viewed', {
  dashboardId: 'revenue_dashboard',
  dashboardName: 'Revenue by Cohort',
  dashboardType: 'custom',
  timestamp: Date.now()
});
Confirm your tracking is live before building the dashboard

Add filters to isolate relevant dashboards

In your custom dashboard chart, apply filters like dashboardType = custom to exclude system dashboards. Use the Filter button in the chart editor to add these conditions, or reference specific dashboardId values.

javascript
// Amplitude Cohort API example for dashboard filtering
const dashboardSegment = {
  filtering_conditions: {
    operator: 'and',
    sub_filters: [
      {
        sub_property_key: 'dashboardType',
        operator: 'is',
        property_type: 'string',
        value: 'custom'
      }
    ]
  }
};
Filter dashboard events to focus on relevant usage patterns
Tip: Create separate dashboard views for different user roles. Analysts might care about data freshness; managers care about adoption metrics. One data source, multiple perspectives.

Common Pitfalls

  • Tracking dashboard views without dashboard IDs — you end up with aggregate counts but can't identify which dashboards matter most.
  • Over-tracking every micro-interaction — focus on meaningful events (view, filter, share, export) instead of logging every cursor movement.
  • Not setting user properties — dashboard usage patterns are useless without knowing who's using them and for what role.
  • Forgetting to include dashboard context — missing dashboardId, dashboardType, or dashboardName makes your data impossible to segment later.

Wrapping Up

You're now tracking dashboard usage with the context you need to understand adoption and engagement patterns. Use these events in Amplitude's custom dashboards to identify which dashboards drive the most value for your teams, and where training or documentation might help. If you want to track this automatically across tools, Product Analyst can help.

Track these metrics automatically

Product Analyst connects to your stack and surfaces the insights that matter.

Try Product Analyst — Free