Was Sie benötigen
- Ein Make.com-Konto mit Google-Sheets- und Gmail-Verbindung
- Eine Google-Tabelle mit Kopfzeile in Zeile 1
- Diese Spalten: Name, Email, Topic, Status, Sent at
- Einen E-Mail-Text, den Sie automatisch versenden möchten
Watch New Rows oder Search Rows?
Make bietet zwei Wege, neue Zeilen zu erkennen, und diese Entscheidung wirkt sich stärker aus als jede andere Einstellung in diesem Szenario.
Google Sheets – Watch New Rows merkt sich anhand der Zeilenposition, wo es aufgehört hat, und liefert alles darunter. Das ist einfach und hält den Credit-Verbrauch niedrig. Allerdings verlässt es sich blind auf die Position: Wird die Tabelle sortiert, eine Zeile oberhalb der Markierung gelöscht oder mittendrin eine eingefügt, kann das Modul Zeilen überspringen oder alte erneut aufgreifen. Änderungen an Zeilen, die es schon gesehen hat, ignoriert es außerdem, und laut Make-Dokumentation verarbeitet es nach einer leeren Zeile die Zeilen darunter nicht mehr. Ältere Anleitungen nennen es manchmal Watch Rows.
Google Sheets – Search Rows mit Zeitplan schaut bei jedem Lauf in die Tabelle und stellt eine einfache Frage: Welche Zeilen haben noch keinen Status? Es merkt sich nichts, also kann auch nichts aus dem Takt geraten. Es verbraucht an ruhigen Tagen ein paar Credits mehr, erholt sich aber nach einem fehlgeschlagenen Lauf von selbst.
Wo ein doppelt versendeter Text peinlich wäre, nehmen Sie Search Rows mit einer Status-Spalte. Der folgende Aufbau macht genau das.
Schritt für Schritt
1. Tabelle vorbereiten
Lassen Sie die Spalte Status bei neuen Zeilen leer. Achten Sie darauf, dass die Überschriften keine Leerzeichen am Ende haben, denn Make zeigt sie als Feldnamen an, und ein verirrtes Leerzeichen ist später lästig zu finden.
2. Google Sheets – Search Rows als erstes Modul hinzufügen
Wählen Sie Tabelle und Tabellenblatt. Stellen Sie „Table contains headers“ auf Ja. Setzen Sie ein Limit, zum Beispiel 20, damit ein großer Rückstau nicht hunderte E-Mails in einem Lauf auslöst. Legen Sie über das Uhr-Symbol am Modul einen Zeitplan fest, etwa alle 15 Minuten.
3. Auf Zeilen filtern, die noch eine E-Mail brauchen
Klicken Sie auf die Verbindung hinter dem Modul und legen Sie einen Filter mit zwei Bedingungen an, verknüpft mit AND:
- Status gleich leer (kein Wert). Je nachdem, wie Ihre Tabelle leere Zellen liefert, funktioniert „Does not exist“ besser als „Equal to“. Testen Sie beides an einer echten leeren Zeile.
- Email, matches pattern:
^[^@\s]+@[^@\s]+\.[^@\s]+$
Die zweite Bedingung hält halb ausgefüllte Zeilen von Gmail fern.
4. Zeile als „sending“ markieren
Fügen Sie Google Sheets – Update a Row hinzu. Setzen Sie Row number auf die Zeilennummer aus der Ausgabe von Search Rows und schreiben Sie sending in die Spalte Status. Dieser Schritt steht bewusst vor der E-Mail: Bricht das Szenario beim Senden ab, ist die Zeile nicht mehr leer und wird nicht erneut aufgegriffen.
5. E-Mail senden mit Gmail – Send an email
To: {{trim(2.Email)}}. Füllen Sie Subject und Body contents aus und ordnen Sie Felder im Text zu, etwa „Guten Tag {{2.Name}}, vielen Dank für Ihre Nachricht zum Thema {{2.Topic}}.“ Body contents akzeptiert HTML-Tags, falls Sie Links oder Formatierung brauchen. Das Präfix 2. ist die Modulnummer aus diesem Beispiel; nehmen Sie für Ihr Szenario das Mapping-Panel.
6. Zeile erneut aktualisieren
Fügen Sie ein zweites Google Sheets – Update a Row hinzu. Gleiche Zeilennummer, Status auf sent, und Sent at auf {{formatDate(now; "YYYY-MM-DD HH:mm")}}.
7. Fehler abfangen
Klicken Sie mit der rechten Maustaste auf das Gmail-Modul und fügen Sie einen Error Handler hinzu. Leiten Sie ihn auf Google Sheets – Update a Row, mit der Zeilennummer aus Schritt 2 und Status failed, und beenden Sie die Route mit dem Error Handler Skip (in älteren Versionen Ignore), damit der Lauf mit der nächsten Zeile weitermacht. Eine fehlgeschlagene Zeile ist so in der Tabelle sichtbar und blockiert die anderen nicht.
8. Testen
Tragen Sie eine Zeile mit Ihrer eigenen E-Mail-Adresse ein, klicken Sie auf Run once und prüfen Sie, ob der Status auf sent springt. Führen Sie das Szenario direkt danach noch einmal aus: Es sollte nichts passieren. Dieser zweite Lauf ist der eigentliche Test.
Häufige Fehler und Lösungen
Dieselbe Person bekommt die E-Mail zweimal. Meist ist das Status-Update nach dem Versand fehlgeschlagen, oder zwei Kopien des Szenarios laufen auf derselben Tabelle. Aktualisieren Sie den Status vor dem Senden wie in Schritt 4 und prüfen Sie, ob Sie das Szenario nicht dupliziert und beide Kopien aktiv gelassen haben.
Search Rows liefert nichts, obwohl neue Zeilen vorhanden sind. Der Filter auf Status passt nicht dazu, wie Make leere Zellen liest, oder das Modul zeigt auf das falsche Tabellenblatt. Öffnen Sie die Ausgabe eines Run once und sehen Sie nach, was das Feld Status tatsächlich enthält. Ein einzelnes Leerzeichen zählt als Inhalt.
Die falsche Zeile wird aktualisiert. Die Zeilennummer stammt aus einem anderen Modul als dem, das die Zeile gefunden hat, oder jemand hat die Tabelle sortiert, während das Szenario lief. Verwenden Sie immer die Zeilennummer aus dem Search-Rows-Bundle desselben Laufs und sortieren Sie die Arbeitstabelle nicht. Ein separates Blatt oder eine Ansicht zum Sortieren hält die Arbeitstabelle stabil.
„Invalid to header“ von Gmail. Die Zelle Email enthält ein Leerzeichen am Ende, einen Zeilenumbruch oder zwei Adressen. trim() um das Feld behebt die meisten Fälle, und der Muster-Filter aus Schritt 3 fängt den Rest ab.
429- oder Kontingentfehler von Google Sheets. Zu viele Lese- und Schreibzugriffe in kurzer Zeit. Senken Sie das Limit in Search Rows und erwägen Sie Tools – Sleep mit ein bis zwei Sekunden zwischen den Zeilen. Make behandelt einen 429 in der Regel als Rate-Limit-Fehler und versucht es später erneut, er zählt also nicht wie ein gewöhnlicher Fehler.
„You have reached a limit for sending mail“ von Gmail. Google begrenzt, wie viel ein Konto senden darf. Laut Google-Hilfe sind es bei einem privaten Gmail-Konto grob 500 E-Mails bzw. Empfänger pro Tag und bei Google Workspace bis zu 2.000 Nachrichten pro Tag und Nutzer, bei Testkonten weniger. Verstehen Sie das als Richtwerte, prüfen Sie die aktuelle Google-Dokumentation und halten Sie das Limit in Search Rows deutlich unter Ihrem Tageskontingent.