🔀 Auto-Submit & Conditional Routing

Manche Formulare sollen gar nicht angezeigt werden, sondern beim Aufruf direkt einen Wert in onOffice umstellen und den User weiterleiten. Andere Formulare leiten abhängig vom ausgewählten Wert auf unterschiedliche Folgeseiten weiter.

Beide Patterns sind in propform mit minimalem Setup möglich.


Inhalt


Auto-Submit-Formulare zum Werte umschalten

Pattern: Klick auf einen Link → Formular wird aufgerufen → Wert in onOffice wird umgestellt → User wird sofort zur Danke-Seite weitergeleitet. Der User sieht das Formular nie.

Setup

  1. Formular erstellen mit den Feldern, die umgestellt werden sollen (typischerweise Single-Select oder Boolean)
  2. Erzwungener Wert in jedem Feld setzen (Feld → weitere Feldeinstellungen → „Erzwungener Wert"). Der erzwungene Wert überschreibt jeden vorgeladenen Wert beim Submit
  3. Formulareinstellungen → Weitere Einstellungen → „Bei Aufruf direkt automatisch absenden und weiterleiten" aktivieren
  4. Danke-Seite-URL auf die Zielseite setzen (z.B. nächstes Formular, Google-Bewertungs-Link, Conversion-Page)

Aufruf

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

→ Formular erkennt die Adresse, setzt den Wert „Bewertung = sehr gut" in der Adresse, leitet weiter.

Use-Cases

  • Bewertungs-Workflow mit 1-Klick-Antworten in einer E-Mail
  • Newsletter Opt-out über einen Link in der Mail
  • Status-Setzen (z.B. „Termin bestätigt", „Interesse abgesagt") per Klick
  • Conversion-Tracking-Pixel triggern, ohne dem User ein Formular vorzusetzen

💡 Tipp: URL-Parameter auf den Single-Select-Feldern müssen den exakten Schlüsselwert enthalten (nicht das Klar-Label). Schlüsselwerte findest du via Browser-DevTools → Untersuchen → <option>-Tags.


Conditional Danke-Seite mit _calculate(IF(...))

Die Danke-Seite-URL in propform ist Makro-aufgelöst — d.h. du kannst eine Formel verwenden, die je nach Wert eines Felds unterschiedliche URLs zurückgibt.

Syntax

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

Verschachtelt für mehrere Optionen:

_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")))

Aufbau

  • [feldname] = Feldname aus dem Formular (oder eine Field-ID wie [bewertung])
  • =schluesselwert = exakter Schlüsselwert für Single-Select-Vergleich
  • "URL-1", "URL-2" = Zeichenketten in Anführungszeichen
  • IF kann beliebig tief verschachtelt werden — typisch sind 2–4 Verzweigungen

Tipp: Test-Pattern

Bevor du die Formel als Danke-Seite einsetzt, teste sie in einem Beschreibungs-Feld im Formular — so siehst du live, welche URL bei welchem Wert ausgegeben wird:

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

Komplettes Bewertungs-Beispiel

Vollständiger Workflow „Kundenbewertung einholen mit conditional Weiterleitung":

Aufbau

3 Auto-Submit-Formulare (eines pro Bewertungs-Stufe) + 1 Übersichts-Formular (das auf die 3 weiterleitet):

Formular Funktion
bewertung-uebersicht Zeigt 3 Buttons: 🙂 sehr gut / 😐 mittel / 😞 schlecht
bewertung-sehr-gut Auto-Submit, setzt Bewertung=sehrgut, Danke-Seite = Google-Review-Link
bewertung-mittel Auto-Submit, setzt Bewertung=mittel, Danke-Seite = Feedback-Formular
bewertung-schlecht Auto-Submit, setzt Bewertung=schlecht, Danke-Seite = intensives Feedback-Formular

Vereinfachung: 1 Formular mit Conditional Routing

Statt 4 Formulare reicht 1 Formular mit Auto-Submit + Conditional Danke-Seite:

_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 klickt Button im E-Mail-Link → Formular setzt Wert → Danke-Seite-URL wird per IF berechnet → User landet bei Google / Feedback / intensiver Feedback.

Aktivität schreiben für Tracking

In der Aktivitäts-Konfiguration kannst du pro Formular unterschiedliche Aktionstypen setzen (z.B. „Bewertung sehr gut", „Bewertung mittel", „Bewertung schlecht") → Statistik-Auswertung im onOffice-Dashboard möglich.


Asynchrone Wert-Berechnungen (PriceHubble, externe APIs)

Manche onOffice-Integrationen — insbesondere die PriceHubble-Wertermittlung — brauchen nach dem Submit 10–30 Sekunden, bis das Ergebnis im Datensatz steht. Wenn die Danke-Seite das Ergebnis direkt zeigen soll, ist es zu diesem Zeitpunkt typischerweise noch leer.

💡 Hintergrund: Bis 2024 lieferte Sprengnetter die Wertermittlungs-Felder in onOffice. Nachdem ImmoScout24 Sprengnetter übernommen hat, hat onOffice auf PriceHubble umgeschwenkt. Die Standard-Wertermittlungs-Felder heißen jetzt:

Feld Bedeutung
MPPricehubblePrice geschätzter Marktwert
MPPricehubbleMin Untergrenze der Schätzung
MPPricehubbleMax Obergrenze der Schätzung
MPPricehubbleConfidence Konfidenznote

Die alten Sprengnetter-Felder funktionieren in manchen Versionen weiterhin, wenn ein eigenes Sprengnetter-Bezahlmodell aktiv ist — bei Standardkunden ohne Zusatzlizenz greift PriceHubble.

Naives Pattern (scheitert)

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

Refresh-Pattern (funktioniert)

Zweistufig: Danke-Seite leitet auf ein zweites Formular um, das den Wert prüft und bei Bedarf um manuellen Refresh bittet.

Setup:

  1. Formular 1 (Wertermittlungs-Anfrage): Submit → Danke-Seite-URL = Formular 2 mit ?estate[Id]=...&address[ID]=...
  2. Formular 2 (Ergebnis-Anzeige): Beschreibungs-Feld mit Makro:
    _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: einen propform-Button im Beschreibungsfeld als Refresh-Link auf dieselbe URL:
    _pfButton("Aktualisieren";"https://formular.deine-domain.de/ergebnis?estate[Id]=_Uuidestate";"rounded";"_self")
    

Warum kein Auto-Refresh?

Eine automatische Aktualisierung mit JavaScript-Polling wäre eleganter, ist aber aktuell nicht in propform-Formularen möglich (würde Custom-Code im Formular brauchen). Der Refresh-Button ist robust, mobile-freundlich und reicht in der Praxis aus.

💡 Funktioniert auch für andere langsame Drittanbieter-APIs — z.B. Bonitäts-Checks, externe Bewertungstools, KI-gestützte Texterstellung mit hoher Verarbeitungszeit. Pattern ist generisch.


Verwandt