{"id":1643,"date":"2026-07-11T18:49:41","date_gmt":"2026-07-11T16:49:41","guid":{"rendered":"https:\/\/www.flip-design.de\/?p=1643"},"modified":"2026-07-11T18:49:41","modified_gmt":"2026-07-11T16:49:41","slug":"power-bi-desktop-bridge-creating-power-bi-reports-using-the-new-bridge-and-codex","status":"publish","type":"post","link":"https:\/\/www.flip-design.de\/?p=1643","title":{"rendered":"Power BI Desktop Bridge \u2013 Creating Power BI Reports Using the New Bridge and Codex"},"content":{"rendered":"\n<p>The new Power BI Desktop Bridge feature was recently released in preview. At first, I had read that it could only be used with Claude. However, that is not the case. Since I already have a ChatGPT subscription, I can also use the Power BI Desktop Bridge with Codex.<\/p>\n\n\n\n<p>To get everything up and running, I first had to install several components in my PowerShell 7 environment.<\/p>\n\n\n\n<p>The following components are required:<\/p>\n\n\n\n<ul>\n<li>Node.js<\/li>\n\n\n\n<li>Git<\/li>\n\n\n\n<li>OpenAI Codex CLI<\/li>\n\n\n\n<li>Microsoft Skills for Fabric<\/li>\n\n\n\n<li>Power BI Authoring Plugin<\/li>\n\n\n\n<li>Power BI Desktop Bridge CLI<\/li>\n<\/ul>\n\n\n\n<p>After installation, you can verify that the required components are available by checking their versions:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>node --version\r\nnpm --version\r\ngit --version\r\ncodex --version\r\npowerbi-desktop --version<\/code><\/pre>\n\n\n\n<p>In addition, you obviously need a current version of Power BI Desktop.<\/p>\n\n\n\n<p>The Power BI Desktop Bridge feature must also be enabled in Power BI Desktop before it can be used.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-7.png\"><img decoding=\"async\" loading=\"lazy\" width=\"940\" height=\"752\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-7.png\" alt=\"\" class=\"wp-image-1644\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-7.png 940w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-7-300x240.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-7-768x614.png 768w\" sizes=\"(max-width: 940px) 100vw, 940px\" \/><\/a><\/figure>\n\n\n\n<p>I then created a new project in Power BI:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-8.png\"><img decoding=\"async\" loading=\"lazy\" width=\"940\" height=\"375\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-8.png\" alt=\"\" class=\"wp-image-1645\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-8.png 940w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-8-300x120.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-8-768x306.png 768w\" sizes=\"(max-width: 940px) 100vw, 940px\" \/><\/a><\/figure>\n\n\n\n<p>The next step is to check the status of the Power BI Desktop Bridge:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-9.png\"><img decoding=\"async\" loading=\"lazy\" width=\"940\" height=\"529\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-9.png\" alt=\"\" class=\"wp-image-1646\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-9.png 940w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-9-300x169.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-9-768x432.png 768w\" sizes=\"(max-width: 940px) 100vw, 940px\" \/><\/a><\/figure>\n\n\n\n<p>I then imported a simple table into my Power BI project.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-10.png\"><img decoding=\"async\" loading=\"lazy\" width=\"940\" height=\"748\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-10.png\" alt=\"\" class=\"wp-image-1647\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-10.png 940w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-10-300x239.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-10-768x611.png 768w\" sizes=\"(max-width: 940px) 100vw, 940px\" \/><\/a><\/figure>\n\n\n\n<p>I then started Codex from within my PowerShell 7 environment:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-11.png\"><img decoding=\"async\" loading=\"lazy\" width=\"940\" height=\"529\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-11.png\" alt=\"\" class=\"wp-image-1648\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-11.png 940w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-11-300x169.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-11-768x432.png 768w\" sizes=\"(max-width: 940px) 100vw, 940px\" \/><\/a><\/figure>\n\n\n\n<p>Since the previous command verified that the report was successfully opened and connected to the Power BI Desktop Bridge, I can now use Codex to analyze the simple semantic model, which currently consists of a single table.<\/p>\n\n\n\n<p>Of course, the analysis would need to be more comprehensive for semantic models containing multiple tables and relationships between them.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Analyze the current Power BI project in read-only mode.\r\n\r\nThe semantic model contains exactly one imported SQL Server table.\r\nThere are:\r\n- no relationships\r\n- no explicit measures\r\n- no calculated columns\r\n\r\nUse the installed Power BI authoring skills.\r\n\r\nAnalyze only the existing table:\r\n- table name\r\n- all columns\r\n- data types\r\n- default summarization settings\r\n- row count\r\n- date ranges\r\n- numeric minimum, maximum, sum and average\r\n- distinct values for important categorical columns\r\n- useful distributions and groupings\r\n\r\nIf possible, query the actual data through the local Power BI Desktop Analysis Services instance using read-only aggregated queries.\r\n\r\nThen recommend a useful one-page Power BI report based on the actual data.\r\n\r\nFor every recommended visual, specify:\r\n- visual type\r\n- fields\r\n- aggregation\r\n- purpose\r\n\r\nDo not modify the semantic model.\r\nDo not create measures.\r\nDo not create relationships.\r\nDo not modify the report yet.\r\n<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-12.png\"><img decoding=\"async\" loading=\"lazy\" width=\"940\" height=\"529\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-12.png\" alt=\"\" class=\"wp-image-1649\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-12.png 940w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-12-300x169.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-12-768x432.png 768w\" sizes=\"(max-width: 940px) 100vw, 940px\" \/><\/a><\/figure>\n\n\n\n<p>For the analysis, some sample data rows may be sent to Codex. This is important to keep in mind when working with sensitive or confidential data.<\/p>\n\n\n\n<p>To further restrict data access, the prompt can be extended with the following instruction:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Do not send raw data or complete table contents to the model.\n<\/code><\/pre>\n\n\n\n<p>Nevertheless, it is recommended to use only sample or anonymized data when creating and testing Power BI reports with Codex.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-13.png\"><img decoding=\"async\" loading=\"lazy\" width=\"940\" height=\"529\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-13.png\" alt=\"\" class=\"wp-image-1650\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-13.png 940w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-13-300x169.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-13-768x432.png 768w\" sizes=\"(max-width: 940px) 100vw, 940px\" \/><\/a><\/figure>\n\n\n\n<p>Now, I only need to tell Codex what it should do. In this example, I want Codex to create a single report page containing several visualizations for the available metrics, along with a line chart.<\/p>\n\n\n\n<p>I also explicitly instruct Codex not to make any changes to the semantic model.<\/p>\n\n\n\n<p>The prompt can, of course, be much more detailed depending on the specific requirements. For example, additional instructions can be provided regarding the report layout, visual types, colors, formatting, or how individual data values should be displayed.<\/p>\n\n\n\n<p>So, there are virtually no limits to how detailed the instructions can be. The more specific the prompt is, the better Codex can understand the requirements and create the Power BI report accordingly.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Create a simple one-page Power BI report using only the existing imported table.\r\n\r\nDo not modify the semantic model.\r\nDo not create measures, calculated columns, relationships, groups, or bins.\r\n\r\nCreate the following visuals on the existing Page 1:\r\n\r\nOverview cards:\r\n- Total number of records using Count of ID\r\n- Minimum of Zufallszahl\r\n- Maximum of Zufallszahl\r\n- Average of Zufallszahl\r\n- Earliest ImportDate\r\n- Latest ImportDate\r\n\r\nLine chart:\r\n- X-axis: ImportDate\r\n- Y-axis: Average of Zufallszahl\r\n\r\nDesign requirements:\r\n- Use a clean 16:9 layout\r\n- Place the overview cards at the top\r\n- Place the line chart below the cards\r\n- Use readable titles and labels\r\n- Use only existing fields and implicit aggregations\r\n- Do not create any additional visuals\r\n\r\nImportant:\r\n- Modify only the existing Page 1\r\n- Validate the PBIR files after editing\r\n- Do not take a screenshot\r\n<\/code><\/pre>\n\n\n\n<p>Generating the report page may take several minutes. During the process, Codex may also ask for permission to perform certain operations or access external resources.<\/p>\n\n\n\n<p>Once the generation process is complete, the report is reloaded in Power BI Desktop and displays the result based on the provided prompt:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-14.png\"><img decoding=\"async\" loading=\"lazy\" width=\"940\" height=\"505\" src=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-14.png\" alt=\"\" class=\"wp-image-1651\" srcset=\"https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-14.png 940w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-14-300x161.png 300w, https:\/\/www.flip-design.de\/wp-content\/uploads\/2026\/07\/image-14-768x413.png 768w\" sizes=\"(max-width: 940px) 100vw, 940px\" \/><\/a><\/figure>\n\n\n\n<h2>Conclusion<\/h2>\n\n\n\n<p>With this feature, Power BI reports can be created relatively quickly using Codex and the Power BI Desktop Bridge. It is also possible to make changes to the semantic model if required.<\/p>\n\n\n\n<p>Ultimately, the quality of the result depends heavily on how clearly and precisely the requirements are defined. A well-structured and detailed prompt is the key to achieving the desired result.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The new Power BI Desktop Bridge feature was recently released in preview. At first, I had read that it could only be used with Claude. However, that is not the case. Since I already have a ChatGPT subscription, I can &hellip; <a href=\"https:\/\/www.flip-design.de\/?p=1643\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/posts\/1643"}],"collection":[{"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1643"}],"version-history":[{"count":1,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/posts\/1643\/revisions"}],"predecessor-version":[{"id":1652,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=\/wp\/v2\/posts\/1643\/revisions\/1652"}],"wp:attachment":[{"href":"https:\/\/www.flip-design.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1643"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1643"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flip-design.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1643"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}