SmartFields
SmartFields sind benannte Platzhalter, die du in eine Schritt-Konfiguration einsetzt; AutoFlow löst sie auf, wenn der Schritt läuft. Ein Token wie {{customer.no}} liest die Kundennummer aus dem Flow-Kontext aus, kurz bevor der Schritt läuft – der Schritt selbst sieht nur den aufgelösten Text. So vergleicht eine Entscheidung Werte aus einem vorgelagerten Schritt, so füllt ein Insert-Record-Schritt seine Feldwerte, so bestimmt ein Sleep-Schritt seine Wartezeit, und so setzt ein HTTP-Request-Schritt seine URL oder seinen Body zusammen.
Zwei Konzepte decken das meiste ab, was du wissen musst:
- Ein SmartField hat einen Typ. Ein Value-SmartField löst zu einem Text auf (ein Name, eine Zahl, ein Datum). Ein Reference-SmartField löst zu einem Datensatz auf – nützlich für nachgelagerte Schritte, die mit dem Datensatz selbst arbeiten, etwa Modify Record oder Delete Record.
- Referenzen lassen sich aufschlüsseln. Sobald ein SmartField auf einen Datensatz zeigt, kannst du ein Feld auf diesem Datensatz auswählen (
{{customer.name}}) oder – wenn das Feld wiederum eine andere Tabelle referenziert – tiefer einsteigen ({{customer.salesperson.email}}). Der Picker geht die Kette für dich Schritt für Schritt durch.
Wo die SmartFields tatsächlich herkommen, hängt vom Flow ab:
- Der Trigger registriert SmartFields, wenn er feuert (ein Webhook-Trigger stellt zum Beispiel das geparste Payload bereit).
- Jeder Schritt registriert seine Outputs als SmartFields unter dem Namen des Schritts (
parser.amount,httpRequest.responseBody,findRecords.results). - Die eigenen SmartField-Definitionen des Flows (der Dialog SmartFields bearbeiten, siehe unten) deklarieren zusätzliche Felder, die aus den Datensätzen des Flows berechnet werden – typischerweise Reference-SmartFields auf Business-Central-Tabellen wie Kunde oder Artikel.
Der Schritt-Slug
Der Name des Schritts in {{slug_feld}} ist der Slug des Schritts – ein kurzer, lower-kebab Identifier, der beim Einfügen des Schritts automatisch aus der Beschreibung erzeugt wird (E-Mail senden → e-mail-senden, bei Kollision e-mail-senden-1). Der Slug ist rein intern und taucht beim Ausführen des Flows nirgends auf.
Auf jeder Schritt-Konfigurationsseite findest du den Slug direkt unter der Beschreibung als reguläres Feld, das du jederzeit umbenennen kannst, wenn der automatisch generierte Name unhandlich ist. Die Regeln: kein Unterstrich (der Parser splittet am ersten _), höchstens 15 Zeichen, eindeutig innerhalb des Flows. Beim Umbenennen wird jede {{alter-slug_*}}-Referenz in der gesamten Flow-Definition automatisch mit umgeschrieben – nachgelagerte Schritte funktionieren ohne manuelles Nachziehen weiter.
Diese Seite beschreibt die zwei Oberflächen, über die du SmartFields verwaltest und referenzierst:
- Den Dialog SmartFields bearbeiten, der von einer Flow-Karte oder -Version aus geöffnet wird; hier pflegst du die eigenen SmartField-Definitionen des Flows.
- Den SmartField-Picker, der über den Assist-Edit-Button (...) auf jedem SmartField-fähigen Feld einer Schritt-Konfigurationsseite öffnet; hier wählst du ein bestehendes SmartField, das in dein Eingabefeld eingefügt wird.
Integrierte SmartFields
Einige SmartFields stehen immer zur Verfügung, in jedem Flow, ohne dass du etwas anlegen musst. Sie erscheinen im Picker neben den Trigger- und Schritt-Ausgaben:
| SmartField | Ergibt |
|---|---|
{{today}} | Das aktuelle Kalenderdatum zum Zeitpunkt, an dem der Schritt läuft. |
{{workdate}} | Das Business-Central-Arbeitsdatum der Sitzung, die den Flow gestartet hat. Es wird beim Auslösen des Flows festgehalten und bleibt für den gesamten Lauf unverändert – auch wenn ein Flow üblicherweise einen Moment später im Hintergrund läuft, spiegelt {{workdate}} weiterhin das Arbeitsdatum wider, das der Benutzer (oder der Zeitplan) beim Start eingestellt hatte. Subflows verwenden denselben festgehaltenen Wert. |
{{currentDateTime}} | Das aktuelle Datum und die Uhrzeit zum Zeitpunkt, an dem der Schritt läuft. |
{{currentUser}} | Eine Referenz auf den Benutzerdatensatz der Sitzung, in der der Flow läuft. |
{{currentCompany}} | Eine Referenz auf die Firmeninformationen des Mandanten, in dem der Flow läuft. |
{{today}}, {{workdate}} und {{currentDateTime}} akzeptieren denselben ;<format>-Zusatz wie jedes andere SmartField, sodass {{workdate;9}} das Arbeitsdatum im ISO-Format ausgibt (2026-08-04).
Der Unterschied zwischen {{today}} und {{workdate}} ist wichtig, wenn ein Flow Belege bucht oder datiert: {{today}} ist immer das reale Kalenderdatum, während {{workdate}} dem Arbeitsdatum folgt, unter dem der Benutzer gearbeitet hat – oft ein Datum in der Vergangenheit oder Zukunft.
SmartFields bearbeiten (von der Flow-Karte aus)
Öffne einen Flow und klicke in der Aktionsleiste auf SmartFields bearbeiten. Der Dialog ist auch von der Seite einer Flow-Version aus erreichbar, wenn du die SmartFields prüfen möchtest, die auf einer bestimmten Version gespeichert sind.
Die Aktion arbeitet auf der Entwurfs-Version des Flows. Ist der Flow gerade veröffentlicht, legt AutoFlow zuerst einen Entwurf aus der veröffentlichten Version an und bearbeitet dann diesen Entwurf – exakt dieselbe Konvention wie beim Flow-Editor selbst. Die veröffentlichte Version bleibt unverändert, bis du den Entwurf veröffentlichst.
Was der Dialog zeigt
Der Dialog öffnet sich auf der Liste SmartField Sets. Jede Zeile ist eine Business-Central-Tabelle, für die der Flow SmartFields definiert.
| Spalte | Bedeutung |
|---|---|
| Table No. | Die Object-ID der BC-Tabelle. Standardmäßig ausgeblendet – nutze sie, wenn die Tabellenbezeichnung allein nicht eindeutig ist. |
| Caption | Die Bezeichnung der Tabelle, zum Beispiel Kunde oder Verkaufskopf. Drill-down öffnet die Set-Karte. |
| SmartFields | Wie viele SmartFields für diese Tabelle registriert sind. Drill-down öffnet ebenfalls die Set-Karte. |
Um ein neues Set anzulegen, schreib in die leere Zeile am Ende der Liste, wähle über den Assist-Edit auf Table eine Tabelle aus und speichere. Das Set wird auf der Entwurfs-Definition des Flows angelegt – außerhalb des Flows wird es nirgends gespeichert.
Innerhalb eines Sets: SmartField-Definitionen
Öffne ein Set (Drill-down auf der Spalte Caption oder SmartFields); du landest auf der Karte SmartField Set. Die Karte besteht aus zwei Bereichen:
- Eine General-Gruppe oben, die die Tabelle anzeigt, an die das Set gebunden ist.
- Ein SmartFields-ListPart darunter, in dem jede Zeile eine SmartField-Definition ist.
Pro Definition füllst du aus:
- SmartField Name – der Token-Name. Genau das schreibst du später innerhalb von
{{ }}. Namen sind auf das Set begrenzt; zwei verschiedene Tabellen dürfen also beide einname-SmartField haben, ohne dass es kollidiert. - Type – Value (löst zu einem Text auf) oder Reference (löst zu einem Datensatz auf).
- Caption – schreibgeschützte Zusammenfassung dessen, worauf das Feld auflöst. Drill-down auf dieser Spalte öffnet:
- Bei einem Value-Feld: das BC-Feld auf der Set-Tabelle, dessen Inhalt das SmartField zurückgibt. Der Picker ist das Standard-Fields Lookup.
- Bei einem Reference-Feld: die BC-Tabelle, auf die das SmartField zeigt, und die Filter, mit denen beim Ausführen des Flows der richtige Datensatz gefunden wird (siehe unten).
Ein SmartField umbenennen
Du kannst ein SmartField jederzeit umbenennen, entweder in der Spalte SmartField Name der Liste oder auf der Definitionskarte. Beim Umbenennen wandert alles mit, was an der Definition hängt: Ein Reference-Feld behält seine Filter, seinen Schlüssel und seine Sortierreihenfolge, und jeder {{ }}-Platzhalter, der das SmartField im Flow-Entwurf schon verwendet, wird für dich auf den neuen Namen umgeschrieben. Du musst nichts nacharbeiten.
Zwei Dinge solltest du wissen:
- Ein Name, den ein anderes SmartField derselben Tabelle schon nutzt, wird abgelehnt. So überschreibst du keine vorhandene Definition versehentlich. Wähle einen anderen Namen.
- In früheren Versionen konnte das Umbenennen in der Listenspalte die alte Definition neben der neuen zurücklassen, wobei die Filter am alten Namen hängen blieben. Falls eine Referenz in einem bestehenden Flow nach einem Umbenennen ohne Filter dasteht, öffne die Seite SmartFields für dieses Set erneut: Du siehst dann beide Zeilen, die übrig gebliebene mit den Filtern und die umbenannte ohne. Lösche die übrig gebliebene Zeile und lege die Filter am umbenannten Feld neu an. Ab dieser Version bleiben sie beim Umbenennen erhalten.
Die Spalte Format String auf einer Value-Definition ist optional und steuert, wie der aufgelöste Wert dargestellt wird (BCs Standard-Format-Strings – nützlich für Datumswerte und Dezimalzahlen).
Referenz-Filter
Ein Reference-SmartField benennt nicht nur eine Zieltabelle – es muss auch beschreiben, welche Zeile dieser Tabelle zurückgegeben wird. Das konfigurierst du auf der Karte Table Lookup, die du über den Drill-down der Spalte Caption eines Reference-Felds öffnest.
Die Karte enthält:
- Ref. Table – die Tabelle, auf die die Referenz zeigt. Drill-down zur Auswahl.
- Key – der Schlüssel der referenzierten Tabelle, über den AutoFlow liest. Optional, siehe Schlüssel und Sortierreihenfolge weiter unten.
- Sort Order – Aufsteigend oder Absteigend. Entscheidet, welchen Datensatz die Referenz nimmt, wenn mehrere passen.
- Filters – ein ListPart, in dem jede Zeile ein Filter ist, der die Zieltabelle einschränkt.
Jede Filterzeile hat ein Field (eine Spalte auf der referenzierten Tabelle), einen Lookup-Typ und entweder einen Lookup-Text oder ein Lookup-Field:
- Const – der Filterwert ist der Literaltext in Lookup Text. Für feste Werte:
Type = Artikel,Blocked = ''. - Field (die Vorauswahl) – der Filterwert wird beim Ausführen des Flows aus einem Feld auf der übergeordneten Tabelle (der Set-Tabelle) gelesen. Der Drill-down auf Lookup Field wählt dieses Feld aus.
- Filter – der Filterwert ist ein freier Filterausdruck in Lookup Text. Für Bereiche (
>=01.01.2026), Wildcards (@ABC*) oder andere BC-Filtersyntax.
Zusammen sagen diese Filter AutoFlow, wie beim Ausführen des Flows aus dem übergeordneten Datensatz der referenzierte Datensatz gefunden werden soll – zum Beispiel: "der Kunde, dessen Nr. der Verk. an Debitorennr. des Verkaufskopfs entspricht".
Schlüssel und Sortierreihenfolge
Die Filter entscheiden, welche Datensätze passen. Key und Sort Order entscheiden, wie AutoFlow sie liest.
Standardmäßig liest eine Referenz die Zieltabelle über deren Primärschlüssel. Genau richtig, wenn die Referenz über den Primärschlüssel auf einen Datensatz zeigt. Schränken deine Filter die Tabelle aber über andere Felder ein – eine Belegnummer, eine Debitorennummer, ein Buchungsdatum –, wird der Lesezugriff langsamer, je größer die Tabelle wird. Setze Key auf den Schlüssel, dessen erste Felder genau die sind, nach denen du filterst: dann bleibt der Zugriff schnell, egal wie groß die Tabelle wird. Über die AssistEdit (…) im Feld Key wählst du einen Schlüssel aus; angeboten werden nur die aktiven Schlüssel der Tabelle. Die Aktion Primärschlüssel verwenden hebt die Auswahl wieder auf.
Sort Order wird relevant, sobald die Filter mehr als einen Datensatz treffen:
- Aufsteigend (die Vorauswahl) liefert den ersten passenden Datensatz in Schlüsselreihenfolge.
- Absteigend liefert den letzten.
So drückst du "der neueste davon" aus: Richte eine Referenz auf Währungskurs, filtere sie auf die Währung und setze Sort Order auf Absteigend – weil diese Tabelle nach Währung und dann nach Startdatum sortiert ist, löst die Referenz auf den aktuellsten Kurs auf.
Sort Order legt außerdem fest, in welcher Reihenfolge eine Schleife die Datensätze durchläuft, wenn du die Referenz als Quelle einer ForEach-Schleife nutzt.
Lässt du beides unangetastet, verhält sich eine Referenz wie immer – Primärschlüssel, aufsteigend –, bestehende Flows sind also nicht betroffen. Beim Wechsel der referenzierten Tabelle wird der Schlüssel geleert, denn ein Schlüssel gehört zu der Tabelle, aus der du ihn gewählt hast.
Speichern
Der Dialog ist modal: Wenn du ihn schließt, werden die SmartField-Definitionen in einer Transaktion zurück in die Entwurfs-Version des Flows geschrieben. Es gibt keinen separaten Speichern-Button – das Schließen ist der Commit. AutoFlow nutzt die neuen Definitionen, sobald der Entwurf das nächste Mal läuft.
Der SmartField-Picker (von einer Schritt-Konfigurationsseite aus)
Viele Konfigurationsfelder eines Schritts akzeptieren SmartFields – die URL bei einem HTTP-Request, der Input bei einem Parser, die Bedingung bei einer Entscheidung, die Reference bei Modify- oder Delete-Record, die Dauer bei einem Sleep, die Nachricht bei einem Error-Schritt und so weiter. Neben jedem solchen Feld sitzt ein SmartField einfügen-Button, und der öffnet den SmartField-Picker.
Der Picker zeigt alles, was an der Position des Schritts verfügbar ist: was der Trigger und jeder vorgelagerte Schritt registriert haben, plus die eigenen SmartField-Definitionen des Flows für die Tabellen, die diese Outputs referenzieren.
Der Baum
Der Picker ist ein Baum. Die oberste Ebene sind die Outputs des Flows, und jede Referenz lässt sich aufklappen: dahinter stehen die SmartFields, die der Flow auf der Tabelle registriert hat. Alles startet zugeklappt, du fängst also immer mit einer kurzen Liste an. Die ersten zwei Ebenen sind im Hintergrund schon geladen – deshalb geht die erste sofort auf; tiefere Ebenen werden beim Aufklappen geladen. Eine lange Kette kostet dich also nichts, solange du nicht wirklich hineingehst.
Jede Zeile zeigt den Namen des SmartFields und dahinter, was es ist – Feld: Name (2) für einen Wert, der auf ein BC-Feld zeigt, Referenz: Debitor (18) für eine Referenz. Wert-Zeilen stehen im selben Violett wie der Token, den du beim Einfügen bekommst.
Tippe im Filter-Feld, um den Baum einzuschränken. Der Filter sucht in den geladenen Ebenen und lässt den Pfad zu jedem Treffer sichtbar, damit du siehst, wo ein Treffer sitzt. Sobald du etwas auswählst, leert sich der Filter wieder – er schränkt also nie unbemerkt das ein, was du als Nächstes ansiehst.
Tastatur
Der ganze Picker lässt sich mit der Tastatur bedienen, und du erreichst ihn auch ohne Maus: aus einem Konfigurationsfeld mit Tab auf dessen SmartField einfügen-Button und mit Enter öffnen.
Tab läuft danach durch alles, was der Dialog zeigt, in Leserichtung: eine Zeile, ihre eigenen Aktionen, die nächste Zeile und am Ende der Bestätigen-Button. Die Pfeiltasten sind die Abkürzung darüber – ↓ und ↑ springen von Zeile zu Zeile, egal wo im Baum du stehst, auch wenn der Fokus gerade auf einem der Aktionsbuttons einer Zeile sitzt.
Der Cursor startet im Filter-Feld, weil ein Teil des Namens meist der schnellste Weg ist:
| Taste | Im Filter-Feld | Im Baum |
|---|---|---|
| ↓ / ↑ | Durch den Baum bewegen | Durch den Baum bewegen |
| Leertaste | Tippt ein Leerzeichen | Referenz auf- oder zuklappen |
| Enter | Markiertes SmartField übernehmen | Markiertes SmartField übernehmen |
| Strg+Enter (auf dem Mac ⌘+Enter) | Bestätigen und schließen | Bestätigen und schließen |
| → | Bewegt den Textcursor | Referenz aufklappen bzw. hineingehen |
| ← | Bewegt den Textcursor | Referenz zuklappen bzw. zur übergeordneten Zeile springen |
| Home / End | Erste / letzte Zeile | Erste / letzte Zeile |
| ein Buchstabe | Wird in den Filter getippt | Springt zur nächsten Zeile, die damit anfängt |
| F2 | – | Markierte Definition bearbeiten |
| Esc | Ohne Auswahl schließen | Ohne Auswahl schließen |
Eine Referenz statt eines Feldes auswählen
Manchmal willst du den Datensatz und nicht ein Feld darauf – genau das erwartet das Reference-Eingabefeld eines Modify-Record-, Delete-Record- oder PDF-Print-Schritts. Markiere dazu die Referenz-Zeile selbst und bestätige; du musst sie nicht erst aufklappen.
Ein SmartField anlegen, während du konfigurierst
Wenn das gewünschte Feld noch nicht registriert ist, musst du den Picker nicht verlassen. Jede Referenz-Zeile hat rechts zwei kleine Buttons, + Feld und + Referenz, und die schreiben in die Tabelle dieser Referenz:
Wenn du den Picker auf eine einzelne Referenz eingegrenzt öffnest – so wie es SmartFields anlegen im Panel tut – steht die Referenz, in der du bist, als Kopfzeile über dem Baum, und diese Kopfzeile hat dieselben zwei Buttons.
- + Feld greift ein BC-Feld der Tabelle heraus und registriert es unter einem automatisch gebildeten Namen.
- + Referenz greift eine weitere Tabelle heraus und öffnet die Definitionskarte, damit du die Beziehung der beiden einstellen kannst.
In beiden Fällen kommt der Picker direkt zurück, mit deinem neuen SmartField markiert und einfügebereit – in jeder Tiefe. Eine Tabelle ohne SmartFields sagt dir das beim Aufklappen; ihre Zeile hat die beiden Aktionen trotzdem, dort fängst du also an.
Wert-Zeilen haben stattdessen einen Bearbeiten-Button, der die dahinterliegende Definition öffnet (F2 macht dasselbe von der Tastatur). Alle diese Buttons erreichst du mit Tab und löst sie mit Leertaste oder Enter aus. Um eine völlig neue Tabelle zu registrieren, nutze SmartFields bearbeiten auf der Flow-Karte.
Auswahl bestätigen
Bestätige mit Enter, per Doppelklick, mit Strg+Enter (auf dem Mac ⌘+Enter) oder über den Button am unteren Rand des Dialogs. Das Feld SmartField daneben zeigt immer genau das, was du einfügen wirst – schon in {{ }} eingefasst.
Manche Eingaben nehmen nur eine Referenz, andere nur einen Wert. Dann sind die Zeilen, die du dort nicht verwenden kannst, ausgegraut, und solange so eine Zeile markiert ist, bleiben der Bestätigen-Button und das Tastenkürzel deaktiviert.
Was der Button tut, hängt davon ab, wo du den Picker geöffnet hast:
- Bei einem Schritt, den du über das Konfigurationsformular im Flow-Editor einstellst, heißt er Auswählen und schreibt den Platzhalter direkt in das Feld, aus dem du kommst.
- Auf den älteren Konfigurationsseiten heißt er Kopieren & Schließen und legt den Platzhalter stattdessen in die Zwischenablage, damit du ihn mit Strg+V dort einfügst, wo du ihn brauchst – auch mitten in längeren Text, ohne etwas zu überschreiben.
Eine Handvoll Felder erwartet einen SmartField-Selector statt eines Tokens – zum Beispiel der Selector eines For-Each-Loops, die Datensatz-Referenz eines Parsers oder die Reference eines PDF-Prints. Die Wire-Form ist die gleiche Picker-Ausgabe ({{name}}), die überall sonst verwendet wird. Der Resolver des Schrittes entscheidet, ob der Platzhalter ersetzt wird (für skalare Werte) oder unverändert an den konsumierenden Schritt durchgereicht wird (für Referenzen, Arrays und nicht auflösbare Namen) – das ToolTip auf der Konfigurationskarte des jeweiligen Felds beschreibt, welche Form erwartet wird.
Das SmartField-Panel
Überall, wo du SmartFields schreibst, kannst du den ganzen Baum neben deiner Arbeit offen halten: das Panel SmartFields auf der linken Seite. Es zeigt genau das, was der Picker zeigt, und es ist für eine Sache da – zum Ziehen.
Du bekommst es beim Konfigurieren eines Schritts im Flow-Editor, in den Vollbild-Editoren für Text und Code sowie in den Buildern für SmartFormula, SmartDate und SmartFilter. In den drei Buildern startet es zugeklappt, weil diese Dialoge schmaler sind und rechts schon ihre eigene Test-Spalte haben – mit dem Pfeil klappst du es auf, wenn du es brauchst.
Greif eine Zeile und lass sie auf dem Feld los, in das sie gehört:
- In einem Textfeld landet das SmartField dort, wo du es ablegst – du kannst es also mitten in einen Satz setzen, ohne das Vorhandene zu stören.
- Bei einem Feld, das genau ein SmartField aufnimmt – eine Referenz, eine Datensatzauswahl – ersetzt das Ablegen den bisherigen Inhalt.
- Felder, die kein SmartField aufnehmen, leuchten nie auf. Du siehst also vor dem Loslassen, ob es passt.
Alles, was ein SmartField annimmt, umrandet sich während du darüber ziehst. Ziehst du in einem langen Konfigurationsformular an den obereren oder unteren Rand, scrollt es mit.
Das Panel ist eine Erleichterung für die Mausbedienung und kein zweiter Weg: beim Tabben durch deine Felder wird es übersprungen, und der Button SmartField einfügen an jedem davon bleibt der Weg über die Tastatur.
Anlegen und Bearbeiten bleiben beim Picker, und das Panel bringt dich an zwei Stellen dorthin: der Stift in der Kopfzeile öffnet ihn, und jede Referenz-Zeile hat ein Plus, das ihn gleich auf diese Referenz eingegrenzt öffnet – das Neue landet also auf der richtigen Tabelle, ohne dass du sie dort erst wieder suchen musst. In beiden Fällen aktualisiert sich das Panel mit deinen neuen Definitionen, sobald der Picker zugeht.
Zieh die rechte Kante des Panels, um es breiter oder schmaler zu machen, mit einem Doppelklick darauf setzt du die Breite zurück, und mit dem Pfeil in der Kopfzeile klappst du es auf einen schmalen Streifen zusammen. Breite und Klappzustand werden pro Benutzer gemerkt – über alle diese Oberflächen hinweg. Wird eine Oberfläche zu schmal für beides, klappt sich das Panel von selbst weg, damit deine eigentliche Arbeit den Platz behält.
Wann nutzt du welche Oberfläche
- Du willst ein bestehendes SmartField für eine Schritt-Eingabe auswählen → öffne den Picker über den Button SmartField einfügen an dieser Eingabe, oder zieh es aus dem Panel SmartFields neben dem Formular.
- Du willst die SmartFields ändern, die der Flow für eine seiner Tabellen bereitstellt → nutze SmartFields bearbeiten auf der Flow-Karte, oder lege die Definition ohne Umweg im Picker an, über Feld auswählen / Referenz anlegen innerhalb der Tabelle.
- Du willst die SmartFields prüfen oder bearbeiten, die auf einer bestimmten Version gespeichert sind → öffne die Flow-Version und klicke SmartFields bearbeiten. Der Dialog arbeitet direkt auf dieser Version – einen Entwurf legt er hier nicht an. Sei also bewusst, wenn du die veröffentlichte Version geöffnet hast.