When automating SharePoint processes with Power Automate, one of the most critical design decisions is which trigger to start your flow.

Many users instinctively select “When an item is created or modified”, believing it offers flexibility — but in practice, it often causes unpredictable behavior, recursive loops, and data corruption.


Power Automate and SharePoint: Why You Should Always Use “When an Item Is Created”

1. Introduction

When automating SharePoint processes with Power Automate, one of the most critical design decisions is which trigger to start your flow.

Many users instinctively select “When an item is created or modified”, believing it offers flexibility — but in practice, it often causes unpredictable behavior, recursive loops, and data corruption.

In contrast, the trigger “When an item is created” is safer, cleaner, and more controllable.

This article explains in detail why the “created” trigger should be your default choice, and how to design stable flows that update items without risking infinite loops.


2. How the Triggers Work

TriggerWhat It DoesCommon Use
When an item is createdFires once, immediately after a new SharePoint list item is saved for the first time.Initialization of metadata, sending notifications, setting defaults.
When an item is created or modifiedFires every time an item is saved — both for new items and for any subsequent edit, even by Power Automate itself.Rarely needed; should be used only for user-driven edits that require extra logic.

The difference seems small but has huge implications.


3. The Problem with “Created or Modified”

When a flow that uses this trigger updates the same item using “Update item”, SharePoint records that as a modification.
This means the trigger fires again, restarting the flow.

So the flow:

  1. Runs because an item was created or changed.
  2. Executes an “Update item” action.
  3. That update counts as a modification.
  4. The trigger fires again.
  5. The flow runs again.
  6. And again.
  7. Forever.

This is called a self-triggering infinite loop.

Example:

A flow that calculates a “Total Cost” column, then updates the same item with that value, ends up triggering itself infinitely unless you manually cancel all runs.


4. Technical Consequences of the Loop

ConsequenceDescription
Infinite executionEach update re-triggers the same flow instance.
System throttlingSharePoint connector may hit service limits.
Run history explosionThousands of runs created in minutes.
Field overwritesValues may be updated mid-process, causing data loss.
Automation failureThe flow stops responding or is suspended.

This is one of the most common mistakes in SharePoint automation and is responsible for many failed or throttled environments.


5. Why “When an Item Is Created” Is the Safe Default

The “created” trigger only fires once, at the very start of the item’s lifecycle.
That means:

No recursive loops — because updates that occur later don’t re-trigger the flow.
Predictable timing — you control exactly when initialization happens.
Simpler logic — no need to check for flags or modified-by conditions.
Stable audit trails — your flow updates happen once, cleanly recorded.
Easier troubleshooting — one item, one run.


6. Recommended Pattern: Controlled Lifecycle Flow

You can design a single, stable flow that handles the entire lifecycle of an item using only “When an item is created.”

Step-by-step pattern:

StepActionPurpose
1. TriggerUse When an item is createdStart only once when the item is new.
2. InitializationSet default fields (Status = “Pending”, AssignedTo = “System”)Prepare the record for later updates.
3. Processing / WaitUse Delay Until or Do Until to wait for external data or approvalAvoid firing new triggers.
4. Update ItemSafely call Update item because this trigger won’t fire againApply calculated results or status changes.
5. End FlowComplete execution cleanlyNo risk of recursion.

This pattern ensures one single, predictable run per item.


7. Example: Safe Flow Design

Scenario

You need to create a project record, then automatically calculate a start date and assign a project number.

Flow Configuration

  1. Trigger: When an item is created.
  2. Action 1: Initialize variable ProjectNumber.
  3. Action 2: Calculate start date.
  4. Action 3: Update item with ProjectNumber and StartDate.
  5. Action 4: Send Teams or email notification.
  6. End.

Result:
The flow runs once, updates the new record, and stops — with zero loops.


8. What if You Must Handle Modifications?

If your business case truly requires responding to item changes, do not mix creation and modification in the same flow.

Instead, create two separate flows:

FlowTriggerPurpose
Flow AWhen an item is createdInitialize item, set metadata, and handle first updates.
Flow BWhen an item is modifiedOnly respond to user edits (never system edits). Add conditions to avoid loops.

In Flow B, always add:

  • A condition checking “Modified by” ≠ Flow Account, or
  • A custom Boolean flag (FlowUpdated) set to true/false around updates.

These safety checks prevent self-triggering behavior.


9. Governance and Best Practices

AreaRecommendation
Trigger selectionAlways prefer “When an item is created”.
Update controlUse “Update item” only after initial creation.
Flow separationKeep creation and modification flows independent.
ConcurrencyTurn off parallel runs for stability.
Field flagsIf needed, use a “FlowUpdated” column to block recursion.
TestingAlways monitor first 5–10 runs in the Power Automate portal to confirm no repeated triggers.

10. Key Takeaways

  • Never use “When an item is created or modified” unless absolutely necessary.
  • Prefer “When an item is created” — it’s stable, predictable, and loop-free.
  • If modifications are required, isolate that logic in a separate flow with strict filters.
  • Recursive updates consume Power Automate runs, slow your environment, and risk data integrity.
  • A clean design always starts at creation and flows forward, not back into itself.

11. Summary Table

Aspect“When an item is created”“When an item is created or modified”
Execution FrequencyOnce per new itemEvery change (including flow updates)
Risk of LoopsNoneVery high
Ideal Use CaseInitialization, setup, notificationsUser edits that require logic
Maintenance OverheadLowHigh
Recommended?Yes – Always use for automation⚠️ Use only if absolutely required

12. Conclusion

The simplest and most robust automation strategy in Power Automate is to start with creation.
Every new SharePoint item has a clear lifecycle: creation → processing → completion.
You can safely handle all logic inside a single “When an item is created” flow — without recursion, without duplicated runs, and with total control.

Designing this way ensures that your flows are stable, maintainable, and future-proof, no matter how complex your SharePoint solutions become.

Edvaldo Guimrães Filho Avatar

Published by