Guide · Make.com · Make

Make : corriger Invalid number dans les formulaires

Réponse courte : Repérez ces fragments dans le module en échec :

By Flowpaja · Par Flowpaja · Publié le

Ce guide contient un lien d’affiliation, indiqué « lien d’affiliation ».

Ce guide est aussi disponible en : English · Deutsch · Español · Français

Make : corriger Invalid number dans les formulaires
Note : Tout dans ce guide fonctionne avec Make.com et les apps connectées. À la fin, nous mentionnons des modèles optionnels et un service de réparation. Sources : Make math functions.
DataError: Invalid number in parameter
Value must be a number

Ouvrez l'exécution en échec et inspectez l'entrée réelle du paramètre. Une réponse peut sembler numérique dans le formulaire et arriver comme texte, montant monétaire formaté, valeur vide ou objet complet. Ces cas appellent des corrections différentes.

Conservez la réponse d'origine à côté de la valeur convertie pendant les tests. Si 1,234 devient une quantité de la mauvaise grandeur, une pastille verte ne rend pas le résultat correct.

1. Trouver le paramètre qui attend un nombre

Commencez par le module en échec, pas par toutes les questions du formulaire. Notez le paramètre et inspectez le type de la valeur mappée. La référence des types Make distingue Number, Text et Collection. Une valeur incompatible avec le type attendu peut échouer à la validation.

S'il s'agit d'un budget, d'une quantité ou d'un numberValue d'API, remontez cette valeur jusqu'à la soumission. S'il s'agit d'un numéro de ligne ou d'un identifiant, mappez le bon identifiant. Ne convertissez pas une autre réponse pour compenser un mauvais mappage.

Sélectionnez la réponse scalaire dans toute collection de question. Une collection contenant libellé et réponse n'est pas le nombre de la réponse. Un choix comme 10k+ représente une catégorie, pas un montant exact.

Pour le diagnostic, Tools › Set variable peut rendre la valeur convertie visible avant une écriture. Placez-le après les contrôles d'entrée. Si la conversion échoue, les modules suivants ne peuvent pas inspecter une sortie qui n'a jamais été produite.

2. Déclarer le format avant la formule

Décidez ce que le formulaire accepte :

Contrat d'entréeExempleValeur numérique attendue
Point décimal, sans groupement1234.561234.56
Virgule décimale, sans groupement1234,561234.56
Groupement américain et point décimal1,234.561234.56
Points de groupement et virgule décimale1.234,561234.56
Espaces de groupement et virgule décimale1 234,561234.56

Ce sont des exemples déclarés, pas des règles pour deviner la locale d'un visiteur. 1,234 peut signifier mille deux cent trente-quatre ou une quantité décimale. Demandez une valeur numérique non ambiguë ou appliquez le contrat explicite du formulaire.

Enregistrez la devise séparément. Retirer $ ou € ne convertit pas une devise dans une autre. Définissez aussi si les négatifs, décimales et zéro sont autorisés. Un parsing réussi n'est que la première validation.

3. Utiliser parseNumber() pour un texte numérique simple

Make documente parseNumber(number; decimal separator) dans sa référence mathématique. Utilisez le séparateur du format reçu :

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

Pour du texte mappé, sélectionnez le véritable jeton de réponse. Les exemples suivants emploient 1.amount comme jeton illustratif, pas comme chemin garanti de votre formulaire :

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

Utilisez cette expression seulement pour un format à point décimal, sans devise ni groupement. Si le déclencheur fournit déjà un Number approprié, mappez ce nombre directement.

Gardez formatNumber() pour l'affichage dans un e-mail ou Slack. Une chaîne comme 1,234.56 n'est pas identique à une valeur numérique. Créez l'affichage séparément après avoir validé l'écriture numérique.

4. Normaliser un groupement et une devise connus

Pour un texte validé au format américain, retirez les virgules de groupement et parsez le point décimal :

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

Pour des points de groupement et une virgule décimale validés :

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

Pour un groupement par espaces ordinaires avec virgule décimale :

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

Le drapeau g remplace toutes les occurrences du caractère de groupement. trim() retire les espaces extérieurs. Syntaxe et remplacement par expression régulière figurent dans les fonctions texte et binaires.

Ne combinez pas ces règles en une formule qui retire tous les séparateurs. Supprimer la virgule de 1234,56 change le montant. Ne retirez pas non plus tous les caractères non numériques : le séparateur décimal et le signe négatif peuvent disparaître.

Pour un formulaire autorisant explicitement un symbole dollar avec un montant américain :

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

Testez $1,234.56 et $ 1,234.56. N'appliquez pas cette règle aux devises mélangées, à « environ » ou à des symboles placés arbitrairement. Préférez deux champs distincts pour montant et devise.

5. Traiter les valeurs vides avant conversion

Choisissez une politique et configurez la route :

  1. Montant obligatoire : bloquez l'écriture si la réponse manque. Corrigez la validation du formulaire ou placez le dossier en révision.
  2. Montant facultatif : conservez l'absence selon le comportement du champ cible. Ne parsez pas une chaîne vide comme un montant. Les modules de mise à jour compatibles ignorent généralement les valeurs vides ; erase sert à effacer volontairement un champ. Vérifiez le module précis.
  3. Zéro par défaut : utilisez-le seulement si une réponse omise signifie réellement zéro selon la règle métier.

Pour la troisième politique, avec point décimal sans devise ni groupement :

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

La référence des fonctions générales décrit ifempty() comme une valeur de remplacement pour une entrée vide. Ce n'est pas un gestionnaire d'exception. Un TBD présent doit encore être rejeté ou vérifié.

Placez le contrôle du vide avant le module contenant parseNumber(). Un filtre après une conversion en échec arrive trop tard.

Erreurs courantes

Sheets accepte la valeur, mais le module suivant échoue

Google Sheets › Add a Row peut enregistrer un montant visible sans prouver son type pour la suite. Inspectez le bundle lu depuis la feuille et l'entrée du prochain module. Parsez à la frontière qui exige un nombre.

Le budget est 10k+

C'est un libellé de plage. Mappez-le vers une catégorie si le destinataire attend une catégorie. Pour un budget numérique exact, recueillez un montant exact. Ne transformez pas « au moins » en promesse précise.

Les virgules fonctionnent dans un formulaire mais pas l'autre

Comparez les contrats d'entrée. Une virgule de groupement n'est pas une virgule décimale. Gardez des règles séparées ou adoptez un format commun non ambigu.

Un montant avec espaces échoue encore

Vérifiez le caractère entre groupes. Espace ordinaire, insécable et espace fine sont différents. / /g vise les espaces ordinaires uniquement. Reproduisez le texte exact, puis contraignez le formulaire ou normalisez le séparateur autorisé.

Le parsing réussit, mais l'API refuse le montant

Vérifiez la sérialisation et les contraintes du champ. Un numberValue de Google Sheets attend un nombre JSON comme 1234.56, pas la chaîne "1234.56" ; voir ExtendedValue. Pour batchUpdate, consultez [Invalid requests[0] 400](https://flowpaja.com/guides/make-google-docs-sheets-invalid-requests-400/).

Retry produit la même erreur

Une réponse invalide inchangée reste invalide. Corrigez l'entrée ou la conversion avant de réessayer. La référence de dépannage cite les types et fonctions invalides parmi les causes de DataError. Ne sautez pas l'écriture pour annoncer ensuite que le montant a été enregistré.

Crédits par exécution

Avec un déclencheur ordinaire et une écriture standard, deux modules exécutés donnent une estimation de deux crédits. Les fonctions de mappage en ligne n'ajoutent pas une exécution de module distincte. Diagnostics, recherches et reprises changent le total. Comparez au véritable historique ; voir Make Credits.

Tests

Utilisez des montants fictifs dans une destination jetable. Notez texte d'origine, format déclaré, valeur obtenue et type cible pour chaque cas :

  1. 1234.56 avec la règle à point décimal.
  2. 1234,56 avec la règle à virgule décimale.
  3. 1,234.56 et 1,234,567.89 avec groupement américain.
  4. 1.234,56 avec points de groupement et virgule décimale.
  5. $ 1,234.56 uniquement dans la route dollar.
  6. Vide, espaces, zéro et TBD séparément : vérifier politique d'absence et rejet.
  7. Un négatif autorisé et une valeur hors des limites du destinataire.
  8. Un guillemet ou une collection de réponse entière : aucun ne doit devenir discrètement un nombre plausible.

Inspectez l'entrée du module final, pas seulement un aperçu formaté. Le test échoue si une absence devient un zéro inventé, si la grandeur d'un décimal change ou si une devise disparaît sans conservation de son sens.

Appliquer la même rigueur aux prospects

Pour les prospects Google Forms vers HubSpot et Slack, consultez Lead Router de Flowpaja, 19 USD. Sa page décrit une limitation de mappage des options de budget. C'est un flux Google Forms distinct, pas un parseur universel de montants libres.

Dans Typeform, une option de budget élevé peut déclencher une alerte Slack. Traitez cette option comme une catégorie convenue, pas comme un montant exact deviné.

Pas encore de compte ? Créer un compte Make gratuit: affiliate link. Flowpaja peut recevoir une commission sans frais supplémentaires pour vous.

FAQ

Comment convertir une réponse en nombre ?
Utilisez parseNumber() avec le séparateur déclaré. Normalisez uniquement les caractères de groupement et de devise autorisés, puis mappez le nombre obtenu.
Puis-je deviner ce que signifie 1,234 ?
Non. Déclarez le format ou recueillez un montant non ambigu. Une conversion réussie vers la mauvaise grandeur reste une erreur de données.
Un budget vide doit-il devenir zéro ?
Seulement si c'est le sens convenu. Sinon, rejetez l'absence obligatoire ou conservez l'absence facultative. « Inconnu » et « aucun budget » sont différents.
ifempty() intercepte-t-il un texte numérique invalide ?
Non. Il remplace une valeur vide, sans réparer TBD ni déterminer le format voulu par l'expéditeur.

Toujours bloqué ?

Envoie le blueprint exporté et le texte d’erreur à notre service de réparation Make sur Fiverr. Aucun identifiant demandé.

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 et Webflow sont des marques de leurs propriétaires. Flowpaja est indépendante et non affiliée.