The workflow hasn’t changed, but the data or type enforcement has.
Ideally, you should send more details such as the n8n version, data structure, and condition configuration; however, see if the information below helps you in any way.
Possible causes:
1. Type mismatch (most common after n8n updates)
n8n v1.x enforces strict typing in IF conditions. If you are comparing a numeric field with a string value (for example, userId == "123" instead of userId == 123), the comparison will silently fail. Solution: open the IF node, check the data type dropdown next to your value, and make sure it matches the actual type of your input data.
To inspect the type at runtime, add a code node before the IF with:
console.log(typeof $input.first().json.yourField);
return $input.all();
**2. Change in the format of upstream data
If an API, database query, or webhook recently returned data in a slightly different structure (for example, nested differently), the field you are referring to may now be undefined. In your IF node, hover over the field—if it shows undefined or is blank, the path is incorrect.
Quick check: Add a Set node before the IF and map {{ $json }} to a field—examine the complete JSON to find the correct path to your user field.
**3. Whitespace or encoding issues
Sometimes, data from external sources introduces invisible characters. If your condition is email == "``user@example.com``", but the received value is " user@example.com" (leading space), there will be no match.
Correct with an expression: {{ $json.email.trim() }}
4. Confusion between Expression and Fixed Value
Make sure the comparison value in the SE node is set to an Expression (and not a Fixed Value) if you are referencing another field dynamically. Enable the {} button next to the value input field.
5. Verify the SE node with a valid input
Use the “Run node” button in the SE node with the test data pane open—this allows you to see exactly which branch each item follows and why.
Recommended debugging flow:
- Fix the data in the node before the SE (right-click → Fix data)
- Open the SE node and use the expression editor to view the values
- Check
{{ typeof $json.yourField }} to confirm that the types match
For reference: If | n8n Docs
I hope this helped in some way. If this solved your problem, please mark this answer as a solution and click the heart button. Thank you! 