Hi everyone,
I’m working on a workflow that starts with an n8n Form Trigger.
One of the fields is a Dropdown called searchEmail with two options:
Yes → should correspond to true
No → should correspond to false
Describe the problem/error/question
When the workflow reaches the IF node, the condition always evaluates as No, no matter what the user selected in the form.
Even if the user chooses Yes, the IF node still behaves as if the value is false.
What I’ve checked so far
The form correctly displays the dropdown and sends a value.
I tried setting the “Field Value” to True / False in the form configuration.
I also tried comparing strings inside the IF node, like:
={{ $json.searchEmail === “True” }}
This works, but it’s not clean and doesn’t solve the underlying issue.
I inspected the incoming data in the workflow: the field seems to always be interpreted as a string, not a boolean.
No matter what I do, the IF node never detects the value as true.
Workflow context
Here is the part of the workflow where the issue happens (screenshot attached).
The IF node is supposed to branch depending on the user’s selection, but both branches behave as if the user selected “No”.
Please share your workflow
My question
Is there a way to make the Dropdown field return a real boolean that the IF node can evaluate correctly?
Or is there a recommended best practice to map “Yes/No” to true/false before reaching the IF node?
Thanks a lot for your help — I feel like I’m missing something obvious, but I can’t get the IF node to behave correctly.
What I’d do here is stop trying to make the dropdown return a real boolean directly.
My recommendation would be to map the value before the IF node.
For example, add a Set node and convert it into a proper boolean there, something like searchEmailBool = {{$json.searchEmail === ‘Yes’}}, then have the IF node check that boolean field. That keeps the form simple and makes the branching predictable.
So yes, there is a clean way to handle it, but I wouldn’t rely on the dropdown itself to emit a native boolean. I’d normalize it once right after the Form Trigger, then use that normalized field everywhere else in the workflow.
In forms, dropdown values usually come through as strings, so this is less about the IF node being wrong and more about the form output type. The IF node supports typed comparisons, but the incoming value still needs to match that type.
Definitely a great idea, since I’m still a beginner, I thought I could just set the values of the user’s input and treat it as a boolean. But converting through another node is sounds good to me; I’ll try it right away
Looking at your workflow JSON, the condition is comparing two hardcoded string literals to each other instead of reading the actual form output, so the result never changes regardless of what the user selects. The normalization approach works because it creates an actual reference to the form value — thats what the condition needs to evaluate against.
By the way @Glenn.Mbg , if you get this sorted out, feel free to hit the solution button or drop a like. It helps keep the forum organized and lets others know what worked, lol.