Power Automate SharePoint: Triggers, Filters, HTTP, and Actions

Every SharePoint trigger, every action, OData filter query syntax, and the advanced HTTP request action — the complete connector reference for flow builders.

The SharePoint connector in Power Automate is the most widely used connector in the platform — and the most frequently misused. Choosing the wrong trigger causes double-fires and infinite loops. Using "Get items" without a filter query loads thousands of records unnecessarily. The "Send an HTTP request to SharePoint" action unlocks capabilities no other action provides. This guide covers SharePoint triggers, actions, OData filters, Data Operations, tracked properties, and HTTP patterns with the context you need to use each one correctly.

Power Automate SharePoint triggers screenshot
Microsoft Power Automate screenshot showing SharePoint triggers that start flows. Source: Microsoft Learn.

SharePoint Triggers: The Complete Reference

  1. 1
    Navigate to Power Automate and create a new flow

    Go to powerautomate.microsoft.com > Create > select flow type (Cloud flow or Desktop flow). For this guide, we focus on Cloud flows with SharePoint triggers.

  2. 2
    Choose and configure your trigger

    Select a trigger from 'SharePoint' or 'Microsoft 365' category (e.g., 'When an item is created', 'When an approval is completed', 'When a new email arrives'). Set any required parameters like site and list.

  3. 3
    Add your first action

    In the flow designer, click '+ New step'. Search for and select an action (e.g., 'Send email', 'Create reminder', 'Post message'). Map trigger outputs to action inputs using dynamic content buttons.

  4. 4
    Add parallel actions (optional)

    Click '+ Add a parallel branch' to run multiple actions simultaneously. Useful for sending emails AND creating calendar events when a trigger fires.

  5. 5
    Set up conditions to control flow

    Add 'Condition' blocks to check if values meet criteria. For example: if email subject contains 'URGENT', escalate to manager; otherwise, route to standard process. Use all available operators and functions.

  6. 6
    Configure error handling and notifications

    Add 'On failure' handlers to catch errors. Log to SharePoint list or send alert to admin Teams channel. Test the flow with various inputs to ensure robustness.

Triggers determine when a flow starts. The SharePoint connector offers two categories: list/library triggers (respond to item or file changes) and site triggers (respond to page or structural changes).

TriggerFires whenBest forGotchas
When an item is created A new list item is added to the specified list New record workflows: approval, notification, provisioning Does NOT fire on file uploads — use the file trigger for document libraries
When an item is created or modified Any change to a list item, including creation Status-change workflows where you need to react to updates Fires on every column change — guard against infinite loops with a condition on a specific column value
When an item is deleted A list item is deleted (moved to Recycle Bin) Archiving, audit logging, cascade deletions to related lists Only the item ID is available in the trigger — all other field values are gone; log them before deletion using a modified trigger
When a file is created (properties only) A new file is uploaded to a document library Document approval flows, virus scan triggers, metadata enforcement "Properties only" means no file content — use "Get file content" action if you need to process the file itself
When a file is created or modified (properties only) Any file upload or property update in a library Document approval with re-submission; metadata update notifications Most common source of infinite loops — always filter on a specific column value immediately after the trigger
When a file is created in a folder A file appears in a specific subfolder Folder-specific processing: scan invoices dropped in /Inbox folder Does not fire for files added to subfolders of the specified folder — only the exact folder path
For a selected item User manually triggers the flow from the SharePoint list item menu On-demand actions: generate a PDF, send a report, trigger a one-off sync Requires user to initiate — not suitable for automated background processes; appears in the "Automate" menu on the list
For a selected file User manually triggers from a file in a document library On-demand file processing: convert to PDF, send for signature, archive Same as above — user-initiated only
📄 SharePoint connector reference — learn.microsoft.com

SharePoint Actions: The Complete Reference

Power Automate SharePoint actions list screenshot
Microsoft Power Automate screenshot showing SharePoint actions available in flows. Source: Microsoft Learn.

List item actions

ActionWhat it doesKey parameters
Get itemsRetrieves multiple list items — returns an array you can loop throughFilter Query (OData), Top Count, pagination, Order By, Select Columns
Get itemRetrieves a single list item by its IDID (integer — not the item's title or GUID)
Create itemAdds a new item to a SharePoint listAll list column values; required columns must have values or the action fails
Update itemModifies an existing list item — only specified fields are changedID of the item to update; only include columns you want to change
Delete itemMoves an item to the Recycle BinID of the item
Get list viewsReturns metadata about configured views in a listRarely needed in flows; useful for view-filtered data export scenarios

File and library actions

ActionWhat it doesKey parameters
Create fileUploads a file to a document library; creates the file if it doesn't existSite Address, Folder Path (relative), File Name, File Content (binary)
Get file contentDownloads the binary content of a fileSite Address, File Identifier (path or ID from trigger)
Get file metadataReturns metadata for a file (size, created date, modified by, etc.) without downloading contentFile Identifier
Update file propertiesWrites to the metadata columns of a document library itemSite Address, Library Name, ID, and any columns to update
Get file metadata using pathSame as Get file metadata but accepts a folder path string instead of file IDFile path relative to site root
Copy fileCopies a file to a new location (same or different site)Current Path, Destination Path, Whether to overwrite
Move or rename a fileMoves a file or changes its nameCurrent Path, New Path
Delete fileMoves a file to the Recycle BinFile Identifier
Extract folderUnzips a ZIP archive into a specified folderSource file path, Destination folder path

Mastering the "Get Items" Filter Query

The Filter Query parameter in "Get items" is where most Power Automate beginners lose time. It uses OData query syntax — a standard query language for REST APIs. Without it, "Get items" returns up to the Top Count limit regardless of what you actually need.

Essential OData filter query examples

// Filter by text column Status eq 'Pending Review' // Filter by number Amount gt 500 // Filter by date (ISO 8601 format — use formatDateTime() expression) DueDate lt '@{formatDateTime(addDays(utcNow(), 30), 'yyyy-MM-dd')}' // Filter by person column (use the Email sub-property) AssignedTo/EMail eq '[email protected]' // Filter by choice column Department eq 'Finance' // Combine filters with AND Status eq 'Active' and Amount gt 1000 // Combine filters with OR Status eq 'Pending' or Status eq 'In Review' // Filter items created in last 7 days Created gt '@{formatDateTime(addDays(utcNow(), -7), 'yyyy-MM-ddTHH:mm:ssZ')}'

Person column gotcha: SharePoint Person columns store user objects, not strings. To filter by a person field, you must use the sub-property notation: AssignedTo/EMail eq '[email protected]' — not AssignedTo eq 'User Name'. The display name filter will always fail.

📄 OData query operations in SharePoint REST — learn.microsoft.com

The "Send an HTTP Request to SharePoint" Action

SharePoint REST query option syntax diagram
Microsoft SharePoint REST diagram showing OData query option syntax used by advanced flow actions. Source: Microsoft Learn.

This action is the most powerful in the SharePoint connector and should be in every advanced flow builder's toolkit. It lets you call SharePoint's REST API directly — accessing capabilities not exposed through the standard actions, including:

  • Managing SharePoint groups and permissions programmatically
  • Accessing site properties, features, and navigation
  • Querying cross-list data with CAML queries
  • Working with content types, term store, and managed metadata
  • Reading and writing site columns and site content types

Example: Get all members of a SharePoint group

Site Address: https://contoso.sharepoint.com/sites/yoursite Method: GET URI: _api/web/sitegroups/getbyname('Owners')/users Headers: Accept: application/json;odata=nometadata Content-Type: application/json

Example: Update a managed metadata field on a list item

Method: POST URI: _api/web/lists/getbytitle('Documents')/items(@{triggerOutputs()?['body/ID']}) Headers: Accept: application/json;odata=nometadata Content-Type: application/json IF-MATCH: * X-HTTP-Method: MERGE Body: { "Department": { "__metadata": {"type": "SP.Taxonomy.TaxonomyFieldValue"}, "Label": "Finance", "TermGuid": "your-term-guid", "WssId": -1 } }

Common Performance Patterns

Use "Get items" with Top Count to limit results

Set the Top Count to the minimum number you actually need. For larger result sets, enable the "Pagination" option in the action's Settings tab so Power Automate can retrieve multiple pages instead of relying on one oversized request.

Use "Select" to reduce payload size

By default, "Get items" returns all columns for every item, including internal system columns. Use the "Select Columns" parameter to specify only the columns your flow actually needs — this significantly reduces the payload size and speeds up large list queries:

// Select only the columns you need (comma-separated internal names) ID,Title,Status,DueDate,AssignedTo/EMail,AssignedTo/Title // For person columns, also add to Expand: AssignedTo

Avoid "Apply to each" on large result sets

Power Automate processes "Apply to each" loops sequentially by default (one item at a time). For large result sets this is slow. Enable concurrency in the loop's Settings tab (up to 50 concurrent iterations) — but be careful: concurrent SharePoint writes can cause throttling. Test with 5–10 concurrent iterations first.

Struggling with Power Automate performance or complexity?

OceanCloud's Power Platform team can review your existing flows, identify inefficiencies, and rebuild them with production-grade patterns — or design new flows from your requirements.

Book a Flow Review

Frequently Asked Questions

'When a file is created' fires only on new file creation. 'When a file is created or modified' fires on both create and update.

'When an item is created' and 'When an item is created or modified' work the same way but for list items. Use the narrowest trigger to avoid unnecessary flow runs and reduce throttling risk.

Power Automate actions are the steps that run after a trigger starts the flow.

SharePoint actions create, update, read, copy, or delete SharePoint items and files. Data Operations actions reshape data inside the flow, and HTTP actions call REST endpoints when the connector does not expose the operation directly.

Use an OData filter query in the 'Get items' action. For example: Status eq 'Approved' filters to approved items only.

You can combine filters with 'and' / 'or', filter by date with ge (greater than or equal), and reference column internal names. Always set a Top Count limit to avoid retrieving thousands of items unnecessarily.

This action calls the SharePoint REST API directly, giving you access to operations not exposed by the standard connector — such as managing permissions, working with site collections, updating content types, or reading term store data.

It requires knowing the REST endpoint and passing correct Accept and Content-Type headers.

The default Top Count is 100. Increase it up to 5000 in the action settings.

For lists larger than 5000 items, use pagination: enable 'Pagination' in Settings and set the threshold. For very large lists, consider filtering server-side with OData queries first to reduce the result set before pagination.

Throttling occurs when too many API calls hit SharePoint in a short window.

Mitigation strategies: avoid loops that call SharePoint on every item (batch with Select columns instead), add a Delay action between iterations, use 'Get items' with OData filters rather than filtering client-side after retrieving all items, and schedule high-volume flows outside business hours.

💬

Ready to transform your SharePoint and Microsoft 365 environment?

OceanCloud specialises in SharePoint consulting, M365 migration, Power Platform solutions, and enterprise governance. Let's discuss how we can help.

Book a Free 60-Minute Consultation ➜