Skip to main content

How to Run a Flow When a SharePoint Item Is Created or Modified in Power Automate

· 7 min read
Jagdish Kumawat
Founder @ Dewiride

SharePoint's When an item is created or modified trigger starts a flow each time an item is added to a list or changed. Give it the site and the list, and every column of the item becomes something the flow can use. It isn't instant: in my tests, the flow started about a minute after each save.

Microsoft's SharePoint connector reference describes it in one line: Triggers when an item is created, and also each time it is modified.

The example is the approval flow of the Overtime Timesheet app, which runs for each overtime entry saved in the OvertimeEntries list.

Prerequisites​

Step 1: Choose the Site and the List​

Select the trigger and fill in its two required fields:

FieldWhat to enter
Site AddressThe site the list is on
List NameThe list to watch

Both can be picked from their drop-downs, as in the classic designer here:

The trigger card with Site Address Overtime Timesheet - https://contoso.sharepoint.com/sites/OvertimeTimesheet and List Name OvertimeEntries

In a flow that moves between environments, use environment variables instead, so each environment points at its own site and list (How to Use Environment Variables in a Power Automate Flow):

The trigger's pane in the new designer with Site Address set to the environment variable Overtime Times… and List Name set to the environment variable OvertimeEntries…, Advanced parameters Showing 0 of 1, and the line Connected to Overtime Timesheet SharePoint. with Change connection reference, next to the canvas with the trigger and a Get item action

The last line of the pane says which connection reference the trigger uses; in a solution, it should be one in the same solution (Fixed: A Flow in a Solution Uses Another Solution's Connection Reference in Power Automate).

Step 2: Use What the Trigger Returns​

After the trigger, the dynamic content list has a token for each column of the item, plus SharePoint's own: ID, Created By Email, Created By DisplayName and others. In the example flow, the trigger's outputs for an entry included:

OutputWhat it held
IDThe item's ID, for reading or updating it later
Author/Email (Created By Email)The email of the person who created the item
Author/DisplayNameTheir name
Status/ValueThe text of the Status choice column
StartTime, EndTimeDate and time columns, in UTC
WorkDateA date-only column, such as 2026-11-02
{VersionNumber}The item's version, such as 4.0

In an expression, the trigger's outputs are read with triggerOutputs()?['body/...'] or triggerBody()?['...'], for example:

Expression
triggerOutputs()?['body/Status/Value']

Date and time columns arrive in UTC, so show them in local time with convertFromUtc (How to Convert UTC to Local Time in Power Automate with convertFromUtc).

Step 3: Know When It Runs​

How soon. This trigger checks the list for changes from time to time; it isn't told about each change. Microsoft's trigger troubleshooting article says The wake-up time depends on the license plan on which the flow runs, and for the Office 365 plan that comes with Microsoft 365, your flow doesn't run again until five minutes elapses. In my tests, each run started about a minute after the save, never more than a few minutes.

One run per item. The trigger's Settings have Split on switched on, on the array @triggerOutputs()?['body/value']. Two entries saved 19 seconds apart started two runs, one for each:

The trigger's Settings tab with General expanded: Split on switched On, Array @triggerOutputs()?['body/value'], an empty Split-on tracking ID, Concurrency control with Limit Off, and Trigger conditions with one condition

Every change. A change made by the flow itself, such as writing a decision back to the item, is a change too. A trigger condition decides which changes start a run (How to Add a Trigger Condition in Power Automate).

Not before it existed. Items that were last saved before the flow was turned on don't start a run. In the example, two older entries waited until they were saved again.

Common Mistakes​

MistakeWhat happensDo this instead
Expecting the flow to start the moment an item is savedIt starts a little laterWait a minute or two, more on some licenses
Writing back to the item without a trigger conditionEach write starts another runAdd a trigger condition
Showing StartTime as it arrivesUTC times in an email or approvalConvert with convertFromUtc
Turning Split on off without a reasonOne run gets several items at onceLeave it on

Troubleshooting​

SymptomLikely causeFix
No run after saving an itemWait for the trigger to check, or a trigger condition said noWait, then check the condition
An older item never started a runIt hasn't changed since the flow was turned onSave it again
The flow runs again after it updates the itemIts own change triggered itAdd a trigger condition
Times are an hour off in summerThe UTC value is shown as it isConvert to the local time zone

FAQ​

Is there a trigger for new items only?​

Yes: SharePoint also has When an item is created. Use When an item is created or modified when a change to an item should run the flow too, as an edited overtime entry should.

Does it need a premium license?​

No. SharePoint is a standard connector.

Conclusion​

When an item is created or modified runs a flow for each item added to or changed in a list: choose the site and the list, read the item's columns from the trigger's outputs, and expect each run to start a minute or more after the save. Every change counts, including the flow's own, so pair it with a trigger condition.

Additional Resources​