The “Conditions and Rules” tab in the form settings is the more modern, visual editor for field logic — showing/hiding fields, making fields mandatory dynamically, calculating values, filtering options. It is the recommended method for most use cases.
> ⚠️ Beta status: The feature is live, but we are still testing edge cases. If a specific setup does not behave as expected: send a quick email to hello@propform.io with the form ID — we’ll look into it.
For each rule, you select an action that is executed when the condition is met:
| Action | Effect |
|---|---|
| Hide | Field is no longer displayed (value remains empty on submission) |
| Show | Fields hidden by default are made visible |
| Make required | Validation enforces input before submission |
| Lock | Field remains visible but cannot be edited (e.g. after first submission) |
| Hide options | For single/multi-select: remove specific values from the selection |
| Set value | Field is assigned a fixed value |
| Calculate value | Field is assigned the result of a formula (see below) |
| Change label | Dynamically replace field label (e.g. “Purchase price” → “Rental price”) |
Conditions check the value of another field. Available operators:
ist gleich / ist nicht gleichist leer / ist nicht leerenthält / enthält nicht (for multi-select & text fields)ist größer als / ist kleiner als (for numbers)ist größer-gleich / ist kleiner-gleichMultiple conditions per rule are linked using AND (all must apply) or OR (one is sufficient) — selectable per rule.
With the “Calculate value” action, you can arithmetically combine values from multiple fields — e.g. automatically calculate an internal commission from the purchase price and commission percentage.
The formula uses pipe syntax with field IDs:
{{multiply:field:125802|field:125803|/100}}
→ multiplies the values from field ID 125802 and field ID 125803, then divides the result by 100.
Example setup: Three fields in the form — Kaufpreis (number field), Prozent Innenprovision (number field), Summe Innenprovision (number field).
1. Find the field IDs
The field ID is the DOM ID of the <input> element in the form. Here’s how to find it:
<div> — the field ID is listed in the ID property (e.g. 125802)2. Create a rule
‘Conditions and Rules’ tab → New rule:
Kaufpreis is not empty AND Prozent Innenprovision is not emptySumme Innenprovision{{multiply:field:<ID-Kaufpreis>|field:<ID-Provisions-Prozent>|/100}}
3. Live test
Open form → Enter purchase price → Enter commission percentage → Total is calculated automatically.
Operators are chained together using the pipe |:
| Pattern | Meaning | Example |
|---|---|---|
multiply:... |
Multiplication | `multiply:field:A |
add:... |
Addition | `add:field:A |
subtract:... |
Subtraction | `subtract:field:A |
divide:... |
Division | `divide:field:A |
/<zahl> |
Division by a fixed value | `multiply:field:A |
*<zahl> |
Multiply by fixed value | `add:field:A |
field: vs. field_value:| Syntax | When to use? |
|---|---|
field:<ID> |
For number fields: returns the entered value. For single-select: returns the plain name (e.g. “Flat”) |
field_value:<ID> |
For single-select: returns the technical key value (e.g. ind_3673). Important for comparisons in IF() conditions |
For pure numeric fields, field: and field_value: return the same result — both work.
> 💡 UX note: The current setup using DevTools IDs and pipe syntax isn’t particularly intuitive. A visual formula editor is on the roadmap.
## One-way vs. two-way conditions
Most actions are applied sticky (one-way) — once the condition has been met, the effect remains, even if the condition becomes false again. Only a few actions automatically revert to their original state (two-way).
| Action | Behaviour |
|---|---|
| Hide / Show | One-Way (sticky) — the set visibility state remains; for the reverse, you need a second rule |
| Lock / Unlock | One-Way |
| Read-only / Editable | One-Way |
| Required / Optional | One-Way (STICKY) — if condition becomes false again, the required state remains |
| Hide options | Two-Way — options are automatically shown again when the condition becomes false |
| Show options again | One-Way (sticky show) |
| Set value / calculate (standard fields) | One-Way — set value remains |
| Set value for image/video fields | Two-Way — src is automatically reset to the original value |
| Change label | Two-Way — original label automatically returns when condition becomes false |
> 💡 For actions that are One-Way: if you want to undo them, you need a second rule with the inverse condition to restore the original state. Example: One rule shows the field, a second rule hides it again.
If multiple rules affect the same field (e.g. Rule 1 sets the value to X, Rule 2 sets the value to Y), the priority decides:
> 💡 Best practice: Assign priorities in increments of 10 (10, 20, 30, …) so that you can insert rules in between later.
Vermarktungsart = MieteKaufpreis → Change label to KaltmieteKaufpreis → Add suffix (€/Monat)Provisionsfrei = JaProvision Außen, Provisions-Prozent, MwSt. → HideVertragsart = KaufvertragKäufer-Vorname + Käufer-Nachname → Required fieldsKaufpreis is not empty AND Provisions-Prozent is not emptySumme Innenprovision → Calculate value → {{multiply:field:KAUFPREIS_ID|field:PROZENT_ID|/100}}Bundesland = BayernRegion → Hide options → all except the Bavarian regions_calculate(IF(...)) for thank-you page URLs