Conditional Logic isn’t firing as expected
You added rules under Conditional Logic on the integration, but either nothing fires (all submissions are skipped) or everything fires (the rule is ignored).
Cause 1 — Case-sensitive value mismatch
Most operators are case-sensitive string comparisons. Premium ≠ premium ≠ PREMIUM.
- Open the test submission in AFI > Log and inspect the actual value the sender plugin sent for the field.
- Match the comparison value’s case to that exactly.
- If the source value’s casing varies (e.g. dropdown labels users can edit), consider two parallel rules joined with Any.
Cause 2 — Whitespace and hidden characters
- Trailing spaces, non-breaking spaces (
), and zero-width characters all break exact-match operators. - Copy the field value from the log entry directly and paste — don’t retype it.
Cause 3 — Right-hand side must be a fixed value
The value field of a conditional rule expects a literal string, not a dynamic tag. Putting {{some_field}} on the right doesn’t compare two fields — it’s treated as the literal text {{some_field}}.
AFI’s Conditional Logic doesn’t support field-to-field comparisons in the current version. Workaround: use a hidden form field that holds the comparison value, or use a webhook + your own server logic.
Cause 4 — Radio / checkbox field values vs labels
- Most form plugins distinguish between the value (the internal saved string) and the label (what the user sees). AFI compares against the value, not the label. Confirm by inspecting the form’s HTML or by looking at the saved entry.
- Multi-select / checkbox fields send a delimiter-joined string (comma, pipe, newline depending on plugin). Contains works against the joined string; Equal To doesn’t.
Cause 5 — Numeric comparisons on empty values
Empty fields evaluate to 0 for Greater Than / Less Than. An empty budget passes Less Than 500. Mark the form field as required, or add a Not Equal To empty rule alongside.
Cause 6 — All vs Any logic
- All: every rule must pass.
- Any: at least one rule must pass.
- Common mistake: two Not Equal To rules joined with All when you meant All (the value must not equal A and must not equal B). Joining with Any would let it through if it doesn’t equal either, which is usually not what you want.
Diagnosing
- Temporarily remove all conditional rules.
- Submit the form. AFI should log the integration as firing successfully.
- Add rules back one at a time, testing after each.
- The rule that flips the result from fired to skipped is the misconfigured one.