AutomationFlowsGeneral › Refresh Power BI Dataset with History Monitoring

Refresh Power BI Dataset with History Monitoring

Original n8n title: Automate Power Bi Dataset Refreshes with History Monitoring

ByRobert Breen @rbreen on n8n.io

This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

Event trigger★★☆☆☆ complexity5 nodesN8N Nodes Powerbi
General Trigger: Event Nodes: 5 Complexity: ★★☆☆☆ Added:

This workflow corresponds to n8n.io template #7336 — we link there as the canonical source.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "be660458-e667-4bad-84c6-b43635acb074",
      "name": "When clicking \u2018Execute workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -520,
        -200
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "34b3425b-e8ce-4713-a786-417b898e3b89",
      "name": "Sticky Note16",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1460,
        -1000
      ],
      "parameters": {
        "color": 5,
        "width": 832,
        "height": 1360,
        "content": "## \ud83d\udcec Need Help or Want to Customize This?\n\ud83d\udce7 [robert@ynteractive.com](mailto:robert@ynteractive.com)  \n\ud83d\udd17 [LinkedIn](https://www.linkedin.com/in/robert-breen-29429625/)\n\n\n\n### Step 1: Set Up Azure App Registration\n\n1. Go to [Azure Portal](https://portal.azure.com/)\n2. Navigate to **Azure Active Directory** \u2192 **App registrations**\n3. Click **New registration**\n4. Configure your app:\n   - **Name**: `n8n-powerbi-integration`\n   - **Supported account types**: Accounts in this organizational directory only\n   - **Redirect URI**: `https://your-n8n-instance.com/rest/oauth2-credential/callback`\n5. Click **Register**\n6. Note down the **Application (client) ID** and **Directory (tenant) ID**\n\n### Step 2: Configure App Permissions\n\n1. In your app registration, go to **API permissions**\n2. Click **Add a permission** \u2192 **Power BI Service**\n3. Select **Delegated permissions** and add:\n   - `Dataset.ReadWrite.All`\n   - `Dataset.Read.All`\n   - `Workspace.Read.All`\n4. Click **Grant admin consent** for your organization\n\n### Step 3: Create Client Secret\n\n1. In your app registration, go to **Certificates & secrets**\n2. Click **New client secret**\n3. Add description: `n8n-powerbi-secret`\n4. Set expiration (recommended: 24 months)\n5. Click **Add** and copy the secret value immediately\n\n### Step 4: Configure Power BI API Credentials in n8n\n\n1. In n8n, go to **Credentials** \u2192 **Add Credential** \u2192 **Power BI OAuth2 API**\n2. Configure as follows:\n   - **Client ID**: Your Application (client) ID from Step 1\n   - **Client Secret**: Your client secret from Step 3\n   - **Scope**: `https://analysis.windows.net/powerbi/api/.default`\n3. Save and test the connection\n"
      },
      "typeVersion": 1
    },
    {
      "id": "921821cb-ca64-49c9-87d6-083395532c72",
      "name": "Refresh Datasource",
      "type": "n8n-nodes-powerbi.powerBi",
      "position": [
        -180,
        -360
      ],
      "parameters": {
        "groupId": "me",
        "resource": "dataset",
        "datasetId": "475347ba-f8d9-4f9d-b5c7-87fa6d5afd4c",
        "operation": "refresh"
      },
      "credentials": {
        "powerBiApiOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "53dccada-90a0-4408-aaab-395366109010",
      "name": "Check Refresh History",
      "type": "n8n-nodes-powerbi.powerBi",
      "position": [
        -180,
        -20
      ],
      "parameters": {
        "top": 10,
        "groupId": "me",
        "resource": "dataset",
        "datasetId": "475347ba-f8d9-4f9d-b5c7-87fa6d5afd4c",
        "operation": "getRefreshHistory"
      },
      "credentials": {
        "powerBiApiOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "79ad7fb7-eadb-491d-80bc-6626facd7d3d",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -600,
        -1000
      ],
      "parameters": {
        "color": 4,
        "width": 712,
        "height": 1360,
        "content": "\n#### Node Configuration Details:\n\n##### When clicking 'Execute workflow' (Manual Trigger)\n- **Type**: Manual Trigger\n- **Purpose**: Allows manual execution of the workflow\n- No configuration needed\n\n##### Refresh Datasource (Power BI)\n- **Resource**: `dataset`\n- **Operation**: `refresh`\n- **Group ID**: `me` (for personal workspace) or your workspace ID\n- **Dataset ID**: Your Power BI dataset ID (from Step 5)\n- **Credentials**: Select your \"Power BI account\"\n\n##### Check Refresh History (Power BI)\n- **Resource**: `dataset`\n- **Operation**: `getRefreshHistory`\n- **Group ID**: `me` (for personal workspace) or your workspace ID  \n- **Dataset ID**: Your Power BI dataset ID (same as above)\n- **Top**: `10` (number of recent refresh records to retrieve)\n- **Credentials**: Select your \"Power BI account\"\n\n"
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "Refresh Datasource",
            "type": "main",
            "index": 0
          },
          {
            "node": "Check Refresh History",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

Source: https://n8n.io/workflows/7336/ — original creator credit. Request a take-down →

More General workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

General

Http-Handle. Uses httpRequest. Event-driven trigger; 13 nodes.

HTTP Request
General

Absen Otomatis. Uses ssh, executeWorkflowTrigger, scheduleTrigger, httpRequest. Event-driven trigger; 12 nodes.

Ssh, Execute Workflow Trigger, HTTP Request
General

Automate document translation and ensure translation accuracy using Straker Verify, Google Drive and Slack.

N8N Nodes Straker Verify, Google Drive, Google Drive Trigger
General

The Switch node is powerful — but easy to misconfigure. Without a proper fallback, things can silently break. 🧨

Stop And Error
General

This workflow contains community nodes that are only compatible with the self-hosted version of n8n. Monitors Google Drive for new video file uploads Downloads and processes videos using VLM Run AI tr

@Vlm Run/N8N Nodes Vlmrun, Google Drive Trigger, Google Drive +1