Skip to main content

Restore a deleted dashboard

Dashboards are soft-deleted by default — the underlying record stays in the database with deleted_at set, and is hard-deleted by a janitor job 30 days later. This means there's a window to recover.

Within 30 days of deletion

Open the Trash view (admin → Trash → Dashboards). The deleted dashboard is listed with the original title, who deleted it, and when. Click Restore.

The restored dashboard:

  • Keeps its original ID, so any bookmarks or embeds still resolve
  • Preserves all permissions, owners, and schedules that were attached at the time of deletion
  • Logs a dashboard.restored event in the audit log with the restoring user and the original deletion event referenced

If the original creator is no longer in the org, ownership transfers to whoever performed the restore.

After 30 days (the janitor has run)

The dashboard is gone from the application database. Recovery options, in order of preference:

  1. Backup restore — your DB backup retention determines whether this is possible. ECS-managed instances keep daily snapshots for 14 days by default; on-premises retention is whatever your ops team set. Restore the snapshot to a sandbox database, export the hubstudio.dashboards row + related hubstudio.dashboard_tiles rows, re-insert into production. Allocate ~1 hour for an experienced operator; coordinate with the on-call.

  2. Audit-log reconstruction — the audit log captures dashboard creation and edit events including the JSON payload. If you have audit retention longer than 30 days, you can replay the last edit's payload into a new dashboard and get most of the structure back. Tile queries, layout, filter defaults — yes. Comments and view counts — no.

  3. Source control — if your team has the discipline of exporting dashboards to JSON and committing them to git after major changes, you have a perfect record. Re-import the JSON. Most teams don't do this; if you're reading this, consider starting.

Preventing the next time

For dashboards critical enough that losing them would hurt:

  • Mark them as Critical in the dashboard settings — critical dashboards require a typed confirmation to delete and trigger an admin notification
  • Schedule a JSON export under the dashboard's Backups tab — runs nightly, drops the spec into a configurable storage backend
  • Lock the Owner group permission so only multiple people together (org admins, dashboard owners) can delete

See also