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 SharePoint

Required 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 = 12345

If 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 = Blank

The 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
Status

You 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             No

Example: 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 = Blank

Handling 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 null

Then:

Yes
 ↓
Process Comments

No
 ↓
Skip Comments Processing

You 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 Email

You 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
Action

should generally remain required if the flow cannot work without them.

Make Supporting Information Optional

For example:

Comments
Description
Additional Details
Reference

can 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
Status

instead of:

Input1
Input2
Input3

Conclusion

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
       ↓
Output

For 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.