Anleitung · Make.com · Bundles und Arrays

Iterator vs. Aggregator in Make.com: Wann Sie was verwenden (mit Beispielen)

Iterator und Aggregator sind Gegenspieler, und wer sie verwechselt, landet schnell bei Fragen wie „Warum habe ich 40 E-Mails bekommen?“ oder „Warum wird nur die letzte Zeile gespeichert?“. Dieser Leitfaden erklärt, was beide mit Ihren Daten machen, und baut dann ein Beispielszenario, das beide nutzt.

Von Flowpaja · Veröffentlicht am

Diese Anleitung gibt es auch auf: English · Deutsch · Español · Français

Eine Bestellung mit einem items-Array, ein Iterator, der zwei Bundles erzeugt, die jeweils eine Zeile in Google Sheets hinzufügen, und ein Aggregator, der sie zu einem Bundle zusammenführt, sodass Gmail eine einzige E-Mail sendet
Der Iterator teilt das Array in ein Bundle pro Element auf; der Aggregator führt sie wieder zusammen, sodass die E-Mail nur einmal rausgeht.
Transparenz: Alles in dieser Anleitung funktioniert mit dem regulären Make.com und den Apps, die es verbindet. Am Ende erwähnen wir unsere eigenen Make-Vorlagen und unseren Make-Fehlerservice auf Fiverr. Modulnamen, Einstellungen und Limits wurden im Oktober 2026 mit Make's aggregator docs and Tools docs abgeglichen (auf Englisch). Menüs und Limits ändern sich; prüfen Sie sie, wenn etwas anders aussieht.

Was Sie brauchen

  • Ein Make.com-Konto
  • Daten, die eine Liste enthalten, etwa eine Bestellung mit Positionen, mehrere Zeilen aus Google Sheets oder die Anhänge einer E-Mail
  • Verbindungen zu Google Sheets und Gmail, wenn Sie das Beispiel nachbauen möchten

Das Prinzip in einem Absatz

Make reicht Daten in Form von Bundles von Modul zu Modul weiter. Die meisten Module nehmen ein Bundle entgegen und geben ein Bundle zurück. Ein Iterator nimmt ein Bundle, das ein Array enthält, und macht aus jedem Element ein eigenes Bundle: eins rein, viele raus. Ein Aggregator macht das Gegenteil: Er nimmt viele Bundles und führt sie zu einem zusammen: viele rein, eins raus. Alles dazwischen läuft einmal pro Element. Die Position dieser Module entscheidet also darüber, wie oft ein Modul läuft und wie viele Credits Sie verbrauchen.

Schritt für Schritt: ein Szenario mit beiden bauen

Das Beispiel: Eine Bestellung mit mehreren Positionen geht ein. Sie möchten pro Position eine Zeile in Google Sheets und anschließend eine einzige E-Mail an den Kunden mit der Gesamtsumme und einer Liste der bestellten Artikel.

1. Daten holen, die ein Array enthalten

Beginnen Sie mit einem Trigger, der eine Bestellung liefert, etwa Webhooks – Custom webhook, oder mit HTTP – Make a request, das JSON zurückgibt. Eine Beispiel-Payload sieht so aus:

{"order_id": "A-1001", "email": "[email protected]",
 "items": [{"name": "Desk lamp", "qty": 2, "price": 19.5},
           {"name": "Cable", "qty": 3, "price": 4}]}

Nach einem Run once zeigt Make items in der Ausgabe als Array an.

2. Flow Control – Iterator hinzufügen

Mappen Sie im Feld Array items. Klicken Sie auf Run once und sehen Sie sich die Ausgabe an: Jetzt gibt es ein Bundle pro Position, jeweils mit name, qty und price. Die Zahl in der Bubble des Moduls zeigt zwei Bundles. Alles, was Sie ab hier hinzufügen, läuft für diese Bestellung zweimal.

3. Pro Element etwas tun

Fügen Sie Google Sheets – Add a Row hinzu. Mappen Sie Order ID aus dem Trigger (weiterhin verfügbar, da er früher im Szenario liegt) sowie Name, Qty und Price aus dem Iterator. Es werden zwei Zeilen hinzugefügt.

4. Die Schleife mit einem Aggregator schließen

Jetzt brauchen Sie wieder ein einzelnes Ergebnis. Fügen Sie Tools – Numeric aggregator hinzu. Setzen Sie das Source module auf den Iterator. Wählen Sie bei Function den Wert Sum und verwenden Sie bei Value:

{{2.qty * 2.price}}

Der Aggregator wartet auf alle Bundles aus seiner Quelle und gibt dann ein Bundle mit der Summe aus. Für die Artikelliste verwenden Sie Tools – Text aggregator auf dieselbe Weise. Source module: der Iterator. Text: {{2.qty}} x {{2.name}}, mit einem Zeilenumbruch als Zeilentrenner.

5. Das aggregierte Ergebnis verwenden

Fügen Sie nach dem Aggregator Gmail – Send an email hinzu. To ist {{1.email}} aus dem Trigger. Im Body contents können Sie das Ergebnis des Aggregators verwenden, zum Beispiel „Ihre Gesamtsumme: {{4.result}}“. Da der Aggregator ein einziges Bundle erzeugt hat, läuft Gmail einmal statt zweimal.

6. Erkennen, wann Sie gar keinen Iterator brauchen

Make bietet Funktionen, die direkt mit Arrays arbeiten. Brauchen Sie nur die Anzahl der Elemente: {{length(1.items)}}. Um Namen in einer Zeile zu verbinden: {{join(map(1.items; "name"); ", ")}}. Um ein Feld zu addieren: {{sum(map(1.items; "price"))}} (das summiert die Preise so, wie sie sind, nicht Menge mal Preis). Diese Funktionen laufen in einem Modul, das Sie ohnehin haben, ohne Schleife und ohne zusätzliche Credits. Einen Iterator brauchen Sie, wenn jedes Element eine eigene Modulaktion benötigt, etwa eine eigene Zeile, einen eigenen Datei-Upload oder eine eigene Slack-Nachricht.

Kurzübersicht: welches Werkzeug?

Sie möchten …Verwenden Sie
für jedes Element einer Liste einmal etwas tunIterator
viele Bundles in eine Liste umwandelnArray aggregator
einen zusammenhängenden Textblock erstellen, etwa einen E-Mail-TextText aggregator
Werte addieren oder zählenNumeric aggregator
ein Array nur an einer Stelle auslesen oder umformenmap(), join(), sum() und length()

Iterator und Array aggregator finden Sie unter Flow Control, Text aggregator und Numeric aggregator unter Tools.

Häufige Fehler und Lösungen

Sie erhalten eine E-Mail pro Element statt einer einzigen. Das Gmail-Modul liegt innerhalb der Schleife: zwischen Iterator und Aggregator oder hinter dem Iterator ganz ohne Aggregator. Fügen Sie den Aggregator hinzu und setzen Sie Gmail dahinter.

Nur das letzte Element wird gespeichert, oder der Aggregator liefert nur einen Wert. Meist ist das Source module falsch eingestellt, oder die Aggregation läuft über ein Set-variable-Modul, das sich bei jedem Durchlauf selbst überschreibt. Stellen Sie sicher, dass das Source module des Aggregators der Iterator oder die Suche ist, die die Bundles erzeugt.

Der Iterator gibt nichts aus oder meldet, dass er ein Array erwartet hat. Das gemappte Feld ist kein Array, sondern Text, ein einzelnes Objekt oder leer. Prüfen Sie die Ausgabe des vorherigen Moduls. Haben Sie kommagetrennten Text, teilen Sie ihn zuerst auf (zum Beispiel mit der Funktion split()) und iterieren Sie über das Ergebnis.

Das Szenario läuft weiter, obwohl die Suche nichts gefunden hat. Das ist zu erwarten, wenn ein Aggregator auf die Suche folgt: Standardmäßig gibt er auch dann ein Bundle aus, wenn keine Bundles bei ihm ankommen. Das ist praktisch, um „nicht gefunden“-Fälle zu behandeln. Soll das Szenario stattdessen anhalten, aktivieren Sie Stop processing after an empty aggregation in den erweiterten Einstellungen des Aggregators oder fügen Sie danach einen Filter hinzu, zum Beispiel für den Fall, dass der aggregierte Text leer ist.

Nach dem Aggregator sehen Sie die Daten der einzelnen Elemente nicht mehr. Nach der Aggregation haben Sie das aggregierte Ergebnis und alles aus Modulen vor der Schleife. Werte einzelner Elemente aus der Schleife sind weg, es sei denn, Sie haben sie zu einem Array aggregiert.

Der Credit-Verbrauch ist viel höher als erwartet. Jedes Modul nach einem Iterator läuft einmal pro Element. Eine Liste mit 100 Zeilen, die durch vier Module läuft, verbraucht deutlich mehr Credits als dieselbe Aufgabe mit map() innerhalb eines einzigen Moduls. Der Tab History zeigt die tatsächlichen Zahlen für jeden Lauf.

Häufige Fragen

Kann ich einen Iterator innerhalb eines Iterators verwenden?
Ja, wenn jedes Element ein eigenes Array enthält. Jede Schleife, die Sie wieder zusammenführen möchten, braucht einen eigenen Aggregator, und der Credit-Verbrauch vervielfacht sich. Behalten Sie ihn also im Blick.
Wofür ist der Array aggregator da?
Er sammelt Bundles in einem Array, das Sie weitergeben können, zum Beispiel an einen HTTP-Request, der eine JSON-Liste erwartet, oder um Ergebnisse mit length() zu zählen.
Was kommt zuerst, Iterator oder Aggregator?
Meist öffnet der Iterator eine Schleife und der Aggregator schließt sie. Ein Aggregator kann aber auch ganz ohne Iterator auf ein Suchmodul folgen, weil die Suche bereits mehrere Bundles zurückgibt.
Muss der Aggregator direkt hinter dem Iterator stehen?
Nein. Die Module dazwischen laufen einmal pro Element. Was beide verbindet, ist die Einstellung Source module des Aggregators.

Ein zweiter Blick auf Ihre Schleifen?

Wenn ein Szenario pro Element eine E-Mail verschickt oder weit mehr Credits verbraucht als erwartet, senden Sie den exportierten Blueprint und eine Beschreibung des Problems an unseren Make-Fehlerservice auf Fiverr (auf Englisch), keine Zugangsdaten nötig. Unsere Make.com-Vorlagen (auf Englisch) decken Zahlungserinnerungen, Nachfassen bei Angeboten und Formular-Leads ab. Sie betreiben einen Shopify-Shop? Unser Setup für Shopify-Bestellungen nach Google Sheets und Slack auf Fiverr (auf Englisch) baut genau diese Art von Bestellablauf für Sie, ab 80 US-Dollar.

Ihr eigenes Szenario hat einen Fehler? Unser Make-Szenario-Debugging auf Fiverr (auf Englisch) beginnt bei 25 US-Dollar. Schicken Sie den exportierten Blueprint und eine Beschreibung des Fehlers, keine Zugangsdaten.

← Alle Anleitungen · Alle Vorlagen (auf Englisch)

Make, Google, Gmail, Google Sheets und Google Drive sind Marken ihrer jeweiligen Inhaber. Flowpaja ist unabhängig und weder mit diesen Unternehmen verbunden noch von ihnen unterstützt. Menüs und Tarifgrenzen können sich ändern; prüfen Sie die aktuelle Dokumentation des jeweiligen Anbieters.

Hinweis: Diese Übersetzung wurde mit KI erstellt.