Integrations-Hub

Überblick
Der Hub bewegt Daten über Systemgrenzen: hinaus zu fremden Diensten, herein von dort. Gebaut wird das als Flow — eine Kette aus Bausteinen, durch die Datensätze laufen.
Zwei Dinge, die den Hub von der Automation unterscheiden: Er arbeitet an der Grenze zu FREMDEN Systemen, und er verarbeitet Listen von Datensätzen, nicht einzelne Ereignisse. Die Regeln innerhalb des Systems bleiben Sache der Automation — es gibt bewusst nur eine Regel-Engine.
Ein Baustein ohne ankommende Datensätze läuft nicht. Das ist keine Störung, sondern die Regel: Ein Flow ohne Daten hat nichts zu tun.
Kernaufgaben
Einen Flow bauen. Im Editor ziehen Sie Bausteine zusammen und verbinden ihre Ausgänge: den Punkt unter einer Karte mit der Maus auf den Ziel-Baustein ziehen und loslassen — die Linie folgt dem Zeiger, das Ziel leuchtet auf. Wer ohne Maus arbeitet, klickt erst den Ausgang und dann das Ziel. Werte werden über Formeln der Form {{= … }} gebildet — Code gibt es hier nicht.
Einen Baustein einzeln testen. Einzeln testen am gewählten Baustein öffnet eine Beispiel-Eingabe (eine JSON-Liste von Datensätzen), vorbelegt mit dem, was im letzten Testlauf bei diesem Baustein ankam — am Anfang der Kette mit den Testdaten des Flows. Mit dieser Eingabe testen führt nur diesen Baustein aus: kein Vorgänger, kein Nachfolger, aber mit Journal. Die Vorschau darunter zeigt danach seinen Ausgang. Getestet wird der gespeicherte Stand; vorher also speichern. Achtung: ein sendender Baustein (E-Mail, Webhook, Schreiben im System) sendet auch im Einzeltest wirklich. Recht: connect.flow.execute.
Bausteine für Listen, Texte, Archive und Signale. In Stapel teilen (batch) bündelt je N Datensätze zu einem — für Schnittstellen, die nur eine bestimmte Zahl je Aufruf annehmen. Doppelte entfernen (unique) lässt je Schlüssel nur den ersten Datensatz durch (ohne Gedächtnis über den Lauf hinaus; dafür gibt es Nur Neues durchlassen). Text aus Vorlage (template_render) baut je Datensatz einen Text mit Platzhaltern, auf Wunsch HTML-geschützt und als Datei. ZIP auspacken (zip_unpack) macht aus jedem Eintrag eines Archivs einen Datensatz mit der Datei im Fach, ZIP packen (zip_pack) legt die Dateien aller Datensätze in ein Archiv. Signal an Automation (emit_signal) meldet einen Namen und Nutzdaten an die Automation — Auslöser Signal aus dem Integrations-Hub, Bedingung etwa signal ist gleich preisliste_eingelesen. Entschieden wird dort; der Hub selbst hat keine Regeln. Eine Kette aus Signal, Automation und erneutem Flow-Start endet nach fünf Stufen.
Auf abgelegte Dateien reagieren. Auslöser Datei abgelegt: Sie wählen einen Ordner der Dateiablage und ein Dateimuster (Vorgabe *.csv). Jede passende Datei, die dort hochgeladen wird, startet den Flow über die Warteschlange; sie hängt am ersten Datensatz im Fach datei. Der CSV-Baustein liest sie, wenn Sie bei Datei aus Fach datei eintragen und Inhalt leer lassen. {{trigger.file.name}} und {{trigger.folder.name}} nennen Datei und Ordner. Ein Flow ohne Marke reagiert auf jede Datei, ein Flow mit Marke nur auf Dateien seiner Marke. Ohne Ordner lässt er sich nicht einschalten.
Zuordnungen pflegen. Eine Zuordnung übersetzt Felder zwischen zwei Systemen. Eine Zuordnungstabelle übersetzt Werte (etwa fremde Statusnamen in eigene).
Aus einer Vorlage starten. Vorlagen bringen fertige Flows für gängige Aufgaben mit.
Läufe nachvollziehen. Das Lauf-Journal zeigt jeden Durchlauf mit den Daten je Baustein. Ein gescheiterter Lauf lässt sich wiederanlaufen lassen, statt alles neu zu starten.
Aus dem Speicher lesen. Der Speicher hält Werte zwischen Läufen — etwa den Stand des letzten Abrufs, damit ein Flow dort weitermacht, wo er aufgehört hat.
Fällige Flows jetzt starten. Zeitplan- und Abruf-Flows startet das System jede Minute, sobald sie fällig sind. Fällige jetzt starten in der Flow-Liste fährt genau diesen Durchgang sofort und nennt danach jeden gestarteten Flow mit Auslöser und Takt; „Gerade war kein Flow fällig" ist eine Auskunft, kein Fehler. Flows fremder Marken bleiben stehen. Recht: connect.flow.execute.
Felder im Detail
Ein Flow verbindet Systemgrenzen: Er holt Datensätze von außen, formt sie um und schreibt sie herein — oder umgekehrt. Regeln im Inneren des Systems gehören dagegen in die Automation; zwei Regel-Maschinen nebeneinander wären eine zu viel.
| Feld | Pflicht | Werte / Format | Was es bewirkt |
|---|---|---|---|
Kennung flowKey | ja | Text, max. 100 Zeichen | Die technische Kennung des Flows. Nicht mehr ändern, sobald er läuft. |
Name name | ja | Text, max. 160 Zeichen | Wie der Flow in der Liste heißt. |
Beschreibung description | nein | Text | Was er tut. Der Absatz, der in einem Jahr die Frage beantwortet, ob man ihn abschalten darf. |
Auslöser triggerType | ja | Ereignis, Zeitplan, Webhook, manuell, Abruf, Datei abgelegt | Wann er läuft. Webhook heißt: Ein Fremdsystem ruft an; Datei abgelegt: eine passende Datei landet im gewählten Ordner. |
Auslöser-Einstellung triggerConfig | nein | je nach Art | Welches Ereignis, welcher Zeitplan, welcher Takt (intervalMinutes) bzw. welcher Ordner und welches Muster (folderUlid, pattern). Die Zeitmechanik kommt aus der Automation — hier wird sie nur benannt. |
Webhook-Geheimnis webhookSecret | bei Webhook | Text | Womit ein eingehender Aufruf sich ausweist. Ohne Geheimnis lässt sich ein Flow gar nicht erst einschalten — ein offener Webhook wäre eine Tür ohne Schloss. |
Signaturverfahren webhookScheme | nein | Text, max. 40 Zeichen | Wie die Signatur gebildet wird. |
Warteschlange queueName | nein | Text, max. 60 Zeichen | In welcher Warteschlange der Flow läuft. Eine eigene Warteschlange verhindert, dass ein großer Import den Mailversand aufhält. |
Ausführender Nutzer runAsUserUlid | ja | bestehendes Konto | In wessen Namen geschrieben wird. Jeder schreibende Baustein läuft über diese Identität — der Flow kann nichts, was dieses Konto nicht darf, und im Protokoll steht es. |
Marke brandId | nein | eine Ihrer Marken | Für welche Marke der Flow arbeitet. |
Variablen variables | nein | Zuordnung von Bezeichnung zu Wert | Werte, die im ganzen Flow gelten — Adressen, Kennungen, Schwellen. Geheimnisse gehören hier hinein, nicht in einzelne Bausteine. |
Bausteine nodes / Verbindungen edges | ja | Liste | Der Flow selbst: was geschieht und in welcher Reihenfolge. Ein Baustein ohne ankommende Datensätze läuft nicht — leer heißt nicht „einmal ohne Daten", sondern gar nicht. |
Baustein node / nach after | — | einzelner Baustein und Vorgänger | Fügt beim Bearbeiten einen Baustein an einer Stelle ein. |
Beispiel-Eingabe inputItems | — | Liste von Datensätzen | Eingang für Einzeln testen (POST …/nodes/{nodeKey}/test). Leer heißt: ein leerer Datensatz. |
Bausteine je Flow (Grenze) maxNodes | — | Zahl, nur lesend | Die Grenze des Betreibers (siehe unten). Der Editor warnt, sobald der Bauplan darüber liegt. |
Testdaten testPayload | nein | Struktur | Beispieldaten für den Probelauf. Der Probelauf zeigt je Baustein, was hereinkam und was herauskam — die einzige brauchbare Art, einen Flow zu entwickeln. |
Nutzdaten payload | — | Struktur | Die Daten eines konkreten Laufs. |
Paket bundle | — | Struktur | Ein exportierter Flow zum Ein- und Ausspielen. Geheimnisse werden dabei nicht mitgegeben; sie werden am Ziel neu gesetzt. |
Einstellungen & Rechte
- Lesen:
connect.flow.view· Lauf-Journal inkl. Daten je Baustein:connect.run.view - Bauen und ändern:
connect.flow.manage - Starten, testen, wiederanlaufen:
connect.flow.execute - Grenzen des Hubs festlegen:
connect.config.manage(nur markenübergreifend; ab Werk nur der Admin)
Grenzen des Hubs. Grenzen in der Flow-Liste (nur mit connect.config.manage) legt fest, was für alle Flows aller Marken gilt:
| Feld | Pflicht | Werte / Format | Was es bewirkt |
|---|---|---|---|
Schritte je Lauf maxSteps | nein | 1 bis 1.000.000, Vorgabe 5.000 | Darüber bricht ein Lauf ab — Schutz vor einem Bauplan, der sich selbst enthält. Wirkt ab dem nächsten Lauf. |
Bausteine je Flow maxNodes | nein | 1 bis 10.000, Vorgabe 200 | Ein größerer Bauplan wird beim Speichern, Einfügen und Einlesen abgewiesen; ein Bestand darüber lässt sich nicht mehr einschalten. |
Modul-Flag: module.connect. Jeder schreibende Baustein läuft über die interne API im Namen eines Nutzers — ein Flow kann damit nie mehr als der Mensch, in dessen Namen er läuft.
FAQ & Fehlerbilder
Der Flow läuft, aber nichts passiert. Prüfen Sie, ob am ersten Baustein überhaupt Datensätze ankommen. Ohne ankommende Daten bleibt die Kette stehen.
Der Probelauf funktioniert, der echte nicht. Der Probelauf arbeitet mit Beispieldaten. Prüfen Sie die echten Werte im Lauf-Journal.
Ein Feld kommt leer an. Meist fehlt die Zuordnung, oder das fremde System liefert einen anderen Feldnamen als erwartet.