# Bedingte Logik

Fragen anzeigen, ausblenden, erforderlich machen und verzweigen – basierend auf Antworten.

## Bedingte Logik

Logikblöcke reagieren auf die Eingaben eines Ausfüllenden – beliebige Blöcke anzeigen oder ausblenden, zu Seiten springen, die Einreichung blockieren oder Werte berechnen. Kombiniere einfache Regeln zu komplexen Verzweigungen – ganz ohne Code.

<h2 id="what-logic-can-do">Was Logik leisten kann</h2>

<p>
  Jeder Logikblock hat eine oder mehrere <strong>Regeln</strong>. Jede Regel verbindet eine <em>Bedingungsgruppe</em> (wann soll sie
  auslösen?) mit einer oder mehreren <em>Aktionen</em> (was soll passieren?). Es stehen neun Aktionstypen zur Verfügung:
</p>

<h2 id="adding-a-logic-block">Einen Logikblock hinzufügen</h2>

<p>
  Ein Logikblock ist ein Dokumentelement – er liegt auf der Arbeitsfläche zwischen Fragen, genau wie eine Überschrift oder ein Bild. Du
  kannst ihn überall platzieren: zwischen zwei Feldern auf derselben Seite, am Anfang einer Seite oder direkt vor einem Seitenumbruch.
</p>

<h2 id="conditions">Bedingungen</h2>

<p>
  Bedingungen sind die <strong>Wenn</strong>-Seite einer Regel. Jede Bedingung wählt ein <strong>Feld</strong>, wendet einen{' '}
  <strong>Operator</strong> an und vergleicht oft mit einem <strong>Wert</strong>. Die Feldauswahl gruppiert, was du beobachten kannst:{' '}
  <strong>Fragen</strong>, <strong>Versteckte Felder</strong>, <strong>Berechnete Felder</strong> und <strong>Metadaten</strong> (aktuell
  die Sprache der ausfüllenden Person).
</p>

<h3 id="all-or-any">Alle oder eine</h3>

<p>Sobald eine Regel zwei oder mehr Bedingungen hat, erscheint oben im Wenn-Bereich ein Umschalter:</p>

<ul>
  <li>
    <strong>Alle davon</strong> – jede Bedingung muss zutreffen, damit die Regel auslöst. Die Zeilen werden mit „und" verbunden.
  </li>
  <li>
    <strong>Eine davon</strong> – eine zutreffende Bedingung genügt. Die Zeilen werden mit „oder" verbunden.
  </li>
</ul>

<h3 id="sets-of-conditions">Gruppen von Bedingungen</h3>

<p>
  <strong>Eine Gruppe von Bedingungen hinzufügen</strong> verschachtelt eine zweite Gruppe innerhalb der ersten, eine Ebene tief, mit einem
  eigenen Alle/Eine-Umschalter. Das deckt zusammengesetzte Logik ab wie „Tarif <strong>ist</strong> Pro <em>und</em> (Land{' '}
  <strong>ist</strong> Norwegen <em>oder</em> Land <strong>ist</strong> Schweden)". Eine Gruppe enthält nur Bedingungen – sie kann keine
  weitere Gruppe enthalten.
</p>

> ⚠️ **Eine ausgeblendete Frage hat keinen Wert**
> <p>
>     Wenn Logik eine Frage ausblendet, zählt die Antwort, die sie vielleicht schon enthält, für nichts mehr – nicht in Bedingungen, nicht in
>     Berechnungen, nicht im Zahlungsbetrag und nicht in der gespeicherten Einreichung. Die Antwort kommt erst zurück, wenn die Frage wieder
>     sichtbar wird. Dasselbe gilt für jede Frage in einer ausgeblendeten Zeile, Spalte oder Wiederholungsgruppe und für eine gewählte Option,
>     die Logik ausblendet. Eine Seite, die die Regeln „Nächste Seite festlegen“ überspringen, gilt ebenfalls als ausgeblendet: Ihre Fragen
>     sind nicht erforderlich, und was dort beantwortet wurde, entfällt. Versteckte <em>Felder</em> sind das Gegenteil: Sie behalten ihren
>     Wert immer.
>   </p>

> 💡 **Lesbarkeit bewahren**
> <p>
>     Wenn ein einzelner Logikblock zu komplex wird, erwäge, die Logik auf mehrere Logikblöcke aufzuteilen oder die Seitenstruktur deines
>     Formulars zu überarbeiten.
>   </p>

<h2 id="operators-reference">Operatoren-Referenz</h2>

<p>
  Die Operatorliste richtet sich nach dem gewählten Feld – du siehst immer nur die Operatoren, die dieses Feld unterstützt. Jede Überschrift
  unten benennt die genaue Menge.
</p>

<h3 id="text-text-input-text-area-and-text-calculated-fields">Text (Text Input, Text Area und berechnete Textfelder)</h3>

<p>
  Jeder Textvergleich ignoriert Groß- und Kleinschreibung sowie Leerzeichen am Anfang und Ende, also endet <code>x@Competitor.com</code> auf{' '}
  <code>@competitor.com</code>.
</p>

<p>Die übrigen textähnlichen Eingaben bieten eine kleinere Menge, wähle also den Typ, der zu deinem Vergleich passt:</p>

<h3 id="numeric-number-star-rating-linear-scale-numeric-hidden-and-calculated-fields">
  Numerisch (Number, Star Rating, linear scale, numerische versteckte und berechnete Felder)
</h3>

<h3 id="checkboxes-and-picture-choice">Checkboxes und Bildauswahl</h3>

<h3 id="dropdown-and-radio-buttons-single-select">Dropdown und Radio Buttons (Einzelauswahl)</h3>

<h3 id="toggle-switch-and-boolean-calculated-fields">Toggle Switch (und boolesche berechnete Felder)</h3>

<h3 id="signature">Signature</h3>

<h3 id="file-upload">File Upload</h3>

<h3 id="date-picker-and-time-picker">Date Picker und Time Picker</h3>

<h3 id="ranking">Ranking</h3>

<h3 id="matrix--grid">Matrix / Grid</h3>

<h3 id="payment">Payment</h3>

<h3 id="fields-you-cannot-watch">Felder, die du nicht beobachten kannst</h3>

<p>
  <strong>Schedule appointment</strong> und <strong>Documents</strong> können Ziele für Sichtbarkeit sein, aber nie Bedingungsquellen. Eine
  Terminbuchung hängt an der Einreichung, statt als gewöhnliche Antwort gespeichert zu werden, und ein Documents-Block sammelt überhaupt
  keine Antwort. Verwende frühere Qualifizierungsantworten, um eines der beiden ein- oder auszublenden. Jede sichtbare
  Schedule-appointment-Frage muss vor der Einreichung gebucht sein; eine ausgeblendete blockiert die Einreichung nicht. Siehe{' '}
  <a href="/de/integrations/cal-com#logic">Cal.com-Terminplanung mit Logik</a>.
</p>

<h2 id="targeting">Ziele</h2>

<p>
  Jede Aktion benötigt ein <strong>Ziel</strong> – das Element, auf das sie wirkt. Das Ziel hängt vom Aktionstyp ab:
</p>

<p>
  Anzeigen und Ausblenden gehen über Fragen hinaus. Ziele auf einen beliebigen Block auf der Arbeitsfläche – einen Absatz, eine Überschrift,
  ein Bild oder einen Layout-Container –, um einen standardmäßig ausgeblendeten Hinweis einzublenden oder Inhalte auszublenden, sobald sie
  nicht mehr relevant sind. Sie können auch einzelne Optionen innerhalb eines Auswahlfelds ansprechen, nicht nur die gesamte Frage. Blende
  einen Block zuerst über das Blockmenü aus und schreibe dann eine Regel, um ihn einzublenden.
</p>

<h2 id="how-rules-combine">Wie mehrere Regeln zusammenwirken</h2>

<p>
  Jede Regel ist unabhängig, und alle werden gemeinsam ausgewertet. Regeln werden von oben nach unten gelesen, über Logikblöcke hinweg, in
  Dokumentreihenfolge. Wie mehrere Regeln auf ein Ziel zusammenwirken, hängt von der Aktion ab.
</p>

<p>
  So kannst du mehrere Regeln auf einen Block richten, ohne dass sie sich widersprechen. Ein Feedback-Formular hat eine Radio-Buttons-Frage
  – „Wobei können wir dir helfen?" – mit vier Optionen und einem standardmäßig ausgeblendeten E-Mail-Feld „Dürfen wir dich kontaktieren?".
  Vier Regeln wenden jeweils <strong>Anzeigen</strong> auf dasselbe E-Mail-Feld an (zusätzlich zu ihrer eigenen Folgefrage) für ihre Option.
  Das E-Mail-Feld erscheint unabhängig davon, welche Option gewählt wird, und bleibt nur ausgeblendet, wenn keine zutrifft.
</p>

> 💡 **Oft reicht eine einzige Regel**
> <p>
>     Um einen Block für mehrere Antworten einzublenden, ist eine Regel mit <strong>Eine davon</strong> und einer Bedingung pro Antwort – oder
>     eine einzelne <strong>ist nicht leer</strong>-Bedingung, die alle abdeckt – leichter lesbar als vier Regeln. Greife auf mehrere Regeln
>     zurück, wenn jede Option auch ihre eigene, unterschiedliche Folgefrage braucht.
>   </p>

<h3 id="conflicting-rules">Widersprüchliche Regeln</h3>

<p>
  Wenn sich zwei Regeln beim selben Ziel widersprechen – eine wendet <strong>Anzeigen</strong> auf einen Block an, während eine andere{' '}
  <strong>Ausblenden</strong> anwendet, oder eine macht ein Feld erforderlich, während eine andere es optional macht – und beide Bedingungen
  gleichzeitig zutreffen, gewinnt <strong>die erste Regel</strong>. Die spätere, unterlegene Regel wird im Editor markiert: „Diese Aktion
  greift nie – eine frühere Regel steuert ihr Ziel bereits. Die Reihenfolge der Regeln entscheidet: Die erste Regel gewinnt."
</p>

<p>
  Eine Ausnahme von der Reihenfolge: Eine Regel, deren Bedingung ein berechnetes Feld liest, läuft nach der Regel, die es schreibt,
  unabhängig von der Dokumentreihenfolge, sodass eine Punktzahl immer berechnet ist, bevor irgendetwas darauf verzweigt. Regeln, die sich
  gegenseitig in einer Schleife die berechneten Felder beschreiben, lösen eine Veröffentlichungswarnung aus, die die Kette benennt –
  durchbrich die Schleife, damit sich Werte vorhersehbar auflösen.
</p>

<h3 id="hidden-and-required">Ausgeblendet schlägt erforderlich</h3>

<p>
  Eine Frage, die am Ende ausgeblendet ist, ist nie erforderlich – egal, ob sie durch eine Regel ausgeblendet wurde oder über das Blockmenü
  ausgeblendet ist und keine Regel sie wieder einblendet. Der Stern verschwindet, und die Einreichung wird nicht blockiert – sonst könnte
  eine ausfüllende Person von einem Feld ausgesperrt werden, das sie nicht sehen kann.
</p>

<h2 id="common-patterns">Häufige Anwendungsfälle</h2>

<h3 id="show-a-follow-up-question-based-on-a-previous-answer">Eine Folgefrage basierend auf einer vorherigen Antwort anzeigen</h3>

<p>
  Eine Zufriedenheitsumfrage fragt „Wie würdest du deine Erfahrung bewerten?" mit einem 1–5-Star-Rating. Ein Logikblock darunter verwendet
  die Bedingung „Bewertung ist kleiner als oder gleich 3" mit der Aktion <strong>Anzeigen</strong>, die auf ein Text-Area-Feld zielt, das
  fragt „Was könnten wir verbessern?" Ausfüllende, die 4 oder 5 vergeben, sehen die Folgefrage nie.
</p>

<h3 id="reveal-a-message-when-an-option-is-picked">Eine Nachricht einblenden, wenn eine Option ausgewählt wird</h3>

<p>
  Ein Anmeldeformular hat eine Radio-Buttons-Frage: „Welcher Tarif passt am besten zu dir?" Darunter steht ein Absatz – „Gute Wahl! Unser
  Pro-Tarif umfasst priorisierten Support." –, der standardmäßig über <strong>Ausblenden</strong> im Blockmenü ausgeblendet ist. Ein
  Logikblock blendet ihn ein: Wenn Tarif <strong>ist</strong> „Pro", <strong>Anzeigen</strong> den Absatz. Der ermutigende Hinweis erscheint
  nur, wenn „Pro" gewählt wurde, und bleibt für alle anderen ausgeblendet.
</p>

<h3 id="branch-to-different-pages-based-on-a-selection">Zu verschiedenen Seiten verzweigen basierend auf einer Auswahl</h3>

<p>
  Ein Veranstaltungsanmeldeformular hat eine Radio-Buttons-Frage: „Nimmst du persönlich oder per Fernzugang teil?" Zwei Logikblöcke folgen:
</p>

<ul>
  <li>
    <strong>Regel 1</strong> – Bedingung: Teilnahme <strong>ist</strong> „Persönlich", Aktion: <strong>Nächste Seite festlegen</strong>{' '}
    „Veranstaltungsort-Details".
  </li>
  <li>
    <strong>Regel 2</strong> – Bedingung: Teilnahme <strong>ist</strong> „Fernzugang", Aktion: <strong>Nächste Seite festlegen</strong>{' '}
    „Streaming-Setup".
  </li>
  <li>
    <strong>Regel 3</strong> – Bedingung: Ankunftszeit <strong>ist nicht leer</strong>, Aktion: <strong>Nächste Seite festlegen</strong>{' '}
    „Bestätigung". Ankunftszeit ist eine Pflichtfrage auf „Veranstaltungsort-Details".
  </li>
</ul>

<p>
  Regel 1 und 2 lesen die Frage Teilnahme, daher wirken sie, wenn die ausfüllende Person deren Seite verlässt. Danach geht Weiter in
  Seitenreihenfolge weiter. Regel 3 liest eine Frage auf „Veranstaltungsort-Details", daher wirkt sie, wenn die ausfüllende Person diese
  Seite verlässt. Wer persönlich teilnimmt, überspringt danach „Streaming-Setup". Jeder Pfad sammelt nur relevante Informationen, und beide
  laufen auf einer gemeinsamen „Bestätigung"-Seite zusammen.
</p>

<h3 id="calculate-a-score-and-branch-on-it">Eine Punktzahl berechnen und darauf verzweigen</h3>

<p>
  Ein Lead-Qualifizierungsformular hat drei Star-Rating-Fragen: Budget, Zeitrahmen und Entscheidungsbefugnis. Ein berechnetes Feld namens
  „Lead-Punktzahl" verwendet einen Logikblock mit der Aktion <strong>Wert berechnen</strong>, um die Werte jeder Bewertung zu addieren. Ein
  zweiter Logikblock liest das berechnete Feld: Wenn Lead-Punktzahl <strong>ist größer als 12</strong>,{' '}
  <strong>Nächste Seite festlegen</strong> „Priorität-Follow-up"; andernfalls zur standardmäßigen Bestätigungsseite springen.
</p>

<h3 id="react-to-a-hidden-field-value">Auf einen versteckten Feldwert reagieren</h3>

<p>
  Die URL befüllt ein verstecktes Feld namens <strong>plan</strong> (z. B. <code>?plan=enterprise</code>). Ein Logikblock prüft: Wenn plan{' '}
  <strong>ist</strong> „enterprise", <strong>Anzeigen</strong> die Frage „Dedizierter Account-Manager" und{' '}
  <strong>Erforderlich machen</strong> das Feld „Unternehmensgröße". Ausfüllende im Free-Tarif sehen diese Fragen nie.
</p>

<h3 id="gate-submission-on-a-calculated-total">Einreichung an eine berechnete Gesamtsumme knüpfen</h3>

<p>
  Ein Bestellformular berechnet eine laufende Gesamtsumme. Ein Logikblock verwendet die Bedingung: Wenn Bestellsumme{' '}
  <strong>ist kleiner als 10</strong>, <strong>Absenden des Formulars verhindern</strong>. Der Ausfüllende kann das Formular nicht
  einreichen, bis der Mindestbestellwert erreicht ist.
</p>

<p>
  Während eine Verhindern-Regel aktiv ist, wirkt die Schaltfläche nicht verfügbar, und der ausfüllenden Person wird der Grund genannt. Trage
  den Grund in <strong>Nachricht an den Befragten</strong> in der Aktionszeile ein – „Deine Bestellung muss mindestens 10 betragen" –, damit
  klar ist, welche Antwort zu ändern ist. Lässt du das Feld leer, greift das Formular auf „Dieses Formular kann mit den aktuellen Antworten
  nicht gesendet werden." zurück (oder „Sie können mit den aktuellen Antworten nicht zur nächsten Seite wechseln." bei einem
  Navigationsblock). Wenn mehrere Verhindern-Regeln gleichzeitig auslösen, liefert die erste mit einer Nachricht den Text.
</p>

> 💡 **Logik mit der Vorschau testen**
> <p>
>     Nachdem du deine Regeln eingerichtet hast, wechsle in der oberen Symbolleiste zur <strong>Vorschau</strong> und fülle das Formular so
>     aus, wie ein Ausfüllender es tun würde. Die Logik wird in der Vorschau in Echtzeit ausgeführt, sodass du jede Verzweigung, jedes
>     versteckte Feld und jedes Validierungsgate vor der Veröffentlichung prüfen kannst.
>   </p>

<h2 id="next-steps">Nächste Schritte</h2>
<div class="not-prose grid gap-3 sm:grid-cols-2">
  - [Versteckte Felder](/de/building-forms/hidden-fields) — URL-Parameter erfassen und in der Logik verwenden
  - [Berechnete Felder](/de/building-forms/calculated-fields) — Punkte und Summen mit Logikoperationen berechnen
  - [Antwort-Piping](/de/building-forms/answer-piping) — Beliebige Antworten an anderer Stelle im Formular referenzieren
</div>
