Skip to content

Creating Widgets

This guide walks through creating widgets, from picking a type to configuring data and saving.

  1. Open a dashboard in edit mode (click the pencil icon)
  2. Click + Widget in the header
  3. The Widget Editor opens, starting with widget type selection
  1. Hover over any widget
  2. Click the menu icon (three dots)
  3. Select Edit

The settings menu appears on any widget you have permission to edit. You must have Staff role or higher, and the dashboard must not be shared via public link. Snapshot widgets do not show the settings menu.


Pick what kind of widget you want. They’re organized into two categories:

Widget Description Best for
Bar Chart Compare values side-by-side Category comparisons, rankings
Line Chart Track trends over time Time series, performance tracking
Pie Chart Show proportions at a glance Part-to-whole relationships
Table Rows and columns of data Detailed records, drilldown
Query Widget Author SQL-backed widgets in YAML Custom queries, Query Datasets
Number One big KPI display Single metrics, goals
Gauge Visualize progress to a goal Percentages, capacity
Matrix Multi-metric scorecards Multiple KPIs per entity
Funnel Conversion stage breakdown Pipelines, drop-off analysis
Widget Description Best for
Static Value Custom text or markdown Headlines, announcements
Dynamic Value Pull live text from data Status updates, latest record
Image Display logos or graphics Branding, diagrams
External Website Embed any web page Third-party tools
Button Navigate with a click Dashboard links

After selecting the type, you’ll see a three-panel layout:

Widget Settings

  • Global settings like title, description, display options

Data Layers (data visualization widgets only)

  • Each layer is a separate calculation
  • Multiple layers let you compare different datasets or filters
  • Drag to reorder, duplicate or delete as needed

See how your widget looks as you configure it.

For data widgets (charts, tables, numbers, gauges, and other dataset-backed types), preview stays unavailable until every data layer has a dataset selected. The Preview button in the header stays disabled until then. Widgets that do not use a dataset (Static Value, Image, External Website, Button) can preview without one.

Once datasets are set, the preview usually refreshes in the background when you change settings. You can also click Preview (or use the keyboard shortcut shown on the button) to refresh it yourself. A manual preview shows a loading state while results load.

Options change based on what’s selected in the left panel:

  • Widget Settings selected: Global options like title, colors, axes
  • Data Layer selected: Data-specific options like dataset, calculations, filters

Each data layer defines a calculation for your widget.

  1. Click Select Dataset in a data layer
  2. Choose from:
    • Datasets: Direct sync from integrations (standard tables)
    • Modified Datasets: Transformed or filtered data
  3. Columns load automatically

Each data layer needs:

Setting Description Required
Name Label for this data layer Yes
Dataset Source of data Yes
Function How to aggregate the data (Row Count, Sum, Average, etc.) Yes
Column Which column to calculate (if required by function type) Varies
Function Description Requires column
Row Count Count of records in the dataset No
Sum Total of all values Yes
Average Mean value Yes
Median Middle value Yes
Max Largest value Yes
Min Smallest value Yes
Mode Most common value Yes
Range Difference between max and min Yes
Custom Create your own formula No
Percentage Percentage matching a filter No

Limit which data is included:

  1. In the data layer config, click Filter
  2. A filter dialog opens
  3. Select the column to filter
  4. Choose the operator (equals, contains, greater than, etc.)
  5. Set the filter value
  6. Add multiple conditions as needed
  7. Click Done to apply the filter and close the dialog

You can create complex logic with groups and AND/OR operators. See Filtering Data for the full guide.

For chart widgets, define what appears on the X-axis:

  1. Select the X-Axis field
  2. Choose a column from your dataset
  3. Common choices:
    • Date/time columns for trends
    • Category columns for comparisons
    • Status or type columns for breakdowns

Setting Description
Title Widget display name
Description Optional markdown description
Show Title Toggle title visibility
No Data Message Text shown when widget has no data (max 255 chars)

Widgets show a message when there’s no data to display. You can customize this text:

  1. Open the widget editor
  2. Select Widget Settings in the left panel
  3. Find the No Data Message field under General settings
  4. Enter your custom text (up to 255 characters)

Default values:

  • Chart widgets (bar, line, pie, gauge, funnel, table, matrix, dynamicString): “No Data”
  • Number widgets: “0” (number widgets always display 0 when there’s no data, so this setting is not available for them)

Formatting numeric messages

If you enter a number as the no data message, it follows your widget’s formatting rules. For example, if your widget has the $ Prefix toggle enabled and you set the no data message to “0”, it displays as “$0”. Similarly, % Suffix and Abbreviate Numbers settings apply to numeric no data messages.

This works well for KPI-style widgets where you want empty states to show “$0” or “0%” instead of “No Data”.

Setting Description
Show Legend Display chart legend
Legend Position Top, bottom, left, or right
X Label Custom X-axis label
Y Label Custom Y-axis label
Font Size Override default text size
Setting Description
Show X Axis Toggle X-axis visibility
Show Y Axis Toggle Y-axis visibility
Y Min/Max Set fixed axis range
Cumulative X Axis Show running totals
Log Scale (Y) Use logarithmic scale
Horizontal Chart Rotate bar charts
Fill Empty Points Add zeros for missing time periods
Show Area Fill area under line charts
X Axis Label Rotation Rotate X-axis labels (degrees)
Setting Description
Rounding Decimal places (0-10)
% Suffix Add percent sign
$ Prefix Add dollar sign
Abbreviate Numbers Show 1.2K instead of 1,200
Compare Points Show comparison to previous/custom value
Setting Description
Min Value Scale minimum (default: 0)
Max Value Scale maximum (default: 100), fallback when dynamic max absent
Show Interval Labels Display value labels along the gauge scale
Dynamic Max Layer Add a second data layer to drive max value from live data

Dynamic maximum: Add a second data layer to calculate the max value from your data. The gauge shows a hint explaining this when you have one data layer configured. Click Add Max Data Layer to enable it. If the second layer has no data, the static Max Value is used instead.

Setting Description
Transpose Table Data Swap rows and columns
Pivot Table Data Create cross-tabulation
Enable Drilldown Show detailed data on click
Drilldown Date Format Control date display format
Setting Description
Pie Label Format Value, percentage, label, or combinations
Pie Radius Size of the pie (%)
Inner Radius Create doughnut chart (set to 40 for standard doughnut)
Setting Description
Transpose Table Data Swap rows and columns
Enable Drilldown Show detailed data on click
Matrix Index Column to use as row labels
Fit Grid to Widget Width Auto-size columns to fill available space
% Suffix Data Layers Which calculations show percent sign
$ Prefix Data Layers Which calculations show dollar sign
Abbreviate Numbers Data Layers Which calculations use compact notation (1.2K instead of 1,200)

Matrix widgets can apply different formatting to each data layer. Instead of using global toggles that affect all values, you pick which calculations get which format:

  1. Add multiple data layers to your matrix widget
  2. In Widget Settings, find the Matrix Options section
  3. Use the multi-select dropdowns to assign formatting:
    • % Suffix Data Layers: Select calculations that should show percentages
    • $ Prefix Data Layers: Select calculations that should show currency
    • Abbreviate Numbers Data Layers: Select calculations to display as 1.2K, 3.4M, etc.

Example use case: You have a matrix showing revenue, ticket count, and satisfaction score for each client. You want revenue formatted as currency ($50K), ticket count abbreviated (1.2K tickets), and satisfaction as a percentage (95%). Select the revenue calculation in the $ Prefix dropdown, ticket count in the Abbreviate Numbers dropdown, and satisfaction in the % Suffix dropdown.

When you use threshold colors on bar, line, or matrix widgets, the same prefix or suffix is used in threshold labels when all visible series share it. If visible series use different units, the shared threshold label leaves the prefix or suffix blank to avoid mixed formatting.

Per-layer formatting for bar and line charts

Section titled “Per-layer formatting for bar and line charts”

Bar and line charts can override the widget’s % suffix and $ prefix for each data layer.

  1. Open a bar or line chart in the widget editor.
  2. In a data layer, go to Data Layer Settings.
  3. Set % Suffix to one of these values:
    • Inherit (widget setting): Use the widget-level % suffix toggle.
    • On: Always show % for that data layer.
    • Off: Never show % for that data layer.
  4. Set $ Prefix the same way:
    • Inherit (widget setting): Use the widget-level $ prefix toggle.
    • On: Always show $ for that data layer.
    • Off: Never show $ for that data layer.

These per-layer settings apply to chart values in labels and tooltips. If all visible series resolve to the same prefix or suffix, the shared Y-axis and threshold labels use it too. If series use different units, the shared axis leaves the prefix or suffix blank to avoid mixed labels.


Choose how colors apply to your widget:

Default Colors

  • Follow the widget’s color palette
  • Override colors per data layer

Threshold Colors

  • Color based on data values
  • Define rules like “green until 100, red after”
  1. Set Colors to Use threshold colors in the Widget Settings panel
  2. Click Configure Thresholds to open the threshold editor dialog
  3. For single-layer widgets (Number, Bar, Line):
    • Add conditions by clicking the + button
    • Each condition specifies: value, color, and comparators
    • Visual Comparator (≥, ≤, or =): Controls when the color is applied (default: ≥)
    • Sound Comparator (≥, ≤, or =): Controls when the alert sound triggers (default: ≤)
    • Optionally assign a sound and configure repeat intervals
  4. For multi-column widgets (Table, Matrix):
    • Add a threshold set for each column or data layer you want to configure
    • Each data layer on matrix widgets can have its own set of thresholds
    • Each column on table widgets can have its own set of thresholds
    • They require multiple sets of thresholds because a common use case is to set something like:
      • amount column: [visual: value ≤ 100: red] [visual: value ≤ 500: yellow] [visual: value ≥ 100: green]
      • hours column: [visual: value ≤ 5: red] [visual: value ≤ 7: yellow] [visual: value = 8: green] [visual: value ≥ 9: red]
    • Select the target column/layer, then add conditions
  5. Configure global sound settings:
    • Click the settings icon to set Allow Mute and Snooze Duration

Each threshold condition includes a toggle to control whether the threshold color affects the widget value. Turn it off when you want the rule to remain available without changing the displayed color.


Setting Description
Time Increment Group time-based data by minute, hour, day, week, month, quarter, or year
Timezone View data in any timezone
Use Fiscal Calendar Replace natural calendar boundaries with your company’s fiscal periods (see below)

On datetime x-axis widgets, you can switch the time increment directly from the dashboard without opening the editor.

  1. Hover over the widget to reveal the footer action icons
  2. Click the clock icon to open the time increment menu
  3. Choose an option: Auto, Minute, Hour, Day, Week, Month, Quarter, or Year
  4. The widget refreshes with the new grouping applied
  • Auto lets Resplendent pick the increment based on your date range. When Auto is active, the resolved increment is shown in parentheses (for example, “Auto (Day)”)
  • The clock icon only appears on widgets with a datetime x-axis and only when you have edit access
  • Selections made from the footer update the widget immediately and persist after you leave the dashboard

If your company has a fiscal calendar configured, a Use Fiscal Calendar toggle appears in the widget editor when fiscal calendar support is available. For number widgets, the toggle is shown in the Compare section. For other supported widgets, it stays in Time & Grouping. Enabling it makes the widget resolve month, quarter, and year boundaries from your fiscal period definitions instead of the natural calendar.

The toggle is only shown when all of these are true:

  • The widget is data-based and has a dataset selected
  • The widget has exactly one data layer
  • The widget filter includes a date range (between_dates) or a date-range filter variable
  • Compare With Previous Period is set

When the toggle is on, previous-period calculations also follow fiscal boundaries: “Previous Period” steps back by the same number of fiscal periods, and “Period Last Year” finds the matching period(s) in the prior fiscal year. If no fiscal period covers the target date, the widget falls back to the natural calendar.

Setting Description
Grouping Stack bars or create multiple series
Sort Control data order (alphabetical, highest, lowest)
Value Limit Limit number of values displayed

Show how current values compare to previous or custom values:

  1. Enable Compare Points
  2. Choose comparison type:
    • Previous: Compare to previous data point
    • Custom: Compare to a fixed value
  3. Choose method:
    • Percent: Show percentage change
    • Difference: Show absolute difference

For widgets with time-based filters:

  1. Requires exactly one data layer
  2. Filter must use date range or filter variable
  3. Choose comparison:
    • Previous Period: Compare to immediately preceding period
    • Period Last Year: Compare to same period last year

  • Display Mode: Text or Markdown
  • Enter your content directly in the editor
  • Dataset: Select a data source
  • Column: Which column to display
  • Function: How to select the value (first record, etc.)
  • Formatting: $ prefix, % suffix, abbreviate numbers
  • Image URL: Link to a publicly hosted image
  • IFrame URL: Link to embed
  • Button Text: Label text
  • Button Mode: Dashboard link or external URL
  • Select dashboard or enter URL

  1. Click Save & Close to save
  2. The widget appears on the dashboard
  3. Drag to reposition if needed
  1. Hover over the widget and click the menu icon (three dots)
  2. Select Duplicate
  3. The widget shows a “Duplicating widget…” loading indicator while the copy is being created. The Duplicate button is disabled during this time to prevent double-submissions.
  4. A success notification appears when the copy is ready. If something goes wrong, a failure notification tells you the duplication did not complete.
  5. The new widget appears on the dashboard. Edit the copy as needed.
  1. Hover over the widget and click the menu icon (three dots)
  2. Select Delete
  3. Confirm deletion

Show top performers:

  1. Create a bar chart
  2. Set sorting to “Highest”
  3. Set Value Limit to 10
  4. Displays top 10 items

Track changes over time:

  1. Create a line chart
  2. Set X-axis to a date/time field
  3. Set Time Increment appropriately
  4. Enable Show Area for emphasis

Compare this month vs. last month:

  1. Create a number widget
  2. Add filter: This Month
  3. Enable Compare With Previous Period
  4. Select “Previous Period”

  • Check if the dataset has data
  • Verify filters aren’t excluding all records
  • Ensure selected columns exist
  • Customize the No Data Message in Widget Settings if you want different text (for example, “$0” instead of “No Data”)
  • Review the calculation settings
  • Check the correct column is selected
  • Verify aggregation type matches your intent
  • Select a dataset on every data layer
  • Content widgets without a dataset (Static Value, Image, External Website, Button) do not need one for preview
  • Query Widgets use their own Preview control in the YAML editor. See Query Widgets.

Yes. Click the widget menu (three dots) and select Duplicate. The widget shows a loading indicator while the copy is being created, and a notification confirms success or failure. Once done, the new widget appears on the dashboard.

Number for single KPIs. Bar Chart for category comparisons. Line Chart for trends over time. Table for detailed records. Pie Chart for part-to-whole (5 or fewer categories). See Chart Types for the full guide.

Can I use multiple datasets in one widget?

Section titled “Can I use multiple datasets in one widget?”

Yes. Add multiple data layers, each connected to a different dataset. This is useful for comparing metrics from different sources side-by-side.

Common causes: the dataset has no records, filters exclude all data, or the selected columns don’t exist. Check the dataset first, then review widget filters.

You can also customize what text appears when there’s no data. In the widget editor, go to Widget Settings and change the No Data Message field. For number widgets, this defaults to “0”; for other widgets it defaults to “No Data”.

Use the Percentage function in the data layer. It calculates what percentage of records match your filter conditions. Alternatively, use Custom formula for more complex calculations.

Can I change a widget’s type after creating it?

Section titled “Can I change a widget’s type after creating it?”

No. Widget type is set at creation. To change types, create a new widget with the desired type and delete the old one.