Anleitung · Make.com · Make

Make: Invalid number bei Formularantworten beheben

Kurzantwort: Suche beim fehlgeschlagenen Modul nach diesen Fehlerfragmenten:

By Flowpaja · Von Flowpaja · Veröffentlicht am

Diese Anleitung enthält einen Affiliate-Link, gekennzeichnet mit „Affiliate-Link“.

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

Make: Invalid number bei Formularantworten beheben
Hinweis: Alles in dieser Anleitung funktioniert mit Make.com und den verbundenen Apps. Am Ende erwähnen wir optionale Vorlagen und einen Reparaturservice. Quellen: Make math functions.
DataError: Invalid number in parameter
Value must be a number

Öffne die fehlgeschlagene Ausführung und prüfe die tatsächliche Eingabe des Parameters. Eine Antwort kann im Formular wie eine Zahl aussehen, aber als Text, formatierter Währungsbetrag, leerer Wert oder vollständiges Antwortobjekt ankommen. Diese Fälle brauchen unterschiedliche Korrekturen.

Halte beim Testen die ursprüngliche Antwort neben dem umgewandelten Wert fest. Wird 1,234 in die falsche Größenordnung umgewandelt, macht ein grünes Modulsymbol das Ergebnis nicht richtig.

1. Den Parameter finden, der eine Zahl erwartet

Beginne beim fehlgeschlagenen Modul, nicht bei jeder Formularfrage. Notiere den Parameternamen und prüfe den Typ des zugeordneten Werts. Makes Datentypreferenz unterscheidet Number, Text und Collection. Passt die Eingabe nicht zum erwarteten Typ, kann die Validierung scheitern.

Bei Budget, Menge oder API-numberValue verfolgst du genau diesen Wert bis zur Einsendung zurück. Bei einem Zeilenindex oder anderen Identifikator musst du den richtigen Identifikator zuordnen. Wandle nicht irgendeine Formularantwort um, um eine falsche Zuordnung zu verdecken.

Wähle innerhalb eines Frageobjekts die einzelne Antwort. Eine Collection mit Beschriftung und Antwort ist nicht die Antwortzahl. Eine Auswahl wie 10k+ ist eine Kategorie, kein exakter Betrag.

Mit Tools › Set variable kannst du den umgewandelten Wert vor einer nachfolgenden Schreibaktion sichtbar machen. Setze diese Diagnose nach die Eingabeprüfungen. Scheitert schon die Umwandlung, gibt es keine Ausgabe, die spätere Module prüfen könnten.

2. Format vor der Formel festlegen

Entscheide, welche Eingaben das Formular akzeptiert:

EingabevertragBeispielBeabsichtigter Zahlenwert
Dezimalpunkt, keine Gruppierung1234.561234.56
Dezimalkomma, keine Gruppierung1234,561234.56
US-Gruppierung und Dezimalpunkt1,234.561234.56
Punktgruppierung und Dezimalkomma1.234,561234.56
Leerzeichengruppierung und Dezimalkomma1 234,561234.56

Das sind vereinbarte Beispiele, keine Regeln zum Erraten des Herkunftsformats. 1,234 kann eintausendzweihundertvierunddreißig oder eine Dezimalmenge bedeuten. Verwende ein eindeutiges Zahlenfeld oder den ausdrücklich festgelegten Eingabevertrag des Formulars.

Erfasse die Währung getrennt. Das Entfernen von $ oder € rechnet keine Währung um. Lege auch fest, ob negative Werte, Nachkommastellen und null erlaubt sind. Erfolgreiches Parsen ist nur der erste Validierungsschritt.

3. parseNumber() für einfachen Zahlentext verwenden

Make dokumentiert parseNumber(number; decimal separator) in der Referenz der mathematischen Funktionen. Wähle das Dezimaltrennzeichen der Eingabe:

{{parseNumber("1234.56"; ".")}}
{{parseNumber("1234,56"; ",")}}

Wähle bei zugeordnetem Text den tatsächlichen Antworttoken im Mapping-Panel. 1.amount ist in den folgenden Beispielen ein illustrativer Texttoken, kein zugesicherter Feldpfad deines Formulars:

{{parseNumber(trim(1.amount); ".")}}

Verwende das nur bei vereinbartem Dezimalpunkt ohne Währung oder Gruppierung. Liefert der Trigger bereits einen Number-Wert, kannst du diesen passenden Wert direkt zuordnen.

Verwende formatNumber() für die Anzeige in E-Mail oder Slack. Ein Text wie 1,234.56 ist nicht dasselbe wie eine Zahl. Erstelle den Anzeigetext getrennt, nachdem die numerische Schreibaktion funktioniert.

4. Bekannte Gruppierungen und Währungen normalisieren

Ist die Eingabe als US-Gruppierung validiert, entferne Gruppierungskommas und parse den Dezimalpunkt:

{{parseNumber(replace(trim(1.amount); "/,/g"; ""); ".")}}

Bei validierter Punktgruppierung mit Dezimalkomma:

{{parseNumber(replace(trim(1.amount); "/[.]/g"; ""); ",")}}

Bei validierter Gruppierung durch gewöhnliche Leerzeichen und Dezimalkomma:

{{parseNumber(replace(trim(1.amount); "/ /g"; ""); ",")}}

Das Flag g ersetzt alle passenden Gruppierungszeichen. trim() entfernt äußere Leerzeichen. Syntax und Regex-Ersetzung stehen in Makes Text- und Binärfunktionen.

Baue daraus keine Formel, die jeden Trenner entfernt. Das Entfernen des Kommas aus 1234,56 verändert den Betrag. Entferne auch nicht alle Nichtziffern: Dabei gehen Dezimaltrennzeichen und möglicherweise das Minuszeichen verloren.

Für ein Formular, das ausdrücklich ein einzelnes Dollarzeichen bei US-Beträgen erlaubt:

{{parseNumber(replace(trim(replace(1.amount; "$"; "")); "/,/g"; ""); ".")}}

Teste $1,234.56 und $ 1,234.56. Verwende diese Regel nicht für gemischte Währungen, „ungefähr“ oder beliebig platzierte Symbole. Besser sind getrennte Felder für Betrag und Währung.

5. Leere Werte vor der Umwandlung behandeln

Wähle eine Regel und richte den Pfad danach aus:

  1. Pflichtbetrag: Bei fehlender Antwort keine Schreibaktion ausführen. Formularvalidierung korrigieren oder den Datensatz zur Prüfung weiterleiten.
  2. Optionaler Betrag: Den Wert entsprechend dem Verhalten des Zielfelds fehlen lassen. Eine leere Zeichenfolge ist kein Betrag. Unterstützte Make-Update-Module überspringen leere Werte üblicherweise; erase dient dem bewussten Leeren eines Felds. Prüfe das beim konkreten Zielmodul.
  3. Standardwert null: Nur verwenden, wenn eine ausgelassene Antwort nach der Geschäftsregel tatsächlich null bedeutet.

Für die dritte Regel bei Dezimalpunkt ohne Währung oder Gruppierung:

{{parseNumber(ifempty(trim(1.amount); "0"); ".")}}

Makes allgemeine Funktionen beschreiben ifempty() als Ersatz für einen leeren Wert. Es ist kein Ausnahmehandler. Ein vorhandenes TBD muss weiterhin abgelehnt oder geprüft werden.

Prüfe leere Werte vor dem Modul mit parseNumber(). Ein Filter nach einer fehlgeschlagenen Umwandlung kommt zu spät.

Häufige Fehler

Sheets nimmt den Wert an, aber das nächste Modul scheitert

Google Sheets › Add a Row kann einen sichtbaren Betrag speichern, ohne dessen Typ für spätere Schritte zu beweisen. Prüfe das ausgelesene Bündel und die Eingabe des nächsten Moduls. Parse an der Grenze, die eine Zahl erwartet.

Das Budget lautet 10k+

Das ist eine Bereichsbezeichnung. Ordne sie einer Kategorie zu, falls das Ziel eine Kategorie erwartet. Wird ein exakter Betrag benötigt, erfasse ihn. Verwandle „mindestens“ nicht stillschweigend in eine exakte Zusage.

Kommas funktionieren in einem Formular, im anderen nicht

Vergleiche die Eingabeverträge. Gruppierungskomma und Dezimalkomma sind verschieden. Behalte getrennte Normalisierungsregeln oder stelle beide Formulare auf ein gemeinsames eindeutiges Format um.

Ein Betrag mit Leerzeichen scheitert weiterhin

Prüfe das konkrete Zeichen zwischen den Gruppen. Gewöhnliches, geschütztes und schmales Leerzeichen sind unterschiedliche Zeichen. / /g trifft nur gewöhnliche Leerzeichen. Reproduziere den Originaltext und begrenze das Formular oder normalisiere genau den erlaubten Trenner.

Parsen klappt, aber die API lehnt den Betrag ab

Prüfe Serialisierung und Feldgrenzen. Für ein Google-Sheets-API-numberValue muss eine JSON-Zahl wie 1234.56 übermittelt werden, nicht der Text "1234.56"; siehe ExtendedValue. Bei Batch-Updates hilft der [Leitfaden zu Invalid requests[0] 400](https://flowpaja.com/guides/make-google-docs-sheets-invalid-requests-400/).

Retry ergibt denselben Fehler

Eine unveränderte ungültige Antwort bleibt ungültig. Korrigiere Eingabe oder Umwandlung vor dem Wiederholen. Makes Fehlerhilfe nennt ungültige Eingabetypen und Funktionen als mögliche DataError-Ursachen. Überspringe die Schreibaktion nicht, um danach den Betrag als gespeichert zu melden.

Credits pro Lauf

Bei einem gewöhnlichen Trigger und einer gewöhnlichen Schreibaktion ergeben zwei ausgeführte Module eine Schätzung von zwei Credits. Inline-Mappingfunktionen verursachen keinen zusätzlichen Modullauf. Diagnosemodule, Suchen und Wiederholungen verändern die Summe. Vergleiche mit dem Verlauf; siehe Make Credits.

Tests

Verwende fiktive Beträge in einem Testziel. Notiere je Fall Originaltext, vereinbartes Format, Ergebniswert und Zieltyp:

  1. 1234.56 mit der Dezimalpunktregel.
  2. 1234,56 mit der Dezimalkommaregel.
  3. 1,234.56 und 1,234,567.89 mit US-Gruppierung.
  4. 1.234,56 mit Punktgruppierung und Dezimalkomma.
  5. $ 1,234.56 ausschließlich im Dollarzeichenpfad.
  6. Leerfeld, Leerzeichen, null und TBD einzeln: Leerfeldregel und Ablehnung prüfen.
  7. Erlaubter negativer Wert und Wert außerhalb der Zielgrenzen.
  8. Anführungszeichen oder vollständige Antwort-Collection: Keines darf unbemerkt zu einer plausiblen Zahl werden.

Prüfe die Eingabe des letzten Moduls, nicht nur eine formatierte Vorschau. Der Test scheitert, wenn ein Leerfeld zu erfundener null wird, eine Dezimalzahl die Größenordnung wechselt oder eine Währungsangabe ohne erhaltene Bedeutung verschwindet.

Dieselbe Sorgfalt bei der Lead-Annahme

Für Google-Forms-Leads nach HubSpot und Slack gibt es Flowpajas Lead Router für 19 USD. Die Produktseite beschreibt eine Einschränkung bei der Zuordnung von Budgetoptionen. Das ist ein eigener Google-Forms-Ablauf, kein universeller Parser für freie Betragstexte.

Bei Typeform-Antworten kann eine hohe Budgetoption einen Slack-Hinweis auslösen. Auch dort muss die Auswahl als vereinbarte Kategorie behandelt werden, nicht als geratener exakter Betrag.

Noch kein Make-Konto? Kostenloses Make-Konto erstellen: affiliate link. Flowpaja kann eine Provision erhalten, ohne zusätzliche Kosten für dich.

FAQ

Wie wird eine Textantwort zu einer Zahl?
Verwende parseNumber() mit dem vereinbarten Dezimaltrennzeichen. Normalisiere nur erlaubte Gruppierungs- und Währungszeichen und ordne die resultierende Zahl zu.
Kann ich die Bedeutung von 1,234 erraten?
Nein. Lege das Format fest oder erfasse einen eindeutigen Betrag. Eine erfolgreiche Umwandlung in die falsche Größenordnung bleibt ein Datenfehler.
Soll ein leeres Budget null werden?
Nur wenn das seine vereinbarte Bedeutung ist. Sonst fehlende Pflichtangaben ablehnen oder optionale Angaben fehlend lassen. „Unbekannt“ und „kein Budget“ sind verschieden.
Fängt ifempty() ungültigen Zahlentext ab?
Nein. Es ersetzt leere Werte. TBD wird nicht repariert, und das beabsichtigte Zahlenformat wird nicht bestimmt.

Noch Probleme?

Schick den exportierten Blueprint und den Fehlertext des fehlgeschlagenen Laufs an unseren Make-Reparaturservice auf Fiverr. Keine Logins nötig.

Stuck on an error in your own Make scenario? Make scenario fix / debugging on Fiverr, from $25: send the exported blueprint and a description of the error, no logins needed.

← All guides · All templates

Make, Meta, Facebook, Google, Google Sheets, Slack, Fillout, Typeform, Tally, HubSpot und Webflow sind Marken ihrer Inhaber. Flowpaja ist unabhängig und nicht mit ihnen verbunden.