Wahrscheinlich sind Sie bereits aus dem Alltag mit chatbasierten KI-Tools wie ChatGPT vertraut. Diese Tools können nun auch einfache und mittelschwere Fragen zu Tulip beantworten.
Hier sind 5 Möglichkeiten, wie Sie KI-Tools wie ChatGPT, Claude und Gemini nutzen können, um in Tulip Hilfe in Echtzeit zu erhalten:
- Einfache Produktfragen
- Verwenden Sie eine Funktion für einen bestimmten Anwendungsfall
- Einzelne Trigger debuggen
- Erstellen Sie einen Testplan
- Einfache Fragen zur Architektur
Wir empfehlen, hierfür die „Thinking“-Modelle zu verwenden, wie zum Beispiel: – ChatGPT „Thinking“ – Claude Opus – Gemini
In den folgenden Beispielen sehen Sie die Beispiel-Eingabeaufforderung und die Antwort des LLM.
Einfache Produktfragen
Anstatt direkt in der Wissensdatenbank zu suchen, können Sie ein KI-Chat-Tool nach der Verwendung von Tulip-Funktionen fragen und erhalten eine Antwort, die auf mehreren Artikeln aus der Wissensdatenbank basiert.
Beispiel-Eingabeaufforderung: „Wie bearbeite ich ein Array in einer Tulip-App?“
Beispielausgabe:
In Tulip bearbeiten Sie ein Array in der Regel, indem Sie es in einer App-Variablen mit dem Datentyp „Array“ speichern und diese Variable anschließend im Trigger-Editor ändern. In der Tulip-Dokumentation werden Arrays als Tulip-Datentyp beschrieben, bei dem alle Elemente denselben Typ haben müssen, und es wird ausdrücklich darauf hingewiesen, dass Sie Arrays in der Trigger-Logik ändern können.
Die wichtigsten Vorgehensweisen sind:
1. Erstellen Sie eine Array-Variable: Erstellen Sie im App-Editor eine Variable und legen Sie deren Datentyp auf einen Array-Typ fest, z. B. „Array of Text“, „Array of Number“ oder „Array of Boolean“. Tulip-Variablen sind die wichtigste Methode, mit der Apps Arbeitsdaten speichern, und Arrays gehören zu den unterstützten Datentypen.
2. Das Array in einem Trigger aktualisieren: Verwenden Sieeinen Trigger beim Drücken einer Schaltfläche, beim Öffnen eines Schritts, beim Scannen eines Barcodes, bei einem Connector-Ergebnis oder einem anderen App-Ereignis. Im Trigger-Editor wird Ihre Logik mit „When“- („Wenn“), „If“- („Wenn“) und „Then“- („Dann“) -Anweisungen aufgebaut, und laut dem Tulip-Artikel zu Arrays können Arrays dort geändert werden.
3. Gängige Methoden zur Bearbeitung des Arrays Innerhalbder Trigger-Logik führen Sie üblicherweise folgende Schritte durch:- Das gesamte Array auf einen Wert setzen – Ein neues Array aus einem Ausdruck erstellen – Array-spezifische Ausdrücke wie „array_max()“, „array_min()“ und andere Array-/Objekt-Ausdrücke verwenden – Text in ein Array konvertieren, beispielsweise durch Aufteilen einer Zeichenkette bei der Connector-Ausgabe oder anderen Textdaten
4. Connector-Ausgaben als Arrays verwendenEinsehr gängiges Tulip-Muster besteht darin, eine Connector-Funktion auszuführen und deren Ergebnis in einer Variablen zu speichern. Tulip weist darauf hin, dass Connector-Ausgaben Arrays oder Objekte sein können und dass diese Ausgaben anschließend in der App und in Triggern verwendet werden können.
5. Das Array in der App anzeigen oder verwenden: Wennes sich bei Ihrem Array um ein Array von Objekten handelt, können Sie es an ein „Interactive Table“-Widget binden und direkt in der App anzeigen. Tulip dokumentiert, dass die „Interactive Table“ eine Variablen-Datenquelle unterstützt, wenn diese Variable ein Array von Objekten ist.
Ein praktisches Beispiel: - Erstellen Sie eine Variable namens „selected_parts“ mit dem Datentyp „Array of Text“. - Fügen Sie eine Schaltfläche hinzu. - Aktualisieren Sie beim Drücken der Schaltfläche mithilfe eines Triggers die Variable „selected_parts“.- Verwenden Sie anschließend Ausdrücke oder weitere Trigger, um den Inhalt zu überprüfen, Elemente zu zählen, Werte zu vergleichen oder ihn an andere Logik zu übergeben.
Eine wichtige Nuance: In den neueren Dokumentationen von Tulip wird der Schwerpunkt auf Ausdrücke für Arrays und Objekte sowie auf das „Ändern von Arrays im Trigger-Editor“ gelegt, anstatt auf die ältere, an Programmiersprachen angelehnte Formulierung. In Bezug auf die Tulip-Benutzeroberfläche ist es daher besser, in Begriffen wie Variablen, Triggern, Ausdrücken und Connector-Ausgaben zu denken, statt in der Syntax von Rohcode.
Wenn du möchtest, kann ich dir die genauen Schritte in der Tulip-Benutzeroberfläche für eine bestimmte Aufgabe nennen, zum Beispiel: – Hinzufügen eines Werts zu einem Array – Entfernen eines Werts – Auslesen des ersten Elements – Durchlaufen eines arrayähnlichen Connector-Ergebnisses
Verwende eine Funktion für einen bestimmten Anwendungsfall
Wenn Sie den Anwendungsfall kennen, den Sie lösen müssen, können Sie ein KI-Chat-Tool fragen, wie Sie eine bestimmte Funktion nutzen können, um dies zu erreichen.
Beispiel-Eingabeaufforderung: „Wie kann ich einem Bediener ermöglichen, innerhalb einer App aus einer Liste von Arbeitsaufträgen auszuwählen?“
Beispielantwort:
Das Standardmuster in Tulip lautet:
- Fügen Sie Ihre Arbeitsaufträge in eine Tulip-Tabelle ein.
- Fügen Sie der App einen Datensatz-Platzhalter hinzu, z. B. „Aktiver Arbeitsauftrag“.
- Fügen Sie dem Schritt ein „Interaktive Tabelle “-Widget hinzu.
- Legen Sie die Datenquelle des Widgets entweder auf die Tabelle „Arbeitsaufträge“ oder auf eine Tabellenabfrage fest, wenn Sie nur eine gefilterte Liste anzeigen möchten.
- Verknüpfen Sie das Widget mit dem Platzhalter „Aktiver Arbeitsauftrag“, sodass der entsprechende Arbeitsauftrag in den Platzhalter geladen wird, wenn der Bediener eine Zeile auswählt.
Warum das funktioniert: Eine „Interaktive Tabelle“ kann Datensätze aus einer Tabelle oder einer Tabellenabfrage anzeigen. Wenn Sie einen verknüpften Platzhalter konfigurieren, wird beim Auswählen einer Zeile diese Zeile in den Platzhalter geladen. Tulip unterstützt außerdem Trigger bei der Zeilenauswahl, sodass Sie Logik unmittelbar nach der Auswahl eines Arbeitsauftrags durch den Bediener ausführen können.
In der Tulip-Benutzeroberfläche sieht die Einrichtung in etwa so aus:– Registerkarte „Datensätze“ → Tabelle hinzufügen → Datensatz-Platzhalter mit einem Namen wie „Aktiver Arbeitsauftrag“ hinzufügen– In Ihrem Schritt: Einbetten → Interaktive Tabelle hinzufügen – In den Widget-Einstellungen: - Datenquelle = Ihre Tabelle „Arbeitsaufträge“ oder eine Tabellenabfrage - Verknüpfter Datensatz-Platzhalter = „Aktiver Arbeitsauftrag“ - Fügen Sie die Spalten hinzu, die die Mitarbeiter sehen sollen, z. B. Auftragsnummer, Status, Fälligkeitsdatum, Produkt usw.
Nach der Auswahl führen Sie in der Regel einen der folgenden Schritte durch: – Zeigen Sie die Felder des ausgewählten Arbeitsauftrags im selben Schritt an – Aktivieren Sie eine „Weiter“-Schaltfläche nur, wenn „Aktiver Arbeitsauftrag“ geladen ist – Verwenden Sie einen Trigger, um zu einem Detail- oder Ausführungsschritt zu wechseln – Aktualisieren Sie die Felder dieses Arbeitsauftrags, nachdem er in den Platzhalter geladen wurde
Ein gutes praktisches Design sieht wie folgt aus:- Schritt 1: Arbeitsauftrag auswählen - Interaktive Tabelle der offenen Arbeitsaufträge - Filter für Status, Zeile, Fälligkeitsdatum, Station usw.- Schritt 2: Arbeitsauftragsdetails / Start - Werte aus dem „Aktiven Arbeitsauftrag“ lesen - Den Bediener bestätigen und fortfahren lassen
Eine wichtige Einschränkung: Wenn Sie einen einzelnen Datensatz über Trigger-Logik statt über Zeilenauswahl laden, erfolgt das Laden durch die Aktion „Datensatz laden“ in Tulip anhand der ID des Tabellendatensatzes. Wenn Ihr Bediener also eine Arbeitsauftragsnummer eingibt oder einscannt, muss dieser Wert entweder die ID des Tabellendatensatzes sein, oder Sie müssen zunächst ein Abfrage-/Nachschlagroutine verwenden.
Wenn Sie möchten, kann ich dies als exakte Tulip-Trigger-/Widget-Schritte umschreiben und dabei ausschließlich die Tulip-UI-Terminologie verwenden, wie z. B. „Wenn eine Zeile ausgewählt wird …“ und „Dann weiter zu Schritt …“.
Einzelne Trigger debuggen
Wenn Sie einen Trigger haben, der sich nicht wie erwartet verhält, können Sie einen Screenshot des Triggers machen und ein LLM fragen, was schiefläuft.

Beispiel-Prompt: Ich habe diesen Trigger, der den Tabelleneintrag nicht erfolgreich aktualisiert. Was läuft schief?
Beispielantwort:
Der Trigger führt die Schritte in der falschen Reihenfolge aus.
Derzeit versucht Ihre erste Aktion Folgendes:
Speichern →customerNameintolocation: Tabelleneintrag → Aktiver Arbeitsauftrag → Kunde
Zu diesem Zeitpunkt existiert „Aktiver Arbeitsauftrag“ jedoch noch nicht im Trigger-Kontext. Sie erstellen den Datensatz erst in der zweiten Aktion:
Tabelleneinträge → Eintrag anlegen → ID 123 → in „Aktiver Arbeitsauftrag“
Die erste Aktion versucht also, in einen Platzhalter für einen Tabelleneintrag zu schreiben, der noch nicht erstellt oder geladen wurde.
Was Sie ändern müssen:
Zuerst erstellen, dann speichern
- Datensatz in
„Aktiver Arbeitsauftrag“anlegen - Speichern Sie Ihren Wert in
den Tabelleneintrag → Aktiver Arbeitsauftrag → Kunde
Es gibt außerdem ein zweites mögliches Problem:
In Ihrem Screenshot lautet der geschriebene Wert:
Statischer Wert → Text → customerName
Das bedeutet, dass Tulip wörtlich den Text „customerName“ in das Feld schreibt, nicht den Wert einer Variablen namens „customerName“.
Wenn Sie also eine Variable schreiben wollten, sollten Sie Folgendes verwenden:
Variable → Wählen Sie Ihre Variable aus,anstatt „Statischer Wert“
Die beiden Probleme sind also:
- Sie schreiben in
den aktiven Arbeitsauftrag, bevor dieser Datensatz existiert oder geladen wurde. - Möglicherweise schreiben Sie den Literaltext
„customerName“anstelle des Werts der Variablen.
Eine funktionierende Version würde wie folgt aussehen: – Tabelleneinträge → Datensatz mit ID 123 in „Aktiver Arbeitsauftrag“ anlegen – Datenbearbeitung → Daten speichern: Variable → „customerName“ Speicherort: Tabelleneintrag → „Aktiver Arbeitsauftrag“ → „Kunde“
Wenn Sie möchten, kann ich diesen Trigger genau in der Tulip-UI-Sprache umschreiben, damit Sie ihn Schritt für Schritt kopieren können.
Erstellen Sie einen Testplan
Anstatt darauf zu warten, dass Ihre Trigger-Logik fehlschlägt, können Sie zunächst Ihr KI-Chat-Tool um einen Testplan bitten, damit Sie sicher sein können, dass Sie Ihre App-Logik für alle möglichen Fälle testen.
Dies muss nicht unbedingt einen Screenshot enthalten; in diesem Beispiel ist keiner enthalten.
Beispiel-Eingabeaufforderung: „Ich versuche, standardmäßig einen Datensatz mithilfe einer ‚Mode‘-Aggregation auszuwählen. Wie kann ich testen, ob der richtige Datensatz geladen wurde?“
Beispielantwort:
Ja – am einfachsten lässt sich dies testen, indem Sie den Datensatz-Platzhalter überprüfen, nachdem Sie den Datensatz mithilfe des Ergebnisses der „Mode“-Aggregation geladen haben.
Ein praktisches Vorgehen ist:
- Erstellen Sie Ihre Tabellenabfrage so, dass sie genau eine Zeile zurückgibt – oder zumindest eine Zeile, die Sie erwarten.
- Erstellen Sie eine „Mode“-Aggregation für das Feld, das Sie verwenden möchten – häufig ist dies die Datensatz-ID. In Beispielen der Tulip-Community wird „Mode“ ausdrücklich auf diese Weise verwendet, wenn ein einzelner Wert anstelle eines Arrays zurückgegeben werden soll.
- Laden Sie in einem Trigger den Tabellendatensatz unter Verwendung des Ergebnisses der „Mode“-Aggregation als ID in einen Datensatz-Platzhalter.
- Prüfen Sie anschließend im Entwicklermodus anhand der Werte des Platzhalters, ob der richtige Datensatz geladen wurde. Laut der Tulip-Dokumentation zeigt der Entwicklermodus im unteren linken Bereich Live-Werte für Variablen und Datensatzplatzhalter an, und diese Werte werden während der Ausführung der App aktualisiert.
Die zuverlässigsten Überprüfungen sind: – Überprüfen Sie die Platzhalter-ID: Vergewissern Sie sich nach dem Laden, dass die ID des geladenen Datensatzplatzhalters mit der ID übereinstimmt, die Sie von der Abfrage/Aggregation erwartet haben.- Überprüfen Sie ein eindeutiges Feld: Fügen Sie in den Schritt ein Text-Widget ein, das ein Feld wie „Datensatz-Platzhalter.Feldname“ anzeigt, oder verwenden Sie ein Tabellen-Datensatz-Widget, um die Felder des geladenen Datensatzes anzuzeigen. In der Tulip-Dokumentation wird darauf hingewiesen, dass Sie, sobald ein Datensatz in einen Platzhalter geladen wurde, ein einzelnes Feld oder alle Felder dieses Datensatzes anzeigen können.- Fügen Sie eine Schutzbedingung in die Triggerlogik ein Testen Sie unmittelbar nach dem Laden beispielsweise Folgendes: „if Record Placeholder.ID = erwartete ID“ oder „if Record Placeholder.Status = erwarteter Wert“ Zeigen Sie anschließend eine Meldung an, setzen Sie eine Variable oder navigieren Sie anders weiter.
Eine gute Debugging-Konfiguration sieht wie folgt aus: - eine Variable, die das Ergebnis der „Mode“-Aggregation enthält - einen Datensatz-Platzhalter, den Sie aus diesem Ergebnis laden - ein oder zwei Text-Widgets, die Folgendes anzeigen: - das „Mode“-Ergebnis - die ID des geladenen Platzhalters - ein erkennbares Feld aus dem geladenen Datensatz
So können Sie sofort erkennen, ob: – die Aggregation den falschen Wert zurückgegeben hat – der Datensatz nicht geladen wurde – oder der richtige Datensatz geladen wurde, aber ein anderes Feld unerwartet war
Einfache architektonische Fragen
Sie benötigen einen Tulip-Experten – entweder intern oder extern –, um allgemeine architektonische Entscheidungen für Ihre Tulip-Instanz zu treffen. Sie können jedoch ein KI-Chat-Tool um architektonische Entscheidungen bitten, die sich ausschließlich auf Ihre App beziehen und keine Auswirkungen auf Entscheidungen bezüglich mehrerer Apps haben. Diese können mehrere Funktionen betreffen, obwohl KI-Chat-Tools bei komplizierten architektonischen Fragen nicht so gut abschneiden.
Beispiel-Eingabeaufforderung: „Ich möchte einen einzelnen Datensatz aus einer Tabelle in einer Tulip-App laden, ohne einen Datensatz manuell anhand einer ID in einem Trigger auszuwählen. Wie mache ich das?“
Beispielantwort:
Ja – in Tulip geht das üblicherweise so: Erstelle einen Datensatz-Platzhalter und lade ihn dann über eine Tabellenaggregation, anstatt eine ID direkt in den Trigger einzugeben. Die aktuelle Dokumentation von Tulip zeigt, dass ein Datensatz über eine Tabellenaggregation in einen Platzhalter geladen werden kann, nicht nur über eine fest codierte ID.
Ein gängiges Vorgehen ist:
- Füge einen Datensatz-Platzhalter für den gewünschten Tabellendatensatz in der Apphinzu. Laut Tulip ist der Platzhalter die appseitige Referenz auf die Zeile, die du dynamisch laden wirst.
- Erstellen Sie in der Tabelle eine Abfrage, die nach der gewünschten Zeile filtert. Abfragen können statische Werte oder dynamische App-Eingaben verwenden und nach anderen Feldern als der Datensatz-ID filtern.
- Erstellen Sie auf Basis dieser Abfrage eine Aggregation, die einen einzelnen Datensatz zurückgibt.
- Verwenden Sie in Ihrem Trigger „Tabellendatensätze“ → „Datensatz laden “ und wählen Sie:
- Ihren Datensatz-Platzhalter
- Quelle = Tabellenaggregation
- und wählen Sie anschließend diese Aggregation mit einem einzelnen Datensatz aus. Der Tulip-Leitfaden vom März 2026 zeigt genau diesen Ablauf.
In der Praxis also statt:
„Datensatz laden“ → [Platzhalter] → nach ID
fährt man wie folgt vor:
Datensatz laden → [Platzhalter] → Tabellenaggregation → [Ihre Einzeldatensatz-Aggregation]
Dies ist besonders nützlich, wenn: – Sie den Datensatz anhand eines Feldes wie Auftragsnummer, Station, Status oder „neuester“ auswählen möchten – Sie immer nur eine übereinstimmende Zeile erwarten – Sie möchten, dass die App den richtigen Datensatz automatisch lädt
Ein wichtiger Hinweis: Ihre Abfrage/Aggregation sollte so gestaltet sein, dass sie tatsächlich nur einen Datensatz zurückgibt. Wenn mehrere Zeilen übereinstimmen können, benötigen Sie eine Regel, die einen Datensatz bevorzugt, z. B. durch strengere Filterung oder die Verwendung einer Aggregation vom Typ „Neuester“. Das Beispiel von Tulip zum automatischen Laden eines Arbeitsauftrags verwendet genau dieses „Neuester“-Muster.
Wenn du möchtest, kann ich dir die genauen Schritte in der Tulip-Benutzeroberfläche für ein Beispiel zeigen, wie zum Beispiel: „Lade den Stationsdatensatz für die angemeldete Station“ oder „Lade den aktiven Arbeitsauftrag für diesen Bediener“.
