Flows That Don't Trigger Themselves

Flows That Don't Trigger Themselves

Stop a flow retriggering on its own writes with a trigger condition, set concurrency deliberately, and filter at the source.

power-automate cloud-flows trigger-conditions concurrency throttling power-platform

What it is for

Three settings and one test that stop a Power Automate cloud flow from retriggering on its own writes: a trigger condition rather than an in-flow condition, deliberate concurrency control, and filtering at the connector instead of in a Filter array. Use it before saving any flow that updates the list, table or item it is watching. It prevents the runaway loop that burns through API limits and usually gets discovered when somebody else's flow starts failing.

The skill

Before you save any flow that writes back to the source it watches, do these
three things. A self-triggering flow is the most common way a tenant gets
throttled.

1. Break the loop at the trigger, not in the logic.
   Add a trigger condition in the trigger's settings so the flow never starts
   on its own writes - typically a check on the modifying account, or on a
   status column your flow sets. A Condition action inside the flow does not
   help: by then the run has already started and already cost you a call.

2. Set concurrency control deliberately.
   Left off, runs go parallel without limit. That is right for independent
   items and wrong for anything that reads shared state and then writes it,
   because two runs read the same value and one write is lost. Set the degree
   of parallelism to 1 when order matters. Know the cost: once the queue is
   full, further trigger events can be dropped rather than queued.

3. Filter at the source, not in the flow.
   Use the connector's own filter query to fetch only the rows you want.
   Fetching five thousand rows and discarding them in a Filter array burns
   API calls against your limit and makes every run slower than it needs to be.

Then test it deliberately:
- Make one change as a normal user. Confirm exactly one run started.
- Make the change your flow itself would make. Confirm zero runs started.
  That is the test everyone skips.
- Open the run history ten minutes later. A column of runs one second apart is
  the loop. Turn the flow off before you debug it.

The failure this prevents: a flow that stamps a field on the item that
triggered it, retriggers, and runs until the connector starts refusing calls -
usually noticed because somebody else's flow broke.

How to install it

1. Open the tool and start a new conversation, project or template.
2. Paste the text below wherever the tool keeps standing instructions
   — usually called system prompt, instructions, or persona.
3. Save it so it applies to every run rather than a single message.

Did it work for you?

Where it came from

Skills app Original