🔀 Auto-Submit & Conditional Routing

Some forms should not be displayed at all, but instead should immediately update a value in onOffice when called and redirect the user. Other forms redirect to different subsequent pages depending on the selected value.

Both patterns are possible in propform with minimal setup.


Contents


## Auto-submit forms for switching values

Pattern: Click on a link → Form is called → Value in onOffice is changed → User is immediately redirected to the thank-you page. The user never sees the form.

Setup

  1. Create a form with the fields to be switched (typically single-select or Boolean)
  2. Set a forced value in each field (Field → Further field settings → “Forced value”). The forced value overrides any pre-loaded value upon submission
  3. Enable Form settings → Further settings → “Submit and redirect automatically upon opening”
  4. Set the Thank you page URL to the target page (e.g. next form, Google review link, conversion page)

Call-up

https://formular.deine-domain.de/bewertung-sehr-gut?address[ID]=<UUID>

→ Form recognises the address, sets the value “Rating = very good” in the address, and redirects.

Use Cases

  • Rating workflow with 1-click responses in an email
  • Newsletter opt-out via a link in the email
  • Set status (e.g. “Appointment confirmed”, “Interest cancelled”) with a single click
  • Trigger conversion tracking pixels without presenting the user with a form

> 💡 Tip: URL parameters on single-select fields must contain the exact key value (not the plain label). You can find key values via Browser DevTools → Inspect → <option> tags.

---

Conditional thank-you page with _calculate(IF(...))

The thank-you page URL in propform is macro-resolved — i.e. you can use a formula that returns different URLs depending on the value of a field.

Syntax

_calculate(IF([feldname]=schluesselwert;"URL-1";"URL-2"))

Nested for multiple options:

_calculate(IF([bewertung]=sehrgut;"https://google.de/review?...";IF([bewertung]=mittel;"https://formular.deine-domain.de/feedback-mittel";"https://formular.deine-domain.de/feedback-schlecht")))

Structure

  • [feldname] = field name from the form (or a field ID such as [bewertung])
  • =schluesselwert = exact key value for single-select comparison
  • "URL-1", "URL-2" = strings in quotation marks
  • IF can be nested to any depth — typically 2–4 branches

Tip: Test pattern

Before using the formula on the thank-you page, test it in a description field in the form — this way you can see live which URL is output for which value:

Test: _calculate(IF([bewertung]=sehrgut;"google_link";IF([bewertung]=mittel;"mittel_link";"schlecht_link")))

---

Complete review example

Full workflow “Collect customer reviews with conditional redirection”:

Structure

3 auto-submit forms (one per review rating) + 1 overview form (which redirects to the 3):

Form Function
bewertung-uebersicht Displays 3 buttons: 🙂 very good / 😐 average / 😞 poor
bewertung-sehr-gut Auto-submit, sets rating=very-good, thank-you-page = Google Review link
bewertung-mittel Auto-submit, sets rating=average, thank-you page = feedback form
bewertung-schlecht Auto-submit, sets rating=poor, thank-you page = detailed feedback form

Simplification: 1 form with conditional routing

Instead of 4 forms, 1 form with auto-submit + conditional thank-you page is sufficient:

_calculate(IF([bewertung]=sehrgut;"https://google.de/review?placeid=...";IF([bewertung]=mittel;"https://formular.deine-domain.de/feedback-mittel?address[ID]=_Uuidaddress";"https://formular.deine-domain.de/feedback-schlecht?address[ID]=_Uuidaddress")))

→ User clicks button in email link → Form sets value → Thank-you page URL is calculated via IF → User lands on Google / Feedback / in-depth feedback.

Create activity for tracking

In the activity configuration, you can set different action types per form (e.g. “Rating: very good”, “Rating: average”, “Rating: poor”) → Statistical analysis possible in the onOffice dashboard.

---

Asynchronous value calculations (PriceHubble, external APIs)

Some onOffice integrations — in particular the PriceHubble valuation — take 10–30 seconds after submission for the result to appear in the record. If the thank-you page is supposed to display the result immediately, it is typically still empty at this point.

> 💡 Background: Until 2024, Sprengnetter provided the valuation fields in onOffice. After ImmoScout24 acquired Sprengnetter, onOffice switched to PriceHubble. The standard valuation fields are now named: > > | Field | Meaning | > |---|---| > | MPPricehubblePrice | estimated market value | > | MPPricehubbleMin | lower limit of the estimate | > | MPPricehubbleMax | upper limit of the estimate | > | MPPricehubbleConfidence | Confidence score | > > The old Sprengnetter fields continue to work in some versions if a custom Sprengnetter payment model is active — for standard customers without an additional licence, PriceHubble applies.

Naive pattern (fails)

Submit → Danke-Seite zeigt _MPPricehubblePrice → ist leer → User verwirrt

Refresh pattern (works)

Two-stage: Thank-you page redirects to a second form, which checks the value and requests a manual refresh if necessary.

Setup:

  1. Form 1 (valuation request): Submit → Thank you page URL = Form 2 with ?estate[Id]=...&address[ID]=...
  2. Form 2 (result display): Description field with macro:
    _ifEmpty(_MPPricehubblePrice;
      "Die Berechnung läuft noch. Bitte aktualisiere diese Seite in 10–20 Sekunden.";
      "Ihr geschätzter Marktwert: _MPPricehubblePrice € (Spanne: _MPPricehubbleMin – _MPPricehubbleMax)")
    
  3. Optional: a propform button in the description field as a refresh link to the same URL:
    _pfButton("Aktualisieren";"https://formular.deine-domain.de/ergebnis?estate[Id]=_Uuidestate";"rounded";"_self")
    

Why no auto-refresh?

An automatic refresh using JavaScript polling would be more elegant, but is currently not possible in propform forms (would require custom code in the form). The refresh button is robust, mobile-friendly and sufficient in practice.

> 💡 Also works for other slow third-party APIs — e.g. credit checks, external evaluation tools, AI-powered text generation with long processing times. The pattern is generic.


Related