Skip to main content
Your progress
0 of 5 complete0%
T4 / M4.7 / L2 OF 4 / Architect LEVEL / 9 min

Cloning + customization

Outcome

By the end of this lesson, you will be able to clone a preset, customize it for org-specific needs, and reason about the org-shared (not per-user) dashboard model and its limits.


PrerequisitesM4.7.L1: Four presets
Time9 minutes

1. Concept

The four presets cannot be changed, so you copy one and change the copy.

The original stays where it is, which matters more than it sounds: when ZopNight improves a preset, you can take a fresh copy and compare, rather than having lost the starting point.

Terminal window
WORKFLOW:
1. View preset (Executive / Engineering / FinOps / All Widgets)
2. Click "Clone" → creates a new saved dashboard
3. Modify the clone:
- Add widgets from the registry
- Remove widgets that don't apply
- Reorder widgets via drag-and-drop
- Pick widget size (Wide / Standard / Compact)
4. Save with a meaningful name
5. Optionally set as org default

Why clone vs edit-in-place

The clone pattern decouples customer customization from preset evolution:

Terminal window
PRESETS are versioned by ZopNight:
As new widgets ship, presets may be updated to include them
Changes to a preset's widget list, order or sizes apply to
everyone viewing the preset
CUSTOMER CLONES are static:
They reflect the customer's specific layout decisions
Don't auto-update when ZopNight updates the preset
Customer can re-clone the latest preset and re-apply changes
if they want to pick up updates

This means a customer cloning the FinOps preset today gets a snapshot. If ZopNight updates the FinOps preset next year to add a new widget, the customer’s clone does not change. They can re-clone the latest preset to see the new layout, then choose whether to migrate.

Customization options

Terminal window
ON A CLONED DASHBOARD (V1):
Add widgets from the registry (13 widget types)
Remove widgets
Reorder via drag-and-drop
Pick widget size: Wide (full row) / Standard (half row) / Compact
Rename the dashboard
Set as org default
Delete the dashboard (with confirmation)
NOT YET CUSTOMIZABLE (V1):
Free-form grid resize (only standard sizes)
Per-user dashboard customization (org-shared only)
Cross-dashboard linking (no drill-through)
Custom widget creation (only selection from registry)
Themed colors or branding

The V1 scope is deliberately bounded. Cloning + modify gets most customers what they need.

Org-specific patterns

Terminal window
PATTERN A: Single org dashboard
Clone "FinOps" preset
Modify to remove widgets the org doesn't use
Add team-specific widgets if relevant
Set as org default
All users land on this one dashboard
Best for: small to mid-size orgs with one cost-discipline focus
PATTERN B: Multiple persona dashboards
Clone "Executive" → save as "Leadership Review"; org default
Clone "Engineering" → save as "Platform Engineering"
Clone "FinOps" → save as "FinOps Operations"
Each persona has their own; users bookmark theirs
Best for: mid-to-large orgs with distinct audiences
PATTERN C: Per-team views
Clone a preset once per team, keeping the widgets that team reads
Save each as "<Team> Daily"; share its /dashboard/<id> link
The org still has ONE default; teams reach theirs by link
or the header switcher
Best for: large orgs with strong team boundaries

Pattern A is the most common. Pattern B emerges as orgs mature. Pattern C is for very large orgs.

Sharing dashboards

Dashboards in V1 are org-shared: anyone in the org can view any saved dashboard. There is no per-user private dashboard.

Terminal window
WHAT A USER CAN DO:
- View any saved dashboard in the org
- Set the org default (with dashboard:update: Admin or Editor)
- Bookmark any dashboard's /dashboard/<id> URL in their browser
- Switch between dashboards via the header switcher
WHAT A USER CANNOT DO (V1):
- Create a private dashboard not visible to others
- Customize a dashboard for themselves only
- Hide a dashboard from specific users

Browser bookmarks and the switcher give per-user flexibility on top of the org-shared dashboards. There is no per-user or per-team default: /dashboard always opens the org’s single default, and a bookmarked /dashboard/<id> link opens that specific dashboard.

Limits

Terminal window
PER-ORG CAPS:
Dashboards: 50
Widgets per dashboard: 50
Per-widget config: 4 KiB (ceiling for any single widget's config)
Total layout: 64 KiB (ceiling for the whole serialized layout)
ENFORCEMENT:
Hard limits, checked when you save
No early warning: the 51st dashboard is refused with a
DASHBOARD_LIMIT_EXCEEDED error; delete one, then save
WHY THESE LIMITS:
Performance: too many widgets means slow page loads
Cognitive: too many dashboards means no one knows which to use
Storage: bounded per-org footprint

The 4 KiB and 64 KiB caps are two independent ceilings, not a budget you multiply out. The 4 KiB bounds any single widget’s config; the 64 KiB bounds the serialized layout as a whole. They are not meant to be composed (50 × 4 KiB = 200 KiB would exceed 64 KiB); today’s widgets carry no settings of their own, so a full 50-widget dashboard stays comfortably inside the 64 KiB total. In practice whichever ceiling you hit first is the binding one.

Most customers do not approach these limits. If you do, consolidate: multiple 30-widget dashboards are usually two or three well-designed dashboards.

No per-widget settings

Widgets have no per-widget settings. There is no time-range, team filter or currency option to set on a widget; each one shows the data its viewer is allowed to see, the same way on every dashboard.

Terminal window
WHAT YOU CAN SET PER WIDGET:
Which widgets are on the dashboard
Their order
Their size (Wide / Standard / Compact, where the widget allows it)
WHAT YOU CANNOT SET:
Time range, team filter, currency or any other widget option
CONSEQUENCE:
The same widget type can appear only once per dashboard: a second
copy would render identically, so the widget picker disables it

This is why per-team views (Pattern C) differ by which widgets they carry, not by filters. For one team’s numbers, use the Teams tab of the Cost reports widget or the Cost Reports page.

Cross-references between dashboards

Terminal window
V1 LIMITATION:
Dashboards do not link to each other directly.
WORKAROUND:
Save bookmarks in a team wiki:
- "FinOps daily review" → /dashboard/<id>
- "Platform engineering" → /dashboard/<id>
- "Executive monthly" → /dashboard/<id>
Users navigate via URLs; switcher in header for in-product navigation.

This is a known gap. Future versions may support drill-through.

How ZopNight uses cloning

The dashboard backend stores each saved dashboard as a row in dashboards with a layout column containing the widget arrangement. Cloning copies the preset’s layout and assigns a new UUID. Modifications update the layout in-place. The org’s default dashboard is a value under the default_dashboard key in org_settings, not a foreign key.

For admin troubleshooting, the dashboard’s layout is browsable in the API, which lets support reproduce a customer’s view without needing UI access.


2. Demo

A team’s customization workflow:

Terminal window
TEAM: platform-engineering (8 engineers)
GOAL: Start from FinOps preset; customize for daily engineering use
T+0 Admin opens Dashboards page
Finds the FinOps preset card
T+10 s Uses the card's Clone action
A new dashboard opens with the preset's eight widgets
Names it "Platform Eng Daily"
T+30 s Reviews current widgets:
✓ Key metrics Keep
✓ Cost trend Keep (anomaly markers
surface here)
✓ Cost reports Keep (Teams tab shows
the platform team)
✗ Budget health Remove (FinOps owns it)
✓ Top costly resources Keep
✗ Cost saving opportunities Remove (too long for
a daily glance)
✓ Schedule activity Keep
✓ Scheduler success rate Keep
T+1 min Adds a widget:
+ Quick insights (the same open recommendations as
compact cards, in place of the full list)
T+1:30 Sets sizes:
Top costly resources: Standard (half row)
Quick insights: Compact
(no per-widget filters to set; widgets have none)
T+2 min Reorders the slots:
1. Cost trend (top: spend plus anomaly markers)
2. Schedule activity (what ran, what is next)
3. Scheduler success rate (paired beside it)
4. Top costly resources (today's biggest line items)
5. Quick insights (action items)
6. Key metrics
7. Cost reports
There is no Sankey widget, no unit-economics widget and no
anomaly widget to add here: cost flow has its own page under
Costs → Flow, unit economics has its own page under Costs, and anomalies
appear as markers on the Cost trend widget.
T+2:30 Saves
T+3 min Does NOT set it as org default: that would move
everyone in the org, not just the platform team.
Shares the /dashboard/<id> link in the team channel;
engineers bookmark it
TOTAL ELAPSED: 3 minutes from preset to customized, saved and shared

The team now has a dashboard that exactly matches their daily workflow.


3. Hands-on (5 min)

Clone and customize a preset:

Terminal window
SELECTED PRESET to clone: __________
CLONE NAME: __________ (descriptive, your-team-specific)
WIDGETS TO REMOVE (not relevant to your audience):
□ __________
□ __________
□ __________
WIDGETS TO ADD (from registry):
□ __________
□ __________
□ __________
SIZE CHANGES (Wide / Standard / Compact):
Widget: __________ Size: __________
Widget: __________ Size: __________
REORDER PRIORITY (top to bottom):
1. __________
2. __________
3. __________
SET AS ORG DEFAULT? Yes / No (why?)

If you can’t finish this exercise in 5 minutes, the preset was close to your needs. That’s a healthy sign: the presets are designed to be close to common needs.

Do it through MCP. The same task you just did in the console, asked in one sentence.

Terminal window
BEFORE A ZopNight account with one cloud connected. A preset dashboard visible in your org.
ASK "Clone the FinOps dashboard as Data Team Daily and make it the org default."
CHECK widget-level access afterwards. A cloned dashboard can show more than its audience should see, which is L3.

Tools behind it: list_dashboards (read, Explore), create_dashboard (write, tier 1, metadata only), set_default_dashboard (write, tier 1, metadata only). Connection details are in the MCP integration docs.


4. Knowledge check

Q1

A team wants to remove “Top costly resources” from the FinOps preset:

A. Edit the shipped FinOps preset in place, directly for the org
B. File a feature request and wait for the change to ship
C. Clone the preset first; modify the clone; save under a new name
D. It cannot be done at all, since the presets are fixed

Show answer

Correct: C. Presets are immutable templates that can be re-cloned from the latest version; clones are the customer’s customization surface. This pattern lets ZopNight update presets without breaking customer dashboards. Clone, then modify. The pattern is fundamental to dashboard architecture.

Q2

Per-user dashboard customization:

A. Supported in V1 today
B. NOT supported in V1
C. Per-team only, in V1
D. Per-role only, in V1

Show answer

Correct: B. Dashboards are org-shared. Users can bookmark a dashboard’s link in their browser and switch via the header switcher, but cannot create private dashboards or set a personal default. There is one org default and no per-team default either.

Q3

Per-org dashboard limits:

A. Unlimited dashboards per organisation, with no cap of any kind at all imposed
B. Ten dashboards per organisation, and never any more than that
C. 50 dashboards, 50 widgets per dashboard, 4 KiB per widget config, 64 KiB total layout
D. Per-tier limits, so the enterprise plans get more of them than others

Show answer

Correct: C. These are hard limits checked at save time, with no early warning: going over returns an error. The limits protect performance and prevent dashboard proliferation. Consolidation, not expansion, is the answer when approaching them.


5. Apply

Clone presets at Dashboards using the Clone action on the preset’s card. The editor supports adding and removing widgets, drag-and-drop ordering and the three sizes; set the org default from the dashboard’s card once it is saved.

For team-specific customizations, develop a naming convention (e.g., “Platform Eng Daily,” “FinOps Monthly Review”) so users can identify dashboards by purpose.



Start with the bill.

Foundations takes about five hours. The first lesson is nine minutes.

Free curriculum. No paywall. 290 lessons across 7 courses, plus an optional 24-lesson beginner course. Browse every course without an account; a free account opens the lessons, saves your progress and opens the exams for three publicly verifiable credentials. Read it on the train, take the exam on a Saturday, list the credential on your résumé Monday.

5h median time to finish Foundations
free account, every course, no paywall
3 certifications, each with a public verifier
Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console·