FlexForms werden im Normalfall zur Konfiguration von PlugIns benutzt. Dies reicht in den meisten Fällen auch aus, da die Eingaben im Normalfall lediglich zur Konfiguration dienen und im Frontend nicht direkt ausgegeben werden. Es können jedoch Anwendungsfälle auftreten, in denen man dem Benutzer Konfigurationsmöglichkeiten bieten möchte, die davon abhängig sind, welche Daten bereits in der Datenbank vorhanden sind oder davon, was in einem anderen Feld des Formulars eingetragen wurde. Etwa, wenn für jede der eingerichteten Webseitensprachen eine Datei in einem PlugIn hinterlegt werden soll.
Im Rahmen der Entwicklung der "commerce"-Extension (Advanced Shop System) [1] wurden Funktionalitäten gewünscht, die sich mit den gegebenen Möglichkeiten nicht umsetzen ließen. Um die großen Mengen an Daten in komfortablen Backend-Eingabemasken verarbeiten zu können, musste ein Weg gefunden werden, die Formulare im Backend in Abhängigkeit zu vorhanden Daten anzupassen.
Ein Weg, komplexere Eingabemöglichkeiten zu realisieren, sind so genannte „user defined fields“. Diese haben jedoch den Nachteil, dass man sich selbst um die Darstellung und Validierung der Daten kümmern muss. Der elegantere Weg besteht darin, diese Arbeit TYPO3 zu überlassen und stattdessen die Eingabemasken dynamisch zu erzeugen. Man nutzt also die bereits vorhandenen Eingabemöglichkeiten von TYPO3, erzeugt sie aber nach den aktuellen Bedürfnissen der eigenen Anwendung.





