Why this error happens (even when the condition “looks” correct)
The Condition action breaks when:
You compare complex objects (like From or Sender) instead of a string
Or you mixed dynamic content + manual text in a way Power Automate can’t parse
Most commonly, people use “From” instead of the sender email address, which causes:
invalid expression(s)
Correct way to check for external senders (recommended)
Step 1: Use the Sender email address field
Do NOT use:
From
Sender
Address (object)
Use From (Address) or Sender email address (string)
Step 2: Use Advanced mode in the Condition
Click Condition → Edit in advanced mode
Paste exactly this expression:
@not(contains(triggerOutputs()?['body/from/emailAddress/address'], '@domain.com'))
Replace @domain.com with your internal domain
This avoids invalid object comparisons
Alternative (Safe UI Method – no advanced mode)
If you prefer the basic UI:
Condition setup
Left value: From (Address)
Operator: does not contain
Right value: @domain.com
If this still errors, switch to advanced mode (above). The UI is buggy for email objects.
Move email action (after condition)
In the Yes / True branch:
Use Move email (V2)
Folder: your target external-email folder
✅ If this answer helped resolve your issue, please mark it as Accepted so it can help others with the same problem.
👍 Feel free to Like the post if you found it useful.