Introduction
When building Power Automate flows, trigger inputs are often used to receive information from Power Apps, other flows, HTTP requests, or automated processes.
In some scenarios, not every input parameter is required. Making trigger parameters optional allows the flow to run even when a value is not provided.
This is especially useful when designing reusable and flexible flows.
What Are Trigger Input Parameters?
Trigger input parameters are values that a flow receives when it starts.
For example, a Power Automate flow called from Power Apps might receive:
Invoice ID
User Email
Action
Comments
Status
A typical flow might look like:
Power Apps
↓
Trigger
↓
Validate Parameters
↓
Process Business Logic
↓
Update SharePointRequired vs Optional Parameters
By default, some trigger inputs may be treated as required.
Required Parameter
The flow expects the value to be provided.
Example:
InvoiceID = 12345If the value is missing, the flow may fail or the caller may need to provide it.
Optional Parameter
The value can be provided, but the flow can also run without it.
Example:
InvoiceID = 12345
Comments = BlankThe flow can continue even though Comments is not provided.
How to Mark Trigger Inputs as Optional

The exact option depends on the type of trigger you are using.
Step 1 – Open the Flow
Open your flow in Power Automate.
Go to the trigger where you have defined the input parameters.
For example:
When Power Apps calls a flow (V2)or another trigger that supports configurable inputs.
Step 2 – Identify the Input Parameters
For example:
Invoice ID
User Email
Comments
StatusYou may have a requirement where:
Invoice ID → Required
User Email → Required
Comments → Optional
Status → Optional
Step 3 – Configure the Parameter
Open the parameter/input configuration.
Where the trigger supports it, change the parameter from Required to Optional.
The configuration should conceptually look like:
Parameter Required
----------------------------
Invoice ID Yes
User Email Yes
Comments No
Status NoExample: Power Apps → Power Automate
Suppose Power Apps calls a flow:
InvoiceApprovalFlow.Run(
InvoiceID,
UserEmail,
Comments,
Status
)Previously, all four parameters might be expected.
After making Comments and Status optional, the flow can handle scenarios such as:
InvoiceApprovalFlow.Run(
"INV-1001",
"[email protected]",
"",
""
)The flow receives:
InvoiceID = INV-1001
UserEmail = [email protected]
Comments = Blank
Status = BlankHandling Optional Parameters in the Flow
Making a parameter optional does not mean you should ignore the possibility of a blank value.
It is good practice to check whether the value was supplied.
For example, use a Condition:
Comments is not equal to nullThen:
Yes
↓
Process Comments
No
↓
Skip Comments ProcessingYou can also use expressions such as:
empty(triggerBody()?['Comments'])Example:
if(
empty(triggerBody()?['Comments']),
'No comments provided',
triggerBody()?['Comments']
)Example Use Case – Audit Logging
Optional trigger parameters are particularly useful in reusable audit-log flows.
For example:
AuditLogFlow
│
├── Module
├── Record ID
├── Action
├── Details
├── Status
└── User EmailYou may define:
Parameter | Required |
|---|---|
Module | Yes |
Record ID | Yes |
Action | Yes |
Details | No |
Status | No |
User Email | Yes |
This allows different applications and flows to reuse the same audit-log flow without providing unnecessary information every time.
For example:
AuditLogFlow.Run(
"Approval",
"12345",
"Task Approved",
"Approved",
"[email protected]"
)Another scenario could omit optional details:
AuditLogFlow.Run(
"Invoice",
"12345",
"Invoice Created",
"",
"[email protected]"
)Benefits of Optional Trigger Parameters
1. Flexible Flows
The same flow can support multiple scenarios.
2. Reusable Components
Reusable child flows can accept only the information required for a particular operation.
3. Fewer Errors
Callers do not need to generate unnecessary values for every parameter.
4. Cleaner Power Apps Integration
Power Apps can pass blank values for parameters that are not relevant.
5. Better Maintainability
Optional parameters make generic flows easier to extend in the future.
Best Practices
Keep Business-Critical Inputs Required
For example:
Invoice ID
Module
Actionshould generally remain required if the flow cannot work without them.
Make Supporting Information Optional
For example:
Comments
Description
Additional Details
Referencecan often be optional.
Always Handle Blank Values
Do not assume an optional parameter contains data.
Use:
empty()or appropriate null/blank checks before processing it.
Use Clear Parameter Names
Prefer:
InvoiceID
UserEmail
Action
Comments
Statusinstead of:
Input1
Input2
Input3Conclusion
Marking trigger input parameters as optional is a useful way to make Power Automate flows more flexible and reusable.
A good design is:
Required Inputs
↓
Optional Inputs
↓
Validate Blank Values
↓
Business Logic
↓
OutputFor reusable flows such as audit logging, notifications, approval processing, and SharePoint operations, optional parameters can significantly simplify integration with Power Apps and other Power Automate flows.

Join the conversation! Your thoughts help the community grow.