MICROSOFT POWER BI • VISUALIZATIONS AND REPORT DESIGN

Bookmarks & Buttons for Navigation — Use bookmarks and buttons for navigation and story-style reports (intro)

Transform static dashboards into interactive, narrative-driven experiences using Power BI's bookmark and button features.

Historical Context & Motivation

Business intelligence tools have historically presented data as static grids of tables and charts, requiring users to mentally assemble the narrative from disconnected visuals. As data-driven decision making matured through the 2010s, report consumers increasingly demanded guided analytical experiences — reports that could tell a story, walk stakeholders through findings sequentially, and adapt their visual state in response to user actions. Microsoft Power BI addressed this gap by introducing bookmarks and action buttons, two features that together transform flat dashboards into interactive, navigable report applications.

2015
Power BI Desktop Launches
Microsoft releases Power BI Desktop as a free self-service BI tool, offering drag-and-drop visuals but limited interactivity beyond basic cross-filtering between charts.
2017
Bookmarks Feature Introduced
Power BI introduces bookmarks, allowing report authors to capture and restore a specific view state — including filter context, slicer selections, and visual visibility — as a named snapshot.
2018
Buttons & Actions API
Action buttons are added to Power BI, enabling report authors to wire user clicks to bookmark navigation, page navigation, URL links, Q&A, and web URLs, creating app-like report experiences.
2020
Personal Bookmarks & Spotlight
Power BI Service adds personal bookmarks — allowing consumers, not just authors, to save their own view states. The Spotlight feature is also integrated, enabling dramatic focus effects tied to bookmarks.
2023
Enhanced Navigation & Story Mode
Continued improvements include bookmark groups, button-state formatting (hover, pressed, disabled), and tighter integration with the Power BI mobile app, solidifying story-style reporting as a first-class design pattern.

The central question these features address is deceptively simple: how do you turn a collection of visuals and filters into a linear or branching narrative that guides a stakeholder from context, through analysis, to insight — all within a single Power BI report? Bookmarks and buttons provide the state-management and event-handling primitives needed to build exactly this kind of interactive experience, drawing a clear parallel to the concept of state machines familiar from software engineering.

Core Principles & Definitions

Before diving into implementation, it is essential to understand the foundational concepts that underpin bookmarks and buttons in Power BI. These features interact with the report's visual layer, filter context, and selection state to create distinct report views that can be recalled on demand. Think of a bookmark as a serialized snapshot of the report's current UI state — analogous to a Git commit capturing the state of a codebase at a specific point in time.

1

Bookmark

A named snapshot that captures a combination of filter/slicer state, visual visibility (show/hide), and optionally the selected data point. Bookmarks can be scoped to the entire page or a specific visual.
2

Button

An interactive report element that triggers an action on click. Actions include navigating to a bookmark, navigating to another page, opening a URL, running Q&A, or going back in the navigation stack. Buttons support custom text, icons, images, and conditional formatting.
3

Report State

The complete set of variables that determine what a user sees at any moment: which visuals are visible, which filters are applied, which slicers are set, and which data points are selected. A bookmark is essentially a serialized report state.
4

Story-Style Report

A report designed as a sequential or branching narrative where the user progresses through curated views — much like slides in a presentation — but with full interactivity at each step. Built by chaining bookmarks through buttons.
5

Bookmark Properties

Each bookmark stores three configurable property groups: Data (filters, slicers, sort order), Display (visual visibility, spotlight), and Current Page (which page to show). Authors toggle these independently for fine-grained control.
KEY TAKEAWAY
Think of a Power BI bookmark as a saved game state in a video game. Just as a save file records your position, inventory, and quest progress so you can reload exactly where you left off, a bookmark records the report's filter context, visual visibility, and selections so you can restore that exact view with a single click. Buttons are the in-game menu options that let you choose which save to load.

Visual Explanation — Bookmark State Machine

The relationship between bookmarks and buttons in a story-style report can be modeled as a finite state machine (FSM). Each bookmark represents a distinct state, and each button represents a transition between states. The following diagram illustrates a simple three-scene story report where the user can navigate forward, backward, or jump to any scene via a navigation bar. This mental model maps directly to the FSM abstraction you encounter in automata theory and UI state management libraries like XState.

The diagram shows three bookmarks as FSM states (violet, cyan, pink), with forward and back transitions represented by button actions. The navigation bar at the bottom provides O(1) random access to any state, analogous to indexed array access versus sequential traversal.

Notice how the architecture mirrors patterns you may already know from front-end frameworks. In React, for instance, a component's rendered output is a pure function of its state; similarly, a Power BI report page's appearance is a pure function of the active bookmark's stored properties. The buttons act as event dispatchers that trigger state transitions. The key design decision is whether your story follows a strictly linear path (like a slideshow) or offers branching paths (like a choose-your-own-adventure), as the latter requires more bookmarks and careful state management to avoid dead ends.

How Bookmarks & Buttons Work Under the Hood

When a report author creates a bookmark in Power BI Desktop, the application serializes the current report state into an internal JSON-like structure stored within the .pbix file. This structure captures three orthogonal property groups, each of which can be independently toggled on or off for a given bookmark. Understanding these property groups is critical because misconfiguring them is the most common source of bugs in bookmark-based navigation.

Bookmark Property Groups

The three property groups that compose a Power BI bookmark's state.
Property GroupWhat It CapturesWhen to Enable
DataAll active filters, slicer selections, sort orders, drill-down state, and cross-highlight selections.When the bookmark should change which data is displayed — e.g., switching from 'All Regions' to 'West Region Only'.
DisplayVisibility (shown/hidden) of each visual on the page, spotlight state, and the visual's position if it has been moved.When the bookmark should show/hide visuals — e.g., toggling between a chart view and a table view on the same page.
Current PageWhich report page is active when the bookmark is applied.When the bookmark should navigate the user to a different page — e.g., jumping from a summary page to a details page.

Button Action Types

Buttons in Power BI are visual elements placed on the report canvas. Under Format → Action, the author assigns one of several action types. The most important for navigation is Bookmark, which applies a selected bookmark when the button is clicked. Other action types include Page Navigation (jump to a named page), Back (return to the previous view, functioning like a browser back button), Q&A (open the natural language query box), and Web URL (open an external link). Buttons can use built-in shapes (blank, back arrow, information icon, etc.) or custom images, and they support conditional formatting on fill, outline, and text color based on DAX measures — enabling dynamic styling such as highlighting the 'active' navigation button.

⚠️ Common Pitfall
If you leave the Data property enabled on a bookmark that is only meant to toggle visual visibility, applying that bookmark will overwrite any filters the user has set since the bookmark was created. This is the #1 debugging headache in bookmark navigation. Always disable the Data property on display-only bookmarks.

Execution Model

When a user clicks a button wired to a bookmark, Power BI's rendering engine diffs the current report state against the bookmark's stored state and applies only the changed properties. This diff-and-patch model is conceptually identical to how React's virtual DOM reconciliation works: rather than re-rendering the entire page, the engine calculates the minimal set of mutations needed to transition from Statecurrent to Statebookmark. The transition includes a smooth animation (configurable fade duration), giving the user a visual cue that the report state has changed.

Common Design Patterns for Bookmark Navigation

In practice, Power BI report authors employ a handful of recurring design patterns when combining bookmarks and buttons. These patterns range in complexity from simple toggles to full multi-scene narratives. The diagram below catalogs the four most common patterns, organized by the number of bookmarks required and the navigation topology.

Four canonical design patterns for bookmark-based navigation, arranged by increasing complexity. The Toggle pattern requires only two bookmarks; the Branching Story pattern may require O(n²) transitions in the worst case.

The Toggle pattern is the simplest and most common. You create two bookmarks on the same page — one with Visual A visible and Visual B hidden, and another with the opposite configuration — then wire two buttons (or a single toggle button with conditional formatting) to switch between them. This is ideal for letting users swap between a bar chart and a data table without consuming additional page real estate.

The Tab Navigation pattern scales the toggle concept to N alternatives. You create N bookmarks, each showing a different set of visuals (or applying different filter contexts), and arrange N buttons in a horizontal row to simulate a tabbed interface. This is particularly useful when you want to present multiple analytical perspectives on the same data — for example, tabs for Sales, Marketing, and Operations — without forcing the user to navigate to separate report pages.

The Linear Story pattern chains bookmarks into a sequence with forward and back buttons. This is the pattern most closely aligned with 'story-style reporting' — it guides the consumer through a curated narrative arc (context → analysis → insight → recommendation) while still allowing interactivity at each step. The Branching Story pattern extends this by offering choice points where the user selects which analytical path to follow. This mirrors a directed acyclic graph (DAG) and requires careful design to ensure every path leads to a meaningful conclusion and includes a way to return to the main narrative.

Worked Example — Building a Three-Scene Story Report

Let us walk through the complete process of building a three-scene story-style report that guides an executive through quarterly sales performance. The report has a single page with overlapping visuals, and bookmarks control which visuals are visible at each scene.

Building a Three-Scene Story Report
1
Step 1 — Design the Visual LayersOn a single report page, create three groups of visuals that will occupy overlapping canvas regions. Scene 1 (Overview): a KPI card showing total revenue, a donut chart of revenue by region, and a title text box reading 'Q4 Overview'. Scene 2 (Trends): a line chart of monthly revenue over 12 months with a Year slicer set to 2024, and a title text box reading 'Revenue Trends'. Scene 3 (Detail): a matrix visual showing revenue by product category and region, filtered to Q4 only. Group each scene's visuals using the Selection Pane (View → Selection Pane) and name the groups grp_overview, grp_trends, and grp_detail.
Three named visual groups on a single page, stacked on top of each other.
2
Step 2 — Create the BookmarksOpen the Bookmarks Pane (View → Bookmarks). For the first bookmark: hide grp_trends and grp_detail using the eye icon in the Selection Pane, leave grp_overview visible, then click 'Add' in the Bookmarks Pane. Name it BM_Overview. Right-click the bookmark → uncheck Data (we only want display changes). Repeat for BM_Trends (showing only grp_trends) and BM_Detail (showing only grp_detail). For BM_Trends and BM_Detail, leave Data enabled so they also apply the relevant filter context (Year=2024 and Quarter=Q4 respectively).
Three bookmarks: BM_Overview (Display only), BM_Trends (Display + Data), BM_Detail (Display + Data).
3
Step 3 — Add Navigation ButtonsInsert three buttons at the top of the page to serve as a navigation bar (Insert → Buttons → Blank). Label them 'Overview', 'Trends', and 'Detail'. Position them in a horizontal row. For each button, go to Format → Action → toggle Action to On, set Type to Bookmark, and select the corresponding bookmark. For example, the 'Trends' button → Action → Bookmark → BM_Trends.
Three tab-style buttons wired to their respective bookmarks.
4
Step 4 — Add Forward/Back ButtonsTo support linear navigation, add a '▸ Next' button and a '◂ Back' button at the bottom-right of the page. These must be included in all three bookmark states (always visible). The 'Next' button on Scene 1 links to BM_Trends; the 'Next' button on Scene 2 links to BM_Detail. Because a single button can only link to one bookmark, you have two options: (a) create scene-specific Next/Back buttons and include them in the appropriate bookmark's visible set, or (b) use a single pair of Next/Back buttons whose action targets are set via conditional formatting driven by a DAX measure that tracks the current scene index. Option (a) is simpler; option (b) is more maintainable at scale.
Bidirectional linear navigation added. The report now supports both random access (tab buttons) and sequential (Next/Back) navigation.
5
Step 5 — Test and Update BookmarksClick each bookmark in the Bookmarks Pane to verify the correct visuals appear and filters apply. If anything is wrong, adjust the visual visibility and filters, then right-click the bookmark → Update to overwrite the stored state. Finally, switch to Reading View (or publish to the Power BI Service) and test all buttons with Ctrl+Click in Desktop. In Reading View, standard clicks work.
A fully functional three-scene story report with tab navigation and sequential forward/back navigation.

Strengths, Limitations & Comparisons

Like any design tool, bookmarks and buttons come with trade-offs. Understanding their strengths and limitations helps you make informed decisions about when to use bookmark navigation versus alternative approaches such as multi-page reports, drillthrough pages, or embedded Power Apps.

Strengths and limitations of bookmark-based navigation in Power BI.
AspectStrengthsLimitations
User ExperienceSmooth animated transitions; app-like feel; guided narratives reduce cognitive load for non-technical users.Can confuse users if the UI does not clearly indicate which 'scene' is active; no built-in progress indicator.
DevelopmentNo code required; purely GUI-based configuration in Power BI Desktop. Fast to prototype.Bookmarks must be manually updated when visuals change. Adding a new scene requires updating all dependent bookmarks. No version control.
ScalabilityWorks well for reports with 3–10 scenes and simple navigation topologies (linear or tab).Combinatorial explosion for complex branching: N scenes with full interconnection require O(N²) button-bookmark pairs. Bookmark pane becomes unwieldy beyond ~20 bookmarks.
PerformanceBookmark transitions are fast because they only diff and patch the changed state — no new data queries are issued if the Data property is unchanged.Bookmarks with the Data property enabled trigger re-queries against the dataset, which can introduce latency on large models.
CollaborationPersonal bookmarks in Power BI Service allow consumers to save their own views without affecting the author's design.Report bookmarks (author-defined) are embedded in the .pbix file and cannot be edited by consumers. Merging bookmark changes across team members is manual.
KEY TAKEAWAY
Bookmark navigation is best compared to building a presentation with interactive slides — it trades the flexibility of a freeform dashboard for the structure of a guided experience. Just as you would not build a 200-slide PowerPoint when a report with hyperlinks would suffice, you should not use bookmarks when simple page navigation or drillthrough achieves the same goal with less maintenance overhead. Choose the simplest navigation pattern that meets your stakeholder's needs.

Connection to Advanced Techniques

The introductory bookmark and button concepts covered here form the foundation for significantly more advanced Power BI report design techniques. As you build increasingly sophisticated reports, you will encounter scenarios where the basic approach needs to be extended with DAX-driven conditional logic, the Power BI JavaScript API for embedded reports, or integration with external tools.

How introductory bookmark concepts extend to advanced Power BI techniques.
Intro Concept (This Lesson)Advanced Extension
Manually create bookmarks and wire buttons via the GUI.Use the Power BI JavaScript API (report.bookmarkApply()) to programmatically apply bookmarks in embedded reports, enabling integration with custom web applications and automated walkthroughs.
Static button text and colors.Apply conditional formatting to button fill, text, and icon based on DAX measures. Example: highlight the 'active tab' button by checking whether a measure like ActiveScene = "Trends" returns TRUE.
Fixed bookmark state captured at design time.Combine bookmarks with field parameters and calculation groups to create dynamic bookmarks where the visual content adapts based on user-selected measures — not just filters.
Buttons with single-action targets.Layer bookmarks with drillthrough actions and page tooltips to create multi-level navigation where clicking a data point launches a drillthrough page, and a Back button returns to the bookmarked story scene.
Personal bookmarks for individual consumers.Use Power BI REST API to manage bookmarks programmatically — creating, listing, and applying bookmarks on behalf of users for automated report delivery and personalized experiences.

Looking forward, mastering bookmarks and buttons positions you to build Power BI report applications — fully navigable, multi-page experiences that rival custom-built web dashboards in interactivity. The Power BI App feature lets you package multiple reports and dashboards into a single navigable application with a custom sidebar, and bookmarks provide the intra-page navigation glue. This architectural pattern is directly analogous to building a single-page application (SPA) in web development, where routes correspond to pages and component state corresponds to bookmarks.

Practice Problems

PROBLEM 1CONCEPTUAL
A Power BI report author creates a bookmark intended only to toggle the visibility of two visuals (show a chart, hide a table). They leave all three bookmark property groups — Data, Display, and Current Page — enabled. A consumer applies the bookmark after setting a date slicer to 'January 2024'. What unexpected behavior will the consumer experience, and why?
PROBLEM 2BASIC CALCULATION
You are designing a tab-based navigation interface with 5 tabs (Sales, Marketing, Operations, Finance, HR), each requiring its own bookmark to show a unique set of visuals. You also want a 'Reset' button that returns to a default view. How many total bookmarks and buttons do you need to create?
PROBLEM 3INTERMEDIATE
You are building a linear story report with 4 scenes. Each scene has its own 'Next' and 'Back' button (scene-specific, not shared). Scene 1 has no Back button, and Scene 4 has no Next button. How many total buttons and bookmarks are required? Additionally, for each bookmark, which property groups (Data, Display, Current Page) should be enabled if every scene shows different visuals on the same page and applies a different filter, but all scenes remain on the same report page?
PROBLEM 4APPLIED
A product manager asks you to build a Power BI report for a quarterly business review. The report should: (1) start with an executive summary showing high-level KPIs, (2) let the viewer choose between 'Revenue Deep Dive' or 'Customer Deep Dive' paths, (3) each path has two drill-down scenes, and (4) every scene must have a 'Return to Summary' button. Sketch the bookmark topology (how many bookmarks, what transitions exist) and identify which pattern from Section 5 this represents.
PROBLEM 5CRITICAL THINKING
Compare and contrast bookmark-based navigation with multi-page report navigation (using separate report pages and Page Navigation buttons) in Power BI. Under what circumstances would you choose one approach over the other? Consider factors such as state management, performance, maintainability, and user experience. Propose a hybrid architecture that leverages the strengths of both approaches.

Lesson Summary

Power BI bookmarks capture a serialized snapshot of a report's state — including filter context, visual visibility, and current page — and buttons act as event dispatchers that trigger transitions between these saved states. Together, they enable four core design patterns: the Toggle (swap two views), Tab Navigation (random access across N views), Linear Story (sequential narrative with forward/back), and Branching Story (DAG-structured choose-your-own-adventure).

The key implementation principle is to configure each bookmark's property groups (Data, Display, Current Page) intentionally — disabling Data on display-only bookmarks to avoid overwriting user filters, and enabling it only when the bookmark must change the analytical context. This architectural pattern maps cleanly to the finite state machine model: each bookmark is a state, each button is a transition, and the report's behavior is fully determined by the graph of states and transitions you define. Mastering this introductory toolset positions you to build sophisticated, app-like report experiences using advanced techniques like the Power BI JavaScript API, conditional button formatting, and hybrid multi-page/bookmark architectures.

Varsity Tutors • Microsoft Power BI • Bookmarks & Buttons for Navigation