Kostenloser Leitfaden

Power Automate: 50 Tipps für schnelle und stabile Cloud Flows.

Flows, die hängen, ständig fehlschlagen oder Limits sprengen, kosten Zeit und Vertrauen. Hier habe ich 50 Empfehlungen für schnelle und stabile Power Automate Cloud Flows gesammelt: Von Auslösebedingungen und gezielten Abfragen über Schleifen, Ausdrücke und Fehlerbehandlung bis zu Limits, Lösungen und Betrieb. Kostenlos und ohne Anmeldung.

  • 50 Tipps
  • 8 Themenbereiche
  • 16 schnell umsetzbar
  • Kostenlos ohne Anmeldung

01Warum es sich lohnt

Gute Flows laufen einfach.

Cloud Flows erledigen im Hintergrund Arbeit, die sonst Menschen machen müssten. Das funktioniert nur, wenn sie zuverlässig, sparsam und nachvollziehbar laufen. Drei Gründe, warum sich der Aufwand lohnt.

Zuverlässigkeit

Stabile Flows laufen weiter, auch wenn etwas schiefgeht.

Cloud Flows erledigen oft Aufgaben, die niemand mehr bewusst wahrnimmt: Genehmigungen weiterleiten, Daten zwischen Systemen abgleichen, Benachrichtigungen verschicken. Fällt ein Flow aus, bemerkt das häufig erst jemand, wenn ein Vorgang liegen geblieben ist oder Daten nicht mehr stimmen.

Ein stabiler Flow rechnet mit Fehlern. Er wiederholt vorübergehend fehlgeschlagene Aufrufe, fängt dauerhafte Fehler sauber ab, meldet sie mit allen nötigen Informationen und hinterlässt keine halb verarbeiteten Daten. So bleibt der Prozess verlässlich, auch wenn ein Zielsystem einmal nicht antwortet.

Kapazität und Kosten

Jede gesparte Aktion schont Limits und Budget.

In Power Automate zählt jede Aktion als Anfrage gegen die Limits der Lizenz, auch Variablen, Bedingungen, Wiederholungen und nachgeladene Seiten. Ein Flow, der für jeden Datensatz unnötige Schritte ausführt, verbraucht diese Kapazität schnell und läuft Gefahr, gedrosselt zu werden.

Schlanke Flows mit Auslösebedingungen, gezielten Abfragen und Datenoperationen statt Schleifen brauchen deutlich weniger Aktionen. Sie laufen schneller, belasten Datenquellen weniger und kommen länger mit den vorhandenen Lizenzen aus. In Umgebungen mit nutzungsbasierter Abrechnung wird zudem jeder Lauf berechnet.

Skalierbarkeit

Gute Flows wachsen mit den Datenmengen mit.

Viele Flows funktionieren mit wenigen Testdatensätzen tadellos und geraten ins Stocken, sobald es tausende werden. Dann greifen Grenzen, die vorher keine Rolle gespielt haben: Paginierung, Elemente je Schleife, Drosselung der Konnektoren oder die maximale Laufdauer.

Ein gut geplanter Flow ist von Anfang an auf Wachstum ausgelegt. Er filtert in der Datenquelle, verarbeitet Daten gebündelt, lässt sich als Teil einer Lösung sauber zwischen Umgebungen übertragen und hängt nicht an einzelnen Personen. So trägt er auch steigende Mengen, ohne neu gebaut werden zu müssen.

02Der Weg eines Flows

Wo ein Flow Zeit verliert.

Jeder Lauf beginnt mit dem Auslöser, arbeitet Aktionen und Schleifen ab, ruft Konnektoren und Datenquellen auf und muss im Betrieb überwacht werden. An jeder Station lässt sich Zeit gewinnen. Die Zahlen führen direkt zum passenden Tipp.

  1. Auslöser

    Wann und wie oft ein Flow startet und wie schnell er antwortet.

    Passende Tipps:123456

  2. Aktionen & Schleifen

    Schleifen, Datenoperationen, Ausdrücke und die Fehlerbehandlung im Flow.

    Passende Tipps:131415161718192021222324252627282930

  3. Konnektoren & Datenquellen

    SharePoint und Dataverse, Anforderungslimits, Drosselung und Größen.

    Passende Tipps:7891011123132333435

  4. Lösung & Betrieb

    Lösungen, Verbindungen, Rechte, Tests und Überwachung rund um jeden Lauf.

    Passende Tipps:3637383940414243444546474849

03Die Empfehlungen

50 Tipps für mehr Tempo.

Sortiert nach acht Bereichen. Suchen Sie nach einem Stichwort, filtern Sie nach Bereich oder nach Tipps, die sich direkt im Flow umsetzen lassen, und haken Sie ab, was bei Ihnen schon erledigt ist. Tipp 50 zeigt zum Schluss, warum sich das lohnt. Die Beispiele zeigen Ausdrücke, Auslösebedingungen, OData-Filter und JSON aus der Codeansicht.

Auslöser & Ausführungen

Auslösebedingungen, Filter im Auslöser, Zeitpläne und gleichzeitige Läufe · 6 Tipps

AuslösebedingungenSchnell umsetzbar

Tipp 1: Mit Auslösebedingungen unnötige Läufe vermeiden

Viele Flows starten bei jeder Änderung und prüfen erst danach mit einer Bedingung, ob überhaupt etwas zu tun ist. Jeder dieser Läufe zählt gegen die Anforderungslimits, auch wenn er sofort wieder endet.

Auslösebedingungen (Trigger Conditions) prüfen das schon im Auslöser. Ist die Bedingung nicht erfüllt, startet der Flow gar nicht und es entsteht auch kein Eintrag im Laufverlauf. Mehrere Bedingungen müssen standardmäßig alle erfüllt sein, für eine Oder-Verknüpfung verwenden Sie or().

Empfehlung

Verlagern Sie einfache Prüfungen aus dem Flow in die Einstellungen des Auslösers unter „Auslösebedingungen“. Jede Bedingung beginnt mit dem Zeichen @.

Auslösebedingung · Beispiel
// Nur Elemente mit dem Status „Freigegeben“ (SharePoint-Auswahlspalte)
@equals(triggerOutputs()?['body/Status/Value'], 'Freigegeben')

Bereich: Auslöser & Ausführungen

EndlosschleifenSchnell umsetzbar

Tipp 2: Endlosschleifen verhindern

Ändert ein Flow genau das Element, das ihn ausgelöst hat, löst er sich selbst erneut aus. So kann eine Schleife entstehen, die ständig neue Läufe erzeugt und Anfragen verbraucht.

Empfehlung

Schließen Sie Änderungen durch den Flow selbst per Auslösebedingung aus, bspw. über die Person, die das Element zuletzt geändert hat. Das funktioniert besonders zuverlässig, wenn der Flow mit einem eigenen Dienstkonto schreibt.

Auslösebedingung · Beispiel
// Nicht starten, wenn das Dienstkonto des Flows das Element zuletzt geändert hat
@not(equals(triggerOutputs()?['body/Editor/Email'], 'dienstkonto@example.com'))

Bereich: Auslöser & Ausführungen

Dataverse-AuslöserSchnell umsetzbar

Tipp 3: Dataverse-Auslöser genau eingrenzen

Der Dataverse-Auslöser „Wenn eine Zeile hinzugefügt, geändert oder gelöscht wird“ bietet zwei eigene Filter. „Spalten auswählen“ legt fest, welche Spalten bei einer Änderung den Flow starten. „Zeilen filtern“ prüft mit einem OData-Ausdruck, ob die geänderte Zeile überhaupt relevant ist.

Wichtig: Der Flow startet, sobald eine der ausgewählten Spalten in der Änderung enthalten ist, auch wenn sich ihr Wert nicht geändert hat. Nachschlagespalten werden in „Spalten auswählen“ nicht unterstützt.

Empfehlung

Tragen Sie bei Änderungsauslösern nur die Spalten ein, auf die der Flow wirklich reagieren soll, und keine Spalten, die bei jeder Änderung mitgeschickt werden. Ergänzen Sie bei Bedarf einen Zeilenfilter.

OData-Filter · Beispiel
// Spalten auswählen
statuscode

// Zeilen filtern
statecode eq 0

Bereich: Auslöser & Ausführungen

Zeitplan

Tipp 4: Auf Ereignisse reagieren statt ständig nachzusehen

Geplante Flows, die bspw. jede Minute prüfen, ob es neue Daten gibt, laufen auch dann, wenn nichts zu tun ist. Jeder dieser Läufe verbraucht Aktionen und damit Anfragen. Das kürzeste mögliche Intervall eines Zeitplans liegt bei 60 Sekunden.

Empfehlung

Nutzen Sie, wo möglich, einen ereignisbasierten Auslöser der Datenquelle. Wo ein Zeitplan nötig ist, wählen Sie das Intervall so groß, wie es der Ablauf erlaubt, und verarbeiten Sie je Lauf alle angefallenen Datensätze gesammelt.

Bereich: Auslöser & Ausführungen

Parallelitätssteuerung

Tipp 5: Gleichzeitige Läufe bewusst steuern

Standardmäßig startet ein Flow für jedes Ereignis einen eigenen Lauf, ohne Begrenzung. Treffen viele Ereignisse gleichzeitig ein, greifen zahlreiche Läufe zur selben Zeit auf dieselben Daten zu. Das kann Konflikte und Drosselung auslösen.

Mit der Parallelitätssteuerung des Auslösers begrenzen Sie die Zahl gleichzeitiger Läufe auf einen Wert von 1 bis 100 (Standard bei eingeschalteter Steuerung: 25). Weitere Läufe warten in einer begrenzten Warteschlange, bis ein Platz frei wird.

Empfehlung

Schalten Sie die Parallelitätssteuerung ein, wenn Läufe nicht gleichzeitig dieselben Datensätze bearbeiten dürfen oder ein Zielsystem nur wenige Anfragen verträgt. Mit dem Wert 1 laufen die Läufe nacheinander.

Bereich: Auslöser & Ausführungen

Antwortzeit

Tipp 6: Aufrufende nicht warten lassen

Startet eine App oder ein anderes System einen Flow und wartet auf das Ergebnis, zählt jede Sekunde. Eingehende Anfragen und synchrone Antworten sind auf 120 Sekunden begrenzt. Dauert es länger, erhält die aufrufende Seite eine Zeitüberschreitung.

Empfehlung

Senden Sie die Antwort („Respond to a Power App or flow“ bzw. „Response“) so früh wie möglich, sobald das Ergebnis feststeht. Nacharbeiten wie Protokolle oder E-Mails erledigt der Flow danach.

Bereich: Auslöser & Ausführungen

Daten abfragen & filtern

Filterabfragen, Spaltenauswahl, Paginierung und Batch-Anfragen · 6 Tipps

Filterabfrage und Top CountSchnell umsetzbar

Tipp 7: Filterabfrage und Top Count statt alles holen

Ohne Filter liefert „Get items“ die Einträge einer Liste ungefiltert, und der Flow sortiert erst danach aus. Das kostet Zeit, Speicher und unnötige Datenübertragung.

Mit einer OData-Filterabfrage filtert SharePoint bereits auf dem Server. Standardmäßig liefert die Aktion 100 Einträge. Über „Top Count“ lässt sich die Zahl bis zur Schwelle für Listenansichten von 5.000 Einträgen erhöhen bzw. auf die wirklich benötigte Menge senken.

Empfehlung

Filtern und sortieren Sie in der Abfrage selbst und begrenzen Sie die Anzahl über „Top Count“, wenn Sie bspw. nur den neuesten Eintrag brauchen. Bei Dataverse heißen die Gegenstücke „Zeilen filtern“ und „Zeilenanzahl“.

OData-Filter · Beispiel
// Filterabfrage
Status eq 'Offen' and Bereich eq 'Vertrieb'

// Sortieren nach
Created desc

Bereich: Daten abfragen & filtern

Spalten auswählenSchnell umsetzbar

Tipp 8: In Dataverse nur die benötigten Spalten abrufen

Ohne Angabe liefert „Zeilen auflisten“ alle Spalten einer Tabelle. Je mehr Spalten, desto größer wird die Antwort und desto länger dauern Abruf und Verarbeitung in jedem folgenden Schritt.

Empfehlung

Tragen Sie unter „Spalten auswählen“ die logischen Namen der benötigten Spalten kommagetrennt ein und kombinieren Sie das mit „Zeilen filtern“.

OData-Filter · Beispiel
// Spalten auswählen
name,emailaddress1,telephone1

// Zeilen filtern
statecode eq 0 and createdon ge 2026-01-01T00:00:00Z

Bereich: Daten abfragen & filtern

Spalten nach AnsichtSchnell umsetzbar

Tipp 9: In SharePoint die Spalten über eine Ansicht begrenzen

„Get items“ liefert standardmäßig alle Spalten einer Liste, auch Nachschlage-, Personen- und berechnete Spalten, die SharePoint vorher auflösen muss. Bei breiten Listen wird die Antwort dadurch groß und langsam.

Empfehlung

Legen Sie in der Liste eine Ansicht mit genau den Spalten an, die der Flow braucht, und wählen Sie sie in den erweiterten Optionen unter „Limit Columns by View“ aus.

Bereich: Daten abfragen & filtern

Paginierung

Tipp 10: Paginierung gezielt einsetzen

Viele Aktionen liefern nur eine Seite an Ergebnissen, „Zeilen auflisten“ in Dataverse bspw. bis zu 5.000 Zeilen. Wer mehr braucht, schaltet in den Einstellungen der Aktion die Paginierung ein und legt einen Schwellenwert fest. Wie viele Elemente höchstens möglich sind, hängt vom Leistungsprofil ab: 5.000 im Profil „Low“ und 100.000 in allen anderen. Jede nachgeladene Seite zählt als Anfrage.

Bei SharePoint-Listen mit mehr als 5.000 Einträgen ist die Paginierung auch mit Filter wichtig. Sonst kann das Ergebnis leer bleiben, wenn unter den ersten 5.000 Einträgen kein Treffer liegt.

Empfehlung

Schalten Sie die Paginierung nur dort ein, wo Sie wirklich mehr als eine Seite brauchen, und setzen Sie den Schwellenwert passend. Für noch größere Datenmengen verteilen Sie die Verarbeitung auf mehrere Läufe.

JSON · Beispiel
// Einstellungen der Aktion in der Codeansicht
"runtimeConfiguration": {
    "paginationPolicy": {
        "minimumItemCount": 20000
    }
}

Bereich: Daten abfragen & filtern

Abfrage erweitern

Tipp 11: Verknüpfte Daten in einer Abfrage holen

Ein häufiges Muster: Der Flow listet Zeilen auf und ruft danach in einer Schleife für jede Zeile den verknüpften Datensatz ab. Bei hundert Zeilen sind das hundert zusätzliche Anfragen.

Empfehlung

Nutzen Sie bei „Zeilen auflisten“ das Feld „Abfrage erweitern“ (Expand Query) und holen Sie die benötigten Spalten der verknüpften Tabelle gleich mit. Beschränken Sie auch dort die Spalten mit $select.

OData-Filter · Beispiel
// Abfrage erweitern: Nur zwei Spalten des primären Kontakts
primarycontactid($select=contactid,fullname)

Bereich: Daten abfragen & filtern

Batch-Anfragen

Tipp 12: Viele SharePoint-Änderungen bündeln

Legt ein Flow viele Einträge in einer Schleife einzeln an oder ändert sie, entsteht für jeden Eintrag eine eigene Anfrage. Das dauert und erhöht das Risiko der Drosselung.

Die SharePoint-REST-API kennt Batch-Anfragen: Über den Endpunkt _api/$batch fassen Sie mehrere Vorgänge in einer einzigen Anfrage zusammen. In Power Automate senden Sie sie mit der Aktion „Send an HTTP request to SharePoint“. Die Vorgänge eines Batches sind nicht transaktional, schlägt einer fehl, laufen die übrigen trotzdem.

Empfehlung

Setzen Sie $batch bei großen Mengen gleichartiger Änderungen ein und werten Sie die Antwort je Vorgang aus. Für wenige Einträge lohnt sich der zusätzliche Aufwand meist nicht.

Bereich: Daten abfragen & filtern

Schleifen & Parallelität

Filter array und Select, Apply to each, Do until und untergeordnete Flows · 7 Tipps

Filter arraySchnell umsetzbar

Tipp 13: Filter array statt Schleife mit Bedingung

Eine Schleife „Apply to each“ mit einer Bedingung darin führt für jedes Element mindestens zwei Aktionen aus. Jede Aktion zählt als Anfrage und kostet Zeit.

„Filter array“ (deutsch „Array filtern“) reduziert ein Array in einem einzigen Schritt auf die passenden Elemente. Beachten Sie, dass der Textvergleich dabei zwischen Groß- und Kleinschreibung unterscheidet.

Empfehlung

Filtern Sie Arrays mit „Filter array“ und lassen Sie die Schleife, wenn überhaupt, nur noch über die Treffer laufen. Komplexe Bedingungen schreiben Sie im erweiterten Modus als Ausdruck.

Ausdruck · Beispiel
// Filter array, erweiterter Modus
@and(equals(item()?['Status'], 'Offen'), greater(item()?['Betrag'], 1000))

Bereich: Schleifen & Parallelität

SelectSchnell umsetzbar

Tipp 14: Select statt Schleife zum Umformen

Um Daten für eine E-Mail, eine Tabelle oder eine Schnittstelle aufzubereiten, bauen viele Flows in einer Schleife mit „Append to array variable“ ein neues Array auf. Das ist langsam und lässt sich nicht gefahrlos parallelisieren.

„Select“ (deutsch „Auswählen“) formt alle Objekte eines Arrays in einem Schritt um. Sie können Felder hinzufügen, entfernen oder umbenennen, die Zahl der Objekte bleibt gleich.

Empfehlung

Verwenden Sie „Select“ zum Umformen und anschließend bei Bedarf „Create HTML table“, „Create CSV table“ oder „Join“. So brauchen Sie für die Aufbereitung keine Schleife.

JSON · Beispiel
// Select, Zuordnung im Textmodus
{
    "Nummer": "@item()?['Title']",
    "Kunde": "@item()?['Kunde']",
    "Betrag": "@item()?['Betrag']"
}

Bereich: Schleifen & Parallelität

ParallelitätSchnell umsetzbar

Tipp 15: Apply to each parallel ausführen

„Apply to each“ verarbeitet die Elemente standardmäßig nacheinander. Sind die Durchläufe voneinander unabhängig, können Sie in den Einstellungen die Parallelität einschalten und einen Wert von 1 bis 50 festlegen.

Ein hoher Wert macht die Schleife nicht automatisch schneller. Das Aufteilen der Arbeit und die Antwortzeit des Zielsystems kosten ebenfalls Zeit, und viele gleichzeitige Anfragen können zur Drosselung führen.

Empfehlung

Schalten Sie die Parallelität für unabhängige Durchläufe ein und tasten Sie sich an einen passenden Wert heran. Prüfen Sie vorher, ob in der Schleife Variablen geändert werden (siehe Tipp 16).

Bereich: Schleifen & Parallelität

Variablen in Schleifen

Tipp 16: Keine Variablen in parallelen Schleifen ändern

Laufen Durchläufe parallel, greifen sie gleichzeitig auf dieselbe Variable zu. Aktionen wie „Increment variable“, „Decrement variable“ oder „Append to array variable“ können dann unvorhersehbare Ergebnisse liefern, bspw. falsche Summen oder fehlende Einträge.

Empfehlung

Verwenden Sie in parallelen Schleifen „Compose“ statt Variablen und sammeln Sie die Ergebnisse danach mit „Select“ oder über die Ausgaben der Schleife ein. Wo eine Variable unverzichtbar ist, lassen Sie die Schleife nacheinander laufen.

Bereich: Schleifen & Parallelität

Verschachtelte Schleifen

Tipp 17: Verschachtelte Schleifen vermeiden

Eine Schleife in einer Schleife vervielfacht die Zahl der Aktionen. Bei 100 äußeren und 100 inneren Elementen sind es schon 10.000 Durchläufe. Zudem greift die Parallelität nur auf der obersten Ebene, innere Schleifen laufen immer nacheinander.

Empfehlung

Ersetzen Sie die innere Schleife durch „Filter array“ oder einen gezielten Filter in der Abfrage. Wo sich die Verschachtelung nicht vermeiden lässt, lagern Sie den inneren Teil in einen untergeordneten Flow aus.

Bereich: Schleifen & Parallelität

Do untilSchnell umsetzbar

Tipp 18: Do until mit klaren Grenzen

„Do until“ wiederholt Aktionen, bis eine Bedingung erfüllt ist. Damit keine Endlosschleife entsteht, hat jede Schleife Grenzen: Standardmäßig endet sie nach 60 Durchläufen oder nach einer Stunde (PT1H). Höchstens sind 5.000 Durchläufe möglich.

Wird eine Grenze erreicht, endet die Schleife auch dann, wenn die Bedingung noch nicht erfüllt ist.

Empfehlung

Legen Sie Anzahl und Zeitlimit passend zum Ablauf fest und prüfen Sie nach der Schleife, ob die Bedingung wirklich erfüllt ist. Bauen Sie in Warteschleifen eine Verzögerung ein, damit nicht in kurzen Abständen immer neue Anfragen entstehen.

JSON · Beispiel
// Do until in der Codeansicht: höchstens 20 Durchläufe oder 30 Minuten
"limit": {
    "count": 20,
    "timeout": "PT30M"
}

Bereich: Schleifen & Parallelität

Untergeordnete Flows

Tipp 19: Große Flows in untergeordnete Flows aufteilen

Untergeordnete Flows (Child Flows) kapseln Aufgaben, die mehrere Flows nutzen. Das vermeidet Flows mit hunderten Schritten, erleichtert Tests und hält die Logik an einer Stelle. Ein einzelner Flow kann höchstens 500 Aktionen enthalten.

Übergeordneter und untergeordneter Flow müssen in derselben Lösung liegen. Der untergeordnete Flow braucht den Auslöser „Manually trigger a flow“ und endet mit „Respond to a Power App or flow“ bzw. „Response“.

Empfehlung

Lagern Sie in sich geschlossene, wiederverwendbare Teile in untergeordnete Flows aus. Achten Sie auf die Verbindungen: Nutzt der untergeordnete Flow andere Konnektoren als Dataverse, ordnen Sie ihm die Verbindungen unter „Run only users“ fest zu.

Bereich: Schleifen & Parallelität

Ausdrücke & Variablen

Compose, robuste Ausdrücke und weniger Aufrufe je Element · 5 Tipps

ComposeSchnell umsetzbar

Tipp 20: Compose statt Variablen

Eine Variable braucht eine Aktion zum Initialisieren und weitere Aktionen zum Setzen. Für Werte, die einmal berechnet und danach nur noch gelesen werden, ist „Compose“ (deutsch „Verfassen“) die schlankere Wahl. Ein Flow kann ohnehin höchstens 250 Variablen enthalten.

Die Ausgabe von „Compose“ lässt sich in allen folgenden Aktionen wiederverwenden und ist auch in parallelen Schleifen unproblematisch.

Empfehlung

Nutzen Sie Variablen nur für Werte, die sich im Laufe des Flows wirklich ändern, bspw. Zähler in nacheinander laufenden Schleifen. Feste oder einmal berechnete Werte legen Sie mit „Compose“ ab und greifen mit outputs() darauf zu.

Ausdruck · Beispiel
// Compose „Stichtag“: einmal berechnen
formatDateTime(addDays(utcNow(), -30), 'yyyy-MM-dd')

// In späteren Aktionen wiederverwenden
outputs('Stichtag')

Bereich: Ausdrücke & Variablen

Leere ErgebnisseSchnell umsetzbar

Tipp 21: Leere Ergebnisse früh abfangen

Liefert eine Abfrage keine Treffer, arbeitet der Flow trotzdem alle folgenden Schritte ab. Aktionen, die einen Wert aus dem Ergebnis erwarten, scheitern dann mit einem Fehler, der eigentlich keiner ist.

Empfehlung

Prüfen Sie direkt nach der Abfrage, ob Treffer vorhanden sind, und beenden Sie den Flow sonst mit „Terminate“ und dem Status „Succeeded“. Das spart Aktionen und hält den Laufverlauf übersichtlich.

Ausdruck · Beispiel
// Bedingung: nur weiter, wenn es Treffer gibt
greater(length(body('Offene_Auftraege_filtern')), 0)

// Alternative: true, wenn das Ergebnis leer ist
empty(body('Offene_Auftraege_filtern'))

Bereich: Ausdrücke & Variablen

Null-sichere AusdrückeSchnell umsetzbar

Tipp 22: Ausdrücke gegen leere Werte absichern

Fehlt ein Feld in den Daten oder ist es leer, bricht ein Ausdruck, der ohne Prüfung auf verschachtelte Werte zugreift, mit einem Fehler ab. Solche Fehler fallen oft erst im Betrieb auf, wenn ein Datensatz unvollständig ist.

Empfehlung

Greifen Sie mit dem Fragezeichen-Operator ?[...] null-sicher auf Felder zu und setzen Sie mit coalesce() einen Ersatzwert. So läuft der Flow auch mit unvollständigen Daten kontrolliert weiter.

Ausdruck · Beispiel
// Leere Zeichenfolge statt null, wenn das Feld fehlt oder leer ist
coalesce(triggerBody()?['Bemerkung'], '')

// Null-sicherer Zugriff auf verschachtelte Werte
triggerBody()?['Kunde']?['Name']

Bereich: Ausdrücke & Variablen

Nachschlagen

Tipp 23: Nachschlagen im Flow statt Abfrage je Element

Braucht der Flow für jedes Element zusätzliche Stammdaten, bspw. den Namen zu einer Kundennummer, fragt er die Datenquelle oft in jeder Runde erneut ab. Das erzeugt viele Konnektoraufrufe und erhöht das Risiko der Drosselung.

Empfehlung

Laden Sie die Stammdaten einmal vor der Schleife und suchen Sie den passenden Eintrag dann mit „Filter array“ in den bereits geladenen Daten. So sinkt die Zahl der Anfragen an die Datenquelle deutlich.

Bereich: Ausdrücke & Variablen

Lesbarkeit

Tipp 24: Ausdrücke lesbar halten

Ausdrücke sind mächtig, doch lange und tief verschachtelte Ausdrücke sind schwer zu prüfen und zu pflegen. Ein einzelner Ausdruck darf höchstens 8.192 Zeichen lang sein.

Empfehlung

Zerlegen Sie komplexe Berechnungen in mehrere „Compose“-Schritte mit sprechenden Namen. Das kostet einzelne zusätzliche Aktionen, macht Zwischenergebnisse und Fehler im Laufverlauf aber sofort sichtbar.

Bereich: Ausdrücke & Variablen

Fehlerbehandlung & Wiederholung

Try-Catch-Finally, Ausführen nach, result(), Wiederholungen und Zeitlimits · 6 Tipps

Try-Catch-Finally

Tipp 25: Try-Catch-Finally mit Bereichen

Ohne Fehlerbehandlung bricht ein Flow beim ersten Fehler ab, und oft erfährt niemand rechtzeitig davon. Mit Bereichen (Scopes) bauen Sie das bewährte Muster aus der Programmierung nach: Der Bereich „Try“ enthält die eigentlichen Aktionen, „Catch“ läuft nur, wenn „Try“ fehlschlägt, und „Finally“ läuft in jedem Fall.

Damit der Lauf im Fehlerfall trotzdem als fehlgeschlagen erscheint, beenden Sie „Catch“ mit der Aktion „Terminate“, dem Status „Failed“ und einer aussagekräftigen Meldung.

Empfehlung

Gliedern Sie jeden produktiven Flow in die Bereiche Try, Catch und Finally und stellen Sie bei Catch und Finally „Ausführen nach“ passend ein. So reagiert der Flow kontrolliert auf Fehler und meldet sie zuverlässig.

Bereich: Fehlerbehandlung & Wiederholung

Ausführen nach

Tipp 26: Ausführen nach gezielt einstellen

Jede Aktion läuft standardmäßig nur, wenn die vorherige erfolgreich war. Über „Ausführen nach“ (Configure run after) legen Sie fest, ob eine Aktion auch nach einem Fehler, einer Zeitüberschreitung oder einer übersprungenen Aktion laufen soll. Mindestens ein Status muss ausgewählt bleiben.

Empfehlung

Stellen Sie „Catch“ auf „Has failed“ und „Has timed out“ ein, „Finally“ auf alle vier Status. Prüfen Sie nach jeder Änderung mit einem Test, ob die Pfade wie gedacht greifen.

Bereich: Fehlerbehandlung & Wiederholung

result()

Tipp 27: Fehlerdetails mit result() auslesen

Im Bereich „Catch“ wissen Sie zunächst nur, dass in „Try“ etwas fehlgeschlagen ist. Die Funktion result() liefert die Ergebnisse aller Aktionen auf der obersten Ebene eines Bereichs, jeweils mit Name, Status, Ein- und Ausgaben.

Aktionen tiefer im Bereich, bspw. innerhalb von Bedingungen oder Switch, sind in diesem Ergebnis nicht enthalten.

Empfehlung

Filtern Sie result() mit „Filter array“ auf den Status „Failed“ und übernehmen Sie Name und Fehlermeldung der fehlgeschlagenen Aktion in Ihre Benachrichtigung bzw. Ihr Fehlerprotokoll.

Ausdruck · Beispiel
// Filter array „Fehler_filtern“, Feld Von
result('Try')

// Bedingung im erweiterten Modus
@equals(item()?['status'], 'Failed')

// Name der ersten fehlgeschlagenen Aktion
first(body('Fehler_filtern'))?['name']

Bereich: Fehlerbehandlung & Wiederholung

Link zum Lauf

Tipp 28: Fehlermeldungen mit Link zum Lauf

Eine Fehlermeldung hilft nur, wenn sie schnell zur Ursache führt. Mit der Funktion workflow() kennt der Flow seine Umgebung, seine eigene ID und die ID des aktuellen Laufs und kann daraus einen direkten Link auf den Lauf bauen.

Empfehlung

Schicken Sie im Bereich „Catch“ eine Nachricht per E-Mail oder Teams mit Flowname, fehlgeschlagener Aktion, Fehlermeldung und dem Link zum Lauf. So kommt das Team mit einem Klick zu der Stelle, an der es hakt.

Ausdruck · Beispiel
concat(
    'https://make.powerautomate.com/environments/',
    workflow()?['tags']?['environmentName'],
    '/flows/',
    workflow()?['tags']?['logicAppName'],
    '/runs/',
    workflow()?['run']?['name']
)

Bereich: Fehlerbehandlung & Wiederholung

Wiederholungsrichtlinie

Tipp 29: Wiederholungsrichtlinien bewusst wählen

Viele Fehler sind vorübergehend, bspw. kurze Netzwerkprobleme oder Drosselung. Aktionen, die es unterstützen, wiederholen fehlgeschlagene Aufrufe deshalb automatisch nach einer Standardrichtlinie. Wie oft und in welchen Abständen, hängt vom Leistungsprofil ab.

In den Einstellungen der Aktion können Sie die Wiederholungsrichtlinie ändern: Standard, keine, feste oder exponentielle Intervalle mit bis zu 90 Wiederholungen. Microsoft empfiehlt exponentielle Intervalle, weil sie den Zeitraum der Wiederholungen ausdehnen.

Empfehlung

Nutzen Sie für Aufrufe an empfindliche Systeme eine exponentielle Richtlinie und schalten Sie Wiederholungen bei Aktionen ab, die nicht doppelt ausgeführt werden dürfen. Denken Sie daran, dass jede Wiederholung als Anfrage zählt.

JSON · Beispiel
// Einstellungen der Aktion in der Codeansicht
"retryPolicy": {
    "type": "exponential",
    "count": 4,
    "interval": "PT10S",
    "minimumInterval": "PT5S",
    "maximumInterval": "PT1H"
}

Bereich: Fehlerbehandlung & Wiederholung

Timeout

Tipp 30: Zeitlimits für Aktionen festlegen

Synchrone ausgehende Anfragen enden nach 120 Sekunden. Asynchrone Aktionen, bspw. Genehmigungen, können dagegen bis zu 30 Tage warten. Ohne eigenes Zeitlimit hängt ein Flow dann womöglich wochenlang in einem Schritt fest.

In den Einstellungen einer Aktion legen Sie das Zeitlimit im Format ISO 8601 fest, bspw. PT1H für eine Stunde oder P3D für drei Tage.

Empfehlung

Setzen Sie bei Genehmigungen und anderen wartenden Aktionen ein Zeitlimit, das zum Geschäftsprozess passt, und behandeln Sie die Zeitüberschreitung über „Ausführen nach“ mit „Has timed out“.

Bereich: Fehlerbehandlung & Wiederholung

Limits, Lizenzen & Drosselung

Anforderungslimits, Leistungsprofile, Drosselung, Laufzeit und Größen · 5 Tipps

Anforderungslimits

Tipp 31: Anforderungslimits je Lizenz kennen

Jede Aktion eines Flows zählt als Power Platform-Anfrage, ob Konnektor, HTTP-Aufruf oder einfache Aktion wie „Initialize variable“ und „Compose“. Auch fehlgeschlagene Aktionen, Wiederholungen und nachgeladene Seiten der Paginierung zählen mit.

Die Limits gelten je 24 Stunden und hängen von der Lizenz ab: Mit einer Microsoft 365-Lizenz sind es 6.000 Anfragen, mit Power Automate Premium 40.000 (Stand Oktober 2026). Derzeit gilt eine Übergangsphase, in der Microsoft die Limits je Flow statt je Person anwendet.

Empfehlung

Prüfen Sie im Power Platform Admin Center, welche Flows besonders viele Anfragen erzeugen, und senken Sie die Zahl der Aktionen mit den Tipps dieses Leitfadens. Für sehr aktive Flows kommt eine Process-Lizenz infrage (siehe Tipp 32).

Bereich: Limits, Lizenzen & Drosselung

Leistungsprofil

Tipp 32: Das Leistungsprofil des Flows beachten

Die Lizenz bestimmt nicht nur die Anforderungslimits, sondern auch das Leistungsprofil eines Flows. Flows von Personen mit Microsoft 365-Lizenz laufen im Profil „Low“, Power Automate Premium entspricht „Medium“, die Process-Lizenz „High“. Davon hängen bspw. die maximale Zahl der Elemente in Schleifen und bei der Paginierung, Durchsatzgrenzen und die Standard-Wiederholungsrichtlinie ab.

Verlässt die Person, der ein Flow gehört, das Unternehmen, fällt er auf das Profil „Low“ zurück. Instant-Flows nutzen die Limits der Person, die sie startet, automatisierte und geplante Flows die Limits der Person, der sie gehören.

Empfehlung

Lassen Sie geschäftskritische Flows nicht unter persönlichen Konten mit Basislizenz laufen. Für Flows mit hohem Volumen kann eine Process-Lizenz sinnvoll sein. Sie weist dem Flow eigene Kapazität von 250.000 Anfragen je 24 Stunden zu.

Bereich: Limits, Lizenzen & Drosselung

Drosselung

Tipp 33: Drosselung von Konnektoren einplanen

Neben den täglichen Anforderungslimits haben Konnektoren eigene Drosselungsgrenzen, die unabhängig von der vorhandenen Kapazität gelten. Dazu kommen Schutzgrenzen der Zielsysteme wie Dataverse. Wird eine Grenze überschritten, verzögern sich Aktionen oder schlagen fehl.

Wird ein Flow dauerhaft gedrosselt, schaltet die Plattform ihn nach 14 Tagen ab.

Empfehlung

Verteilen Sie Last über die Zeit, verringern Sie Aufrufe mit Filtern, Batches und „Filter array“ und begrenzen Sie die Parallelität. Die Drosselungsgrenzen eines Konnektors finden Sie in seiner Referenz auf Microsoft Learn.

Bereich: Limits, Lizenzen & Drosselung

Laufzeit und Aufbewahrung

Tipp 34: Laufzeit und Aufbewahrung kennen

Ein einzelner Lauf darf höchstens 30 Tage dauern. Wartet er länger, bspw. auf eine Genehmigung, wird er beendet. Auch der Laufverlauf bleibt nur 30 Tage gespeichert, gerechnet ab dem Start eines Laufs.

Für Flows in Lösungen speichert Dataverse den Laufverlauf zusätzlich in der Tabelle FlowRun, standardmäßig 28 Tage lang. Flows, deren Auslöser oder Aktionen dauerhaft fehlschlagen, schaltet die Plattform nach 14 Tagen ab. Flows ohne Auslöseaktivität können nach 90 Tagen ausgeschaltet werden, ausgenommen Flows von Personen mit Premium- oder Kapazitätslizenz.

Empfehlung

Planen Sie lange Wartezeiten als eigene Flows, bspw. mit einer Statusspalte und einem neuen Auslöser, statt einen Lauf wochenlang warten zu lassen. Sichern Sie Laufdaten, die Sie länger brauchen, in einer eigenen Protokolltabelle.

Bereich: Limits, Lizenzen & Drosselung

Nachrichtengröße

Tipp 35: Nachrichtengröße und Dateien im Blick behalten

Eine einzelne Nachricht darf in Power Automate höchstens 100 MB groß sein, mit Chunking bis zu 1 GB. Zusätzlich begrenzt die Plattform den Datendurchsatz je fünf Minuten und je 24 Stunden.

Große Dateien, Base64-Inhalte und umfangreiche JSON-Antworten verlangsamen jeden Schritt, der sie liest oder weitergibt, und landen außerdem im Laufverlauf.

Empfehlung

Übergeben Sie zwischen Aktionen möglichst nur Verweise wie IDs oder Pfade statt kompletter Dateiinhalte und laden Sie Inhalte erst dort, wo sie gebraucht werden.

Bereich: Limits, Lizenzen & Drosselung

Wartbarkeit & ALM

Lösungen, Verbindungsreferenzen, Umgebungsvariablen, Benennung und Versionen · 6 Tipps

Lösungen

Tipp 36: Flows in Lösungen anlegen

Flows in Lösungen (Solutions) lassen sich als Paket zwischen Entwicklungs-, Test- und Produktionsumgebung übertragen. Nur sie unterstützen Verbindungsreferenzen, Umgebungsvariablen, den Versionsverlauf und den Laufverlauf in Dataverse, den bspw. das Automation Center auswertet.

Außerhalb von Lösungen kann eine Person höchstens 600 Flows besitzen, in Lösungen gibt es diese Grenze nicht.

Empfehlung

Legen Sie neue Flows grundsätzlich in einer Lösung an. Ändern Sie Flows nur in der Entwicklungsumgebung und bringen Sie sie als verwaltete Lösung in Test und Produktion.

Bereich: Wartbarkeit & ALM

Verbindungsreferenzen

Tipp 37: Verbindungsreferenzen verwenden

In Flows außerhalb von Lösungen hängt jede Aktion direkt an einer Verbindung. Ändert sich die Verbindung, muss jede betroffene Aktion angepasst werden. Verbindungsreferenzen trennen den Flow von der konkreten Verbindung.

Beim Import in eine andere Umgebung ordnen Sie den Referenzen die dortigen Verbindungen zu. Übergeordnete und untergeordnete Flows in derselben Lösung können dieselbe Verbindungsreferenz nutzen.

Empfehlung

Nutzen Sie je Konnektor und Zweck eine klar benannte Verbindungsreferenz und verknüpfen Sie sie in Test und Produktion mit Verbindungen eines Dienstkontos statt mit persönlichen Verbindungen.

Bereich: Wartbarkeit & ALM

Umgebungsvariablen

Tipp 38: Umgebungsvariablen statt fester Werte

Adressen von SharePoint-Websites, Listennamen, E-Mail-Empfänger oder Schwellenwerte unterscheiden sich zwischen Entwicklung, Test und Produktion. Fest eingetragen, muss der Flow bei jedem Wechsel bearbeitet werden.

Umgebungsvariablen nehmen solche Werte auf und werden beim Import der Lösung abgefragt. Für Kennwörter und Schlüssel gibt es den Typ „Geheimnis“ (Secret), der auf Azure Key Vault verweist. Geänderte Werte können bis zu einer Stunde brauchen, bis sie in allen Flows ankommen.

Empfehlung

Lagern Sie alle Werte, die sich je Umgebung unterscheiden, in Umgebungsvariablen aus. Sensible Werte legen Sie als Geheimnis in Azure Key Vault ab und nicht im Klartext im Flow.

Bereich: Wartbarkeit & ALM

Benennung und NotizenSchnell umsetzbar

Tipp 39: Aktionen sprechend benennen und kommentieren

Namen wie „Condition 3“ oder „Apply to each 2“ sagen nichts über den Zweck einer Aktion. Wer den Flow später pflegt, muss jeden Schritt erst öffnen, um ihn zu verstehen. Der Name erscheint außerdem in Ausdrücken wie body() und in Fehlermeldungen.

Ein Name darf bis zu 80 Zeichen lang sein. Notizen an Aktionen erklären, warum ein Schritt so gebaut ist, ähnlich wie Kommentare im Code.

Empfehlung

Benennen Sie jede Aktion nach ihrem Zweck, bspw. „Offene Aufträge abrufen“, und legen Sie eine Namenskonvention für das Team fest. Am besten benennen Sie Aktionen gleich beim Anlegen, bevor andere Schritte auf sie verweisen.

Bereich: Wartbarkeit & ALM

FlowprüferSchnell umsetzbar

Tipp 40: Den Flowprüfer nutzen

Der Flowprüfer (Flow Checker) im Designer zeigt Fehler und Warnungen, verweist auf die betroffenen Stellen und verlinkt Hinweise zur Behebung. Er öffnet sich automatisch, wenn Sie einen Flow mit Fehlern oder Warnungen speichern.

Empfehlung

Öffnen Sie den Flowprüfer vor jeder Veröffentlichung und beheben Sie auch Warnungen, nicht nur Fehler. Testen Sie den Flow danach erneut.

Bereich: Wartbarkeit & ALM

Versionsverlauf

Tipp 41: Versionsverlauf und Kopien nutzen

Bei Flows in Lösungen speichert der neue Designer Entwürfe und veröffentlichte Versionen. Über den Versionsverlauf stellen Sie eine frühere Version wieder her, sie wird dann zum neuesten Entwurf. Entwürfe bleiben sechs Monate, veröffentlichte Versionen zwölf Monate erhalten.

Für Flows außerhalb von Lösungen gibt es keinen Versionsverlauf.

Empfehlung

Speichern Sie größere Änderungen erst als Entwurf und veröffentlichen Sie nach dem Test. Bei Flows außerhalb von Lösungen legen Sie vor größeren Umbauten eine Kopie an oder exportieren den Flow.

Bereich: Wartbarkeit & ALM

Sicherheit & Betrieb

Tests, sichere Daten, Besitzer, Dienstkonten, Datenrichtlinien und Überwachung · 9 Tipps

Testen

Tipp 42: Mit Testdaten und statischen Ergebnissen testen

Testen Sie Flows nicht mit echten Daten in der Produktion. Der Designer bietet manuelle Tests und automatische Tests mit einem kürzlich verwendeten Auslöser bzw. der Wiederholung eines früheren Testlaufs.

Mit statischen Ergebnissen (Static Results) liefert eine Aktion festgelegte Testdaten zurück, ohne wirklich ausgeführt zu werden. So simulieren Sie Fehlerfälle oder überspringen lange Schritte, ohne ein Zielsystem zu belasten.

Empfehlung

Halten Sie in der Testumgebung eigene Testdaten bereit, die auch Sonderfälle wie leere Felder, sehr lange Texte und große Mengen abdecken. Prüfen Sie gezielt auch den Fehlerpfad Ihrer Catch-Bereiche.

Bereich: Sicherheit & Betrieb

Sichere Ein- und AusgabenSchnell umsetzbar

Tipp 43: Sensible Daten im Laufverlauf verbergen

Der Laufverlauf zeigt Ein- und Ausgaben jeder Aktion. Wer den Flow bearbeiten darf, sieht damit auch Kennwörter, Token oder personenbezogene Daten, die durch den Flow laufen.

Empfehlung

Schalten Sie in den Einstellungen betroffener Aktionen „Sichere Eingaben“ und „Sichere Ausgaben“ (Secure Inputs, Secure Outputs) ein. Die Werte erscheinen dann nicht mehr im Laufverlauf, die Aktion zeigt ein Schlosssymbol.

Bereich: Sicherheit & Betrieb

Besitzer und Mitbesitzer

Tipp 44: Mitbesitzer festlegen

Gehört ein Flow nur einer Person, kann niemand sonst ihn ändern oder Fehler beheben, wenn diese Person nicht da ist. Verlässt sie das Unternehmen, schlagen Aktionen mit ihren Verbindungen womöglich fehl.

Mitbesitzer können den Laufverlauf einsehen, den Flow bearbeiten, Verbindungen aktualisieren und weitere Besitzer hinzufügen. Statt einzelner Personen lässt sich auch eine Gruppe eintragen, bei SharePoint-Flows auch eine Liste.

Empfehlung

Tragen Sie für jeden produktiven Flow mindestens eine weitere Person oder besser eine Gruppe als Mitbesitzer ein. Prüfen Sie die Besitzverhältnisse regelmäßig, bspw. monatlich oder vierteljährlich.

Bereich: Sicherheit & Betrieb

Run-only-Benutzer

Tipp 45: Instant-Flows mit Run-only-Rechten teilen

Wer einen Flow nur starten soll, braucht keine Bearbeitungsrechte. Run-only-Benutzer können einen Flow auslösen, ihn aber weder sehen noch bearbeiten. Das geht für Instant-Flows mit manuellem Auslöser, bspw. einer Schaltfläche oder einem ausgewählten Element.

Für jede Verbindung legen Sie fest, ob die startende Person sie selbst bereitstellt oder ob der Flow eine eingebettete Verbindung nutzt.

Empfehlung

Geben Sie Instant-Flows nur mit Run-only-Rechten weiter. Lassen Sie Verbindungen, mit denen Personen auf eigene Daten zugreifen, von der startenden Person bereitstellen, damit jede Person nur mit ihren eigenen Rechten arbeitet.

Bereich: Sicherheit & Betrieb

Dienstkonten und Dienstprinzipal

Tipp 46: Kritische Flows von Personen entkoppeln

Laufen geschäftskritische Flows unter persönlichen Konten, hängen sie an Lizenz, Rolle und Verbleib dieser Person. Ein eigenes Dienstkonto mit passender Lizenz entkoppelt den Flow davon.

Noch einen Schritt weiter geht ein Dienstprinzipal (Service Principal): Eine Anwendung in Microsoft Entra ID wird als Anwendungsbenutzer Besitzer des Flows. Für Premium-Konnektoren braucht der Flow dann bspw. eine Process-Lizenz.

Empfehlung

Lassen Sie produktive Flows einem Dienstkonto oder einem Dienstprinzipal gehören und nutzen Sie dessen Verbindungen in den Verbindungsreferenzen. Microsoft empfiehlt, dass in Produktionsumgebungen Dienstprinzipale alle Flows besitzen.

Bereich: Sicherheit & Betrieb

Datenrichtlinien (DLP)

Tipp 47: Datenrichtlinien früh berücksichtigen

Mit Datenrichtlinien (DLP) legt die Administration fest, welche Konnektoren zusammen in einem Flow verwendet werden dürfen. Konnektoren sind dafür in die Gruppen „Geschäftlich“, „Nicht geschäftlich“ und „Blockiert“ eingeteilt. Konnektoren aus verschiedenen Gruppen lassen sich nicht in einem Flow kombinieren, blockierte gar nicht verwenden.

Empfehlung

Klären Sie vor dem Bau, welche Datenrichtlinien in der Zielumgebung gelten. Für produktive Flows empfiehlt sich eine eigene Umgebung mit klar definierter Richtlinie, damit spätere Änderungen an der Standardumgebung den Flow nicht unerwartet ausbremsen.

Bereich: Sicherheit & Betrieb

Überwachung

Tipp 48: Flows regelmäßig überwachen

Flows laufen im Hintergrund, Probleme fallen daher oft spät auf. Der Laufverlauf zeigt jeden einzelnen Lauf, die Analysen eines Flows fassen Läufe, Fehlerquoten und durchschnittliche Laufzeiten der letzten 30 Tage zusammen.

Das Automation Center bündelt Läufe, Fehler und Empfehlungen für Flows in Lösungen. Im Power Platform Admin Center sieht die Administration Auswertungen für die ganze Umgebung. Für eigene Alarme lässt sich Application Insights anbinden.

Empfehlung

Sehen Sie sich Fehlerquoten und Laufzeiten Ihrer wichtigsten Flows regelmäßig an und nicht erst, wenn sich jemand beschwert. Steigende Laufzeiten sind oft das erste Zeichen für wachsende Datenmengen oder Drosselung.

Bereich: Sicherheit & Betrieb

Fehlerbenachrichtigung

Tipp 49: Bei Fehlern zuverlässig benachrichtigen

Power Automate verschickt Fehlerhinweise per E-Mail, allerdings nur bei bestimmten Fehlern mit bekannter Ursache, bspw. abgelaufenen Verbindungen oder Drosselung. Nach einem solchen Hinweis folgen für denselben Flow 28 Tage lang keine weiteren. Dazu kommt eine wöchentliche Zusammenfassung.

Allgemeine Fehler in Aktionen lösen keinen eigenen Hinweis aus. Wer sich allein auf diese E-Mails verlässt, bemerkt viele Fehler also nicht.

Empfehlung

Bauen Sie in jeden produktiven Flow eine eigene Fehlerbenachrichtigung im Bereich „Catch“ ein (siehe Tipp 28). Senden Sie sie an ein Team-Postfach oder einen Teams-Kanal statt an einzelne Personen.

Bereich: Sicherheit & Betrieb

Allgemeines

Tipp 50: Flows als Daueraufgabe pflegen

Weniger Ausfälle, geringerer Verbrauch an Anfragen, schnellere Abläufe, leichtere Pflege, mehr Sicherheit und Zukunftssicherheit: Ein optimierter Flow zahlt sich auf vielen Ebenen aus. Datenmengen, Lizenzen und die Plattform selbst ändern sich laufend und damit auch die Anforderungen an Ihre Flows.

Empfehlung

Verstehen Sie die Pflege Ihrer Flows nicht als einmalige Aufgabe, sondern als festen Bestandteil des Betriebs und als Investition in verlässliche Prozesse. Prüfen Sie wichtige Flows regelmäßig gegen die Tipps dieses Leitfadens.

Bereich: Sicherheit & Betrieb

04Tipp 50 im Detail

Warum sich Optimierung immer lohnt.

Die Optimierung von Cloud Flows ist kein einmaliges Aufräumen, sondern Teil eines guten Betriebs: Sie spart Anfragen und Kosten, verhindert stille Ausfälle und sorgt dafür, dass Automatisierung im Unternehmen Vertrauen gewinnt.

  • Weniger Ausfälle

    Saubere Fehlerbehandlung, Wiederholungsrichtlinien und Zeitlimits machen Flows robust. Fehler werden erkannt, gemeldet und lassen sich schnell beheben.

  • Geringerer Verbrauch

    Weniger Läufe und Aktionen bedeuten weniger Anfragen gegen die Limits der Lizenzen und seltener zusätzliche Kapazität. In Umgebungen mit nutzungsbasierter Abrechnung sinken mit weniger Läufen auch die Kosten.

  • Schnellere Abläufe

    Gezielte Abfragen, Datenoperationen statt Schleifen und Parallelität verkürzen die Laufzeit. Ergebnisse liegen früher vor und Aufrufende warten kürzer.

  • Leichtere Pflege

    Sprechende Namen, Notizen, Bereiche und untergeordnete Flows machen Flows verständlich. Änderungen und Fehlersuche gehen schneller, auch für Personen, die den Flow nicht gebaut haben.

  • Mehr Sicherheit

    Sichere Ein- und Ausgaben, Dienstkonten und klare Besitzverhältnisse schützen Daten und verhindern, dass Flows an einzelnen Konten hängen.

  • Zukunftssicherheit

    Flows in Lösungen mit Verbindungsreferenzen und Umgebungsvariablen lassen sich sauber zwischen Umgebungen übertragen und an neue Anforderungen anpassen.

  • Strategischer Ansatz

    Optimierung ist nicht nur Technik, sondern eine Investition in verlässliche Prozesse und in die Automatisierung des ganzen Unternehmens.

05Flow-Analyse

Ich schaue mir Ihre Flows an.

Ihre Cloud Flows sind zu langsam, schlagen immer wieder fehl oder stoßen an Limits? Gern analysiere ich Ihre vorhandenen Flows und erstelle eine umfangreiche Auswertung mit konkreten Empfehlungen. Damit können Sie die Optimierung selbst vornehmen oder ich übernehme sie für Sie.

  1. Kostenloses Erstgespräch

    Wir klären, um welche Flows es geht, wo es hakt und welche Zugänge ich für die Analyse brauche.

  2. Analyse der Flows

    Ich untersuche Auslöser, Aktionen, Schleifen, Ausdrücke, Fehlerbehandlung und Datenabfragen Ihrer Flows, u. a. anhand von Laufverlauf, Analysen und Flowprüfer.

  3. Umfangreiche Auswertung

    Sie erhalten eine Auswertung, die zeigt, was Ihre Flows bremst oder anfällig macht, warum das so ist und was zu tun ist, mit Empfehlungen nach Wirkung und Aufwand geordnet.

  4. Optimierung

    Die Empfehlungen setzen Sie mit Ihrem Team selbst um oder ich nehme die Optimierung für Sie vor.

Sie optimieren selbst

Die Auswertung ist so aufgebaut, dass Ihr Team oder Ihr Dienstleister die Optimierung Schritt für Schritt umsetzen kann.

Ich optimiere für Sie

Ich setze die Empfehlungen direkt in Ihren Flows um, nachvollziehbar dokumentiert und getestet.

06Fragen und Antworten

Häufige Fragen

Warum ist mein Power Automate Flow langsam?
Häufige Ursachen sind Schleifen über große Datenmengen, verschachtelte Schleifen, Abfragen ohne Filter, eine eigene Abfrage je Element und Drosselung durch zu viele Aufrufe. Der Laufverlauf zeigt, welche Aktionen wie lange dauern. Oft helfen schon Filterabfragen, „Filter array“ und „Select“ statt Schleifen sowie die Parallelität bei „Apply to each“.
Was sind Auslösebedingungen?
Auslösebedingungen (Trigger Conditions) sind Ausdrücke in den Einstellungen des Auslösers. Nur wenn sie erfüllt sind, startet der Flow. Anders als eine Bedingung im Flow verhindern sie den Lauf ganz, es entsteht kein Eintrag im Laufverlauf und Sie sparen Läufe und Anfragen.
Wie viele Anfragen darf ein Flow ausführen?
Das hängt von der Lizenz ab. Mit einer Microsoft 365-Lizenz sind es 6.000 Power Platform-Anfragen je 24 Stunden, mit Power Automate Premium 40.000 und mit einer Process-Lizenz 250.000 (Stand Oktober 2026). In der aktuellen Übergangsphase wendet Microsoft die Limits je Flow an. Jede Aktion zählt, auch Wiederholungen und nachgeladene Seiten.
Wie fange ich Fehler in einem Flow ab?
Mit dem Muster Try-Catch-Finally: Die eigentlichen Aktionen liegen in einem Bereich „Try“, ein Bereich „Catch“ läuft über „Ausführen nach“ nur bei Fehlern oder Zeitüberschreitung. Dort lesen Sie mit result() die fehlgeschlagene Aktion aus, senden eine Benachrichtigung mit Link zum Lauf und beenden den Flow mit „Terminate“ und dem Status „Failed“.
Kann ich den Leitfaden weitergeben?
Sehr gern per Link auf diese Seite. Die Inhalte sind urheberrechtlich geschützt. Für eine Nutzung darüber hinaus, bspw. in eigenen Schulungsunterlagen, schreiben Sie mir einfach.

Ihre Flows sollen schneller laufen? Sprechen wir darüber.

Im kostenlosen Erstgespräch (30 Minuten, per Microsoft Teams) klären wir, wo Ihre Flows Zeit und Anfragen verlieren und ob eine Analyse mit Auswertung der richtige nächste Schritt ist.