I’m trying to integrate a SharePoint list (Flights) with an Outlook calendar using Power Automate, and after many attempts I’m completely blocked by a condition that never evaluates as expected.
Below is the full explanation of the scenario and everything that has already been tested.
Flow goal
- When a flight is created in a SharePoint list:
- Create an Outlook calendar event
- Store the Outlook Event ID in a SharePoint column
- When the flight is modified:
- Update the existing Outlook event using that stored ID
- Avoid creating duplicate calendar events
Relevant columns:
- Fechadesalida (Date)
- Fechadellegada (Date)
- Origen (Text)
- Destino (Text)
- Movilidadprueba (Lookup – employee)
- ID Evento Outlook (Single line of text)
- The real internal name of the Outlook ID column is:
- ID_x0020_Evento_x0020_Outlook
- The column:
- Is created in the list
- Is added to the “Item” content type
- Is visible in SharePoint
- Is empty for new items
- Trigger
When an item is created or modified (SharePoint – Flights list) - Get item
- Site: correct
- List: Flights
- Id: ID from trigger
- Compose – “Check Outlook ID”
Expression:
coalesce(
outputs('Get_item')?['body/ID_x0020_Evento_x0020_Outlook'],
'EMPTY'
)
)
Runtime output is always:
EMPTY
Condition (advanced mode)
Tested expressions, for example:
@equals(outputs('Check_Outlook_ID'), 'EMPTY')
and also:
@empty(
coalesce(
outputs('Get_item')?['body/ID_x0020_Evento_x0020_Outlook'],
''
)
)
Problem
Even though:
- The Compose output is “EMPTY”
- The SharePoint column is actually empty
- The flow runs without errors
As a result:
- The YES branch never runs
- The Create event (V4) action is always skipped (grey)
- No Outlook event is created
- No Outlook Event ID is written back to SharePoint
- Correct internal column name (ID_x0020_Evento_x0020_Outlook)
- Column added to the content type
- “Get item” retrieves other fields correctly
- Tested coalesce, empty, trim, string, length
- Debug Composes (value + length)
- Compose runs successfully (green)
- Returned value is always “EMPTY”
- No runtime errors
- Outlook permissions are NOT the issue (the action never executes)
Why does a condition checking an empty field (empty(...)) or a Compose that clearly returns “EMPTY” always evaluate to False and never enter the YES branch?
Is there any known behavior related to:
- Lookups / content types
- Get item vs trigger body
- Newly added columns
- Null vs empty string handling in Power Automate
Thanks in advance

Report
All responses (
Answers (