Connecter n8n à Power BI : pousser vos données en temps réel avec l’API push dataset
Publié le 13 août 2026 · 6 min de lecture
Un dashboard Power BI alimenté par un export CSV manuel du vendredi, c’est un dashboard qui ment le lundi. Beaucoup d’équipes qui automatisent déjà leurs emails, leur support ou leur CRM avec n8n laissent pourtant leur reporting Power BI se remplir à la main — parce que n8n n’a pas de node Power BI natif et que la documentation Microsoft sur le sujet est éparpillée entre trois produits (push dataset, streaming dataset, Fabric). Une étude de référence de Brynjolfsson, Hitt et Kim (Strength in Numbers: How Does Data-Driven Decisionmaking Affect Firm Performance?, 2011 — voir sur Google Scholar) montre que les entreprises qui pilotent leurs décisions par la donnée affichent une productivité supérieure de 5 à 6 % à ce que prédisent leurs seuls investissements technologiques — à condition, évidemment, que la donnée affichée soit à jour. Ce guide détaille comment brancher n8n sur Power BI pour que vos dashboards se mettent à jour tout seuls, sans export manuel.
Pourquoi il n’y a pas de node « Power BI » dans n8n
Contrairement à HubSpot ou Notion, Power BI n’a pas de node dédié dans le cœur de n8n. Deux options s’offrent à vous :
- HTTP Request + credential Microsoft Entra ID (native, intégrée à n8n) : c’est la méthode décrite ici, elle fonctionne sur n8n Cloud comme en self-hosted, sans rien installer.
- Le node communautaire
n8n-nodes-powerbi: plus rapide à configurer une fois installé, mais il nécessite l’activation des community nodes sur votre instance — impossible sur certains plans n8n Cloud restreints, et un point de dépendance supplémentaire à maintenir.
Pour une intégration qui doit rester stable dans le temps, l’approche HTTP Request + Entra ID reste le choix le plus robuste : elle repose uniquement sur l’API REST officielle de Power BI, documentée et versionnée par Microsoft.
Créer l’application Azure AD (Microsoft Entra ID)
Tout part d’une application enregistrée dans Microsoft Entra ID (l’ex-Azure Active Directory), qui servira d’identité technique à n8n :
- Sur portal.azure.com, allez dans Microsoft Entra ID → App registrations → New registration.
- Donnez-lui un nom (« n8n-powerbi-push » par exemple) et laissez le type de compte par défaut.
- Dans API permissions, ajoutez l’API Power BI Service avec la permission déléguée
Dataset.ReadWrite.All, puis accordez le consentement administrateur. - Dans Certificates & secrets, créez un client secret et copiez-le immédiatement — il ne sera plus jamais affiché en clair.
- Notez le Application (client) ID et le Directory (tenant) ID depuis l’onglet Overview.
Un détail qui coûte cher en debug si on l’ignore : par défaut, n’importe quelle application Entra ID peut appeler l’API Power BI pour un utilisateur donné. Dans le portail d’administration Power BI, sous Paramètres du locataire → Développeur, vous pouvez restreindre l’usage de l’API à un groupe de sécurité précis — une bonne pratique de moindre privilège à appliquer dès la mise en production, dans la continuité de ce qu’on détaille dans notre guide sur la sécurisation des credentials API dans n8n.
Configurer la credential dans n8n
Dans n8n, créez une nouvelle credential de type Microsoft Entra ID (Azure Active Directory) — native, pas besoin de node communautaire pour celle-ci. Renseignez le Client ID, le Client Secret et le Tenant ID récupérés à l’étape précédente, et positionnez le scope sur https://analysis.windows.net/powerbi/api/.default. Testez la connexion : n8n doit obtenir un token OAuth2 valide.
Ajoutez ensuite un node HTTP Request, authentification « Predefined Credential Type » → Microsoft Entra ID, et vous êtes prêt à appeler n’importe quel endpoint de l’API Power BI.
Créer le push dataset
Un push dataset se crée par un simple appel API, en décrivant son schéma en JSON. Depuis un node HTTP Request en POST vers https://api.powerbi.com/v1.0/myorg/datasets, avec un corps du type :
{
"name": "n8n_tickets_support",
"defaultMode": "Push",
"tables": [{
"name": "tickets",
"columns": [
{ "name": "id", "dataType": "String" },
{ "name": "priorite", "dataType": "String" },
{ "name": "score_ia", "dataType": "Int64" },
{ "name": "horodatage", "dataType": "DateTime" }
]
}]
}
La réponse renvoie un id de dataset à réutiliser pour tous les envois de lignes suivants. C’est le même principe qu’un pipeline d’ingestion documentaire vers Supabase pgvector : on définit d’abord un schéma strict, puis on alimente au fil de l’eau.
Pousser les lignes depuis un workflow n8n
Imaginons un scénario proche de ce que couvre notre guide sur le scoring des tickets support par IA : un workflow n8n classe et note chaque ticket entrant, puis pousse le résultat vers Power BI pour un dashboard temps réel visible par toute l’équipe support, plutôt qu’un tableau Google Sheets consulté une fois par semaine.
Après le node IA de scoring, un second node HTTP Request en POST vers .../datasets/{datasetId}/tables/tickets/rows avec un corps {"rows": [...]} suffit. Trois limites à respecter, documentées par Microsoft :
| Limite | Valeur |
|---|---|
| Lignes par requête POST | 10 000 max |
| Lignes ajoutées par heure et par dataset | 1 000 000 |
| Requêtes POST par minute et par dataset | 120 |
| Requêtes POST en attente simultanées | 5 max |
Pour un flux de tickets unitaire, une ligne par exécution suffit largement et ces limites ne se voient jamais. Pour un import massif ou une resynchronisation complète, découpez l’envoi avec un node Loop Over Items et un Wait entre chaque lot de quelques milliers de lignes, exactement comme recommandé dans notre guide sur la gestion des erreurs 429.
Push dataset ou streaming dataset : quelle politique de rétention
Power BI propose trois profils, choisis à la création du dataset :
| Profil | Historique conservé | Requêtable dans un rapport | Cas d’usage |
|---|---|---|---|
Push, sans rétention (none) |
5 000 000 lignes/table | ✅ Oui | Dashboard analytique avec historique complet |
| Push, rétention FIFO | 200 000 lignes/table (rolling) | ✅ Oui | Suivi glissant (30-90 derniers jours) |
| Streaming pur | ~200 000 lignes en cache, non persistées | ❌ Tile temps réel uniquement | Indicateur instantané (compteur, jauge) |
Pour un dashboard de support ou de conformité qui doit garder une trace exploitable dans le temps — dans l’esprit de ce que couvre le Pack Conformité & Audit (149 €) — le mode push sans rétention est le bon choix : vous gardez l’historique complet côté Power BI, sans dépendre uniquement de la piste d’audit stockée dans Supabase.
Les limites à connaître avant de se lancer
Un push dataset n’est pas un entrepôt de données généraliste : 75 colonnes et 75 tables maximum par dataset, aucune relation entre tables ni mesure DAX avancée comme en mode import classique, et l’usage de l’API nécessite une licence Power BI Pro ou Premium par utilisateur (PPU) sur le workspace cible — un compte gratuit ne suffit pas. Si votre besoin dépasse ce périmètre (jointures complexes, gros volumes historisés, modèle en étoile), mieux vaut alimenter une vraie base — voir notre comparatif Data Tables n8n vs Supabase ou Postgres — puis brancher Power BI dessus en mode import ou DirectQuery classique, hors périmètre de ce guide.
En résumé
Sans node natif, Power BI reste accessible depuis n8n via HTTP Request et une credential Microsoft Entra ID standard : créez l’application Azure AD, définissez le schéma du push dataset, puis poussez les lignes au fil de vos workflows en respectant les quotas (10 000 lignes/requête, 120 requêtes/minute). De quoi transformer n’importe quel pipeline n8n déjà en place — tri d’emails, scoring de tickets, piste d’audit — en dashboard Power BI qui se met à jour tout seul, sans export manuel du vendredi soir.
FAQ
Questions fréquentes
Existe-t-il un node Power BI officiel dans n8n ?
Non. n8n ne propose pas de node Power BI natif dans son cœur. La méthode la plus portable — celle décrite dans ce guide — consiste à combiner le node HTTP Request avec la credential native Microsoft Entra ID (OAuth2) pour appeler directement l’API REST Power BI. Un node communautaire (n8n-nodes-powerbi) existe aussi, mais il doit être installé séparément et n’est pas disponible tel quel sur toutes les instances n8n Cloud.
Quelle est la différence entre un push dataset et un streaming dataset Power BI ?
Un push dataset stocke l’historique des données (jusqu’à 5 millions de lignes par table sans politique de rétention, ou 200 000 lignes en FIFO) et peut être requêté comme un dataset classique dans des rapports. Un streaming dataset pur ne conserve rien au-delà d’un cache tampon d’environ 200 000 lignes affichées en direct sur un tile : idéal pour un indicateur instantané, inutilisable pour une analyse historique.
Combien de lignes peut-on envoyer par appel API depuis n8n ?
L’API POST Rows de Power BI accepte au maximum 10 000 lignes par requête, avec un plafond global d’un million de lignes ajoutées par heure et par dataset, et 120 requêtes par minute. Pour des volumes plus importants, il faut découper l’envoi en lots avec un node Loop Over Items et un Wait entre chaque paquet.
Bundle FlowKit Complet
269 €