Leveraging OpenAI for Automated Data Storytelling in Power BI


Automated data storytelling is a powerful way to transform complex data visualizations into meaningful narratives. By leveraging OpenAI’s natural language generation capabilities, you can create engaging and informative stories based on your Power BI data visualizations. In this blog post, we’ll discuss the importance of automated data storytelling and guide you through the process of using OpenAI to generate narratives and summaries for your Power BI reports.

Note – Please be aware that this solution involves interacting with OpenAI’s API. I encourage users to familiarize themselves with OpenAI’s data usage policy (https://platform.openai.com/docs/data-usage-policy) and take necessary precautions to ensure the privacy and security of their data.

  1. The Importance of Automated Data Storytelling

Data visualizations in Power BI enable users to analyze and gain insights from their data. However, interpreting these visualizations can be challenging, especially for users without a background in data analysis. Automated data storytelling bridges this gap by:

  • Making data insights accessible: Narratives help users understand the context and significance of the data, making insights more accessible to a broader audience.
  • Enhancing decision-making: Clear and concise narratives can help users grasp the implications of the data, leading to better-informed decisions.
  • Saving time and resources: Generating data stories automatically reduces the time and effort required to create manual reports and analyses.
  1. Prerequisites and Setup

Before we begin, you’ll need the following:

  • Power BI data visualizations: Ensure that you have a Power BI report or dashboard with data visualizations that you’d like to generate narratives for.
  • OpenAI API key: Sign up for an OpenAI API key if you haven’t already. You’ll use this to access OpenAI’s natural language generation capabilities. Visit https://beta.openai.com/signup/ to sign up.
  • A development environment: You can use any programming language and environment that supports HTTP requests. For this tutorial, we’ll use Python and the requests library.
  1. Accessing Power BI Data

In order to generate narratives based on your Power BI data visualizations, you’ll first need to extract the data from the visualizations. You can do this using the Power BI API. Follow the instructions in the “Accessing Power BI Data” section of our previous blog post on creating a Power BI chatbot to set up the necessary API access and create a Python function to query the Power BI API: https://christopherfinlan.com/?p=1921

  1. Generating Narratives with OpenAI

Once you have access to your Power BI data, you can use OpenAI’s API to generate narratives based on the data. Create a Python function to send data to the OpenAI API, as demonstrated in the “Building the Chatbot with OpenAI” section of our previous blog post: https://christopherfinlan.com/?p=1921

  1. Crafting Data Stories

To create data stories, you’ll need to design prompts for the OpenAI API that effectively convey the context and purpose of the data visualizations. The prompts should include relevant data points, visualization types, and any specific insights you’d like the narrative to highlight. Here’s an example of a prompt for a sales report:

openai_prompt = f"""
Create a narrative based on the following sales data visualization:

- Data: {sales_data}
- Visualization type: Bar chart
- Time period: Last 12 months
- Key insights: Top 3 products, monthly growth rate, and seasonal trends

narrative = chat_with_openai(openai_prompt)

Remember to replace {sales_data} with the actual data you’ve extracted from your Power BI visualization.

  1. Integrating Narratives into Power BI Reports

With the generated narratives, you can enhance your Power BI reports by embedding the narratives as text boxes or tooltips. Although Power BI doesn’t currently support direct integration with OpenAI, you can use the following workaround:

  • Manually copy the generated narrative and paste it into a text box or tooltip within your Power BI report.

For a more automated approach, you can build a custom web application that combines both Power BI data visualizations and generated narratives. To achieve this, follow these steps:

  1. Embed Power BI visuals using Power BI Embedded: Power BI Embedded allows you to integrate Power BI visuals into custom web applications. Follow the official documentation to learn how to embed Power BI reports and dashboards in your web application: https://docs.microsoft.com/en-us/power-bi/developer/embedded/embedding
  2. Create a web application with a user interface: Design a user interface for your web application that displays Power BI visuals alongside the generated narratives. You can use HTML, CSS, and JavaScript to create the user interface.
  3. Fetch narratives using JavaScript: When a user interacts with your Power BI visuals or requests a narrative, use JavaScript to send a request to your OpenAI-powered Python backend. The backend should return the generated narrative, which can then be displayed in your web application.

Here’s a simple example using JavaScript to fetch a narrative from your Python backend:

async function getNarrative() {
    const response = await fetch('http://localhost:5000/narrative', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
        body: JSON.stringify({ data: yourData }),

    const responseData = await response.json();
    document.getElementById('narrative-container').innerText = responseData.narrative;

Remember to replace yourData with the data you’ve extracted from your Power BI visualization.


Automated data storytelling enhances the value of Power BI data visualizations by providing users with engaging narratives that help them better understand their data. By leveraging OpenAI’s natural language generation capabilities, you can automatically generate insightful narratives and summaries based on your Power BI visuals. Although direct integration with Power BI is not currently available, you can still utilize OpenAI-generated narratives in your reports or create custom web applications to combine Power BI visuals with automated storytelling.

This blogpost was created with help from ChatGPT Pro.

2 thoughts on “Leveraging OpenAI for Automated Data Storytelling in Power BI

  1. I read your post – “Integrating Power BI with OpenAI: A Comprehensive Guideā€ – In that Step 2 does not work when defining the Authority & Scope. You wrote in the comments that you have updated it, but still it is not working. Can you please clarify.


Comments are closed.