In Power Automate, a single flow can only start from one trigger. You cannot place two different triggers (for example, “When an item is created” and “When an item is modified”) in the same flow.
However, in many real scenarios — especially with SharePoint — you may want the same business logic to run after either creation or modification of a list item.we


How to Use Multiple Triggers in Power Automate with a Parent–Child Flow Pattern

In Power Automate, a single flow can only start from one trigger. You cannot place two different triggers (for example, “When an item is created” and “When an item is modified”) in the same flow.
However, in many real scenarios — especially with SharePoint — you may want the same business logic to run after either creation or modification of a list item.

The correct and scalable approach is to create two Parent Flows, each with its own trigger, and a shared Child Flow containing the core logic.
Both parents call the child using the “Run a Child Flow” action.


1. Why You Can’t Have Two Triggers in One Flow

Power Automate executes flows sequentially from the trigger node.
A flow definition supports exactly one entry point (triggers section in JSON).
If you try to add a second trigger, the designer disables the first one automatically.

This limitation is intentional — it simplifies monitoring, execution history, and concurrency control.
Therefore, if you need to respond to multiple events, you must create multiple flows that share logic.


2. The Parent–Child Flow Concept

🧩 Architecture

+--------------------+       +---------------------+
| Parent Flow #1     |       | Parent Flow #2      |
| Trigger: ItemCreated |     | Trigger: ItemModified |
| Run Child Flow ----> | --->| Run Child Flow ----> |
+--------------------+       +---------------------+
             \                /
              \              /
              +----------------------+
              | Child Flow “Process” |
              | Main business logic  |
              +----------------------+

Each parent flow starts independently but delegates the processing to the shared child flow.
This model is modular, maintainable, and perfectly supported by Power Automate Solutions.


3. Building the Child Flow

  1. Open Power Automate → Solutions → Create a New Solution
    (For example: SharedLogicSolution)
  2. Inside the solution, click New → Cloud Flow → Instant Cloud Flow.
  3. Choose the trigger “When a flow is called”
    (This is the official name for the child flow trigger.)
  4. Define input parameters if you need to pass data from the parent:
    • Example: Project ID, List Item ID, or File URL.
    • Each input becomes available as triggerBody()?['parameterName'].
  5. Add your main logic here (e.g., update SharePoint, send emails, etc.).
  6. Optionally return outputs to the parent with the “Respond to a PowerApp or flow” action.
  7. Save and Publish the child flow.

4. Building the Parent Flows

You’ll need one parent flow per trigger type.

Parent Flow 1 – When Item is Created

  1. Create a new flow inside the same solution.
  2. Trigger: “When an item is created (SharePoint)”
  3. Add the action “Run a Child Flow”
    • Select the child flow created earlier.
    • Pass required parameters (e.g., Item ID, Site URL, List Name).
  4. Save and publish.

Parent Flow 2 – When Item is Modified

  1. Create another flow (also inside the same solution).
  2. Trigger: “When an item is modified (SharePoint)”
  3. Add the same “Run a Child Flow” action, calling the same child.
  4. Save and publish.

Now both parents invoke the same processing logic whenever their event occurs.


5. Example Scenario

Goal: Update a calculated status field when a SharePoint item is either created or modified.

  • Flow A: Trigger → When item is created → Run “ProcessStatusFlow”.
  • Flow B: Trigger → When item is modified → Run “ProcessStatusFlow”.
  • Flow C (Child): Updates “Status” column based on business rules.

Result:
Your logic runs identically for both triggers, without duplicated code or conflicting updates.


6. Troubleshooting & Best Practices

IssueResolution
“Run a Child Flow” action not foundMake sure both flows are inside the same Solution.
Error: “Flow not found or disabled”The child flow must be saved and published first.
Need to pass complex dataUse JSON in the parameter field and parse it inside the child flow with “Parse JSON” action.
Need different logic per triggerAdd a string parameter like “TriggerSource” with values “Created” or “Modified” and use conditions inside the child flow.

7. Advantages of This Model

BenefitDescription
✅ ReuseOne logic serves multiple triggers or flows.
✅ MaintainabilityEasy to modify or fix the business process once.
✅ SecurityChild flows inherit connection references safely.
✅ ModularityClean architecture similar to microservices.
✅ MonitoringSeparate trigger histories for each entry point.

8. Summary Table

ComponentDescriptionExample
Child FlowContains reusable logic; triggered via “When a flow is called”ProcessItem
Parent Flow 1Triggered when an item is createdHandleItemCreated
Parent Flow 2Triggered when an item is modifiedHandleItemModified
Connector UsedSharePoint + Run a Child Flow
Solution RequirementBoth flows must belong to the same Solution✅ Yes
CommunicationParameters passed from Parent → ChildItemId, TriggerSource

9. References


Final Note

Whenever you need more than one trigger for similar logic, never combine them in one flow.
Instead, split the triggers and centralize your logic in a child flow — clean, reusable, and fully supported by Microsoft.

Edvaldo Guimrães Filho Avatar

Published by