Hi @Steve,
Thanks for confirming how TEXT() handles blank Number data types. That helps narrow things down, but it leaves me with a mystery on why my action condition is behaving this way.
To give you the full context, I am using [Alias] <> TEXT([Serial No]) as the “Only if this condition is true” expression for an action. The action itself simply sets the value of the [Alias] field to TEXT([Serial No]).
I added this condition to ensure the action isn’t enabled unnecessarily when both fields are essentially the same.
The Problem
When testing this for completely new records, both fields start blank. Based on your explanation that TEXT() outputs an empty string for a blank number, I expected the comparison to be "" <> "".
That should evaluate to FALSE, keeping the action disabled. However, the action is still being triggered via manual trigger/automation, meaning AppSheet is evaluating the condition as TRUE.
Why I’m using the TEXT() wrapper for “Only if this condition is true” expression
To ensure that different data types don’t cause the condition to constantly pass as TRUE.
If I simply use[Alias] <> [Serial No], AppSheet might look at a Number (100495) and a Text string ("100495") and decide they aren’t equal strictly because of the type mismatch. Parsing the Serial Number as text seemed like the safest way to get a true 1:1 comparison.
The Google Sheets Factor
My data source is Google Sheets (converted to a native Google Sheets table). I know that Google Sheets often adds a single leading quote (') to a cell to force a number to behave as text.
While I wonder if AppSheet might be comparing an empty string to a hidden formatting character (like that quote or a space) in the background, that shouldn’t essentially be an issue for new records where the values are completely blank.
Given that TEXT() outputs a clean empty string, and sheet formatting shouldn’t apply to empty cells, what else could be happening under the hood that causes AppSheet to see a mismatch between these two blank fields?