Dropdown Value Always Evaluated as “No” in IF Node (Even When User Selects “Yes”)

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.

Information on your n8n setup

  • n8n version:
  • Database (default: SQLite):
  • n8n EXECUTIONS_PROCESS setting (default: own, main):
  • Running n8n via (Docker, npm, n8n cloud, desktop app):
  • Operating system:

welcome to the n8n community @Glenn.Mbg

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.

fyi

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.

n8n Form Trigger node documentation | n8n Docs

1 Like

Hi @Glenn.Mbg Welcome!
Instead of drop downs have you tried radio buttons?

Hi @Anshul_Namdev, it’s one of the options I have in mind and that I’ll try. Thanks for the suggestion !

1 Like

Thanks for your help @tamy.santos.

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

Glad I could help!