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
- Open Power Automate → Solutions → Create a New Solution
(For example:SharedLogicSolution) - Inside the solution, click New → Cloud Flow → Instant Cloud Flow.
- Choose the trigger “When a flow is called”
(This is the official name for the child flow trigger.) - 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'].
- Add your main logic here (e.g., update SharePoint, send emails, etc.).
- Optionally return outputs to the parent with the “Respond to a PowerApp or flow” action.
- 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
- Create a new flow inside the same solution.
- Trigger: “When an item is created (SharePoint)”
- Add the action “Run a Child Flow”
- Select the child flow created earlier.
- Pass required parameters (e.g., Item ID, Site URL, List Name).
- Save and publish.
Parent Flow 2 – When Item is Modified
- Create another flow (also inside the same solution).
- Trigger: “When an item is modified (SharePoint)”
- Add the same “Run a Child Flow” action, calling the same child.
- 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
| Issue | Resolution |
|---|---|
| “Run a Child Flow” action not found | Make 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 data | Use JSON in the parameter field and parse it inside the child flow with “Parse JSON” action. |
| Need different logic per trigger | Add a string parameter like “TriggerSource” with values “Created” or “Modified” and use conditions inside the child flow. |
7. Advantages of This Model
| Benefit | Description |
|---|---|
| ✅ Reuse | One logic serves multiple triggers or flows. |
| ✅ Maintainability | Easy to modify or fix the business process once. |
| ✅ Security | Child flows inherit connection references safely. |
| ✅ Modularity | Clean architecture similar to microservices. |
| ✅ Monitoring | Separate trigger histories for each entry point. |
8. Summary Table
| Component | Description | Example |
|---|---|---|
| Child Flow | Contains reusable logic; triggered via “When a flow is called” | ProcessItem |
| Parent Flow 1 | Triggered when an item is created | HandleItemCreated |
| Parent Flow 2 | Triggered when an item is modified | HandleItemModified |
| Connector Used | SharePoint + Run a Child Flow | |
| Solution Requirement | Both flows must belong to the same Solution | ✅ Yes |
| Communication | Parameters passed from Parent → Child | ItemId, TriggerSource |
9. References
- Microsoft Learn – Run a Child Flow Action
- Microsoft Learn – Solutions Overview in Power Automate
- Microsoft Learn – Best Practices for Flow Design
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.
