Guía · Make.com · Make

Make: corrige Invalid number en respuestas de formularios

Algunos enlaces son enlaces de afiliado. Si te registras mediante ellos, Flowpaja puede recibir una comisión sin coste adicional para ti.

By Flowpaja · Por Flowpaja · Publicado el

Esta guía contiene un enlace de afiliado, marcado como “enlace de afiliado”.

Esta guía también está disponible en: English · Deutsch · Español · Français

Make: corrige Invalid number en respuestas de formularios
Aviso: Todo en esta guía funciona con Make.com y las apps conectadas. Al final mencionamos plantillas opcionales y un servicio de reparación. Fuentes: Make math functions.

Respuesta breve: Busca estos fragmentos en el módulo que falla:

DataError: Invalid number in parameter
Value must be a number

Abre la ejecución fallida e inspecciona la entrada real del parámetro. Una respuesta puede parecer numérica en el formulario y llegar como texto, importe con formato monetario, valor vacío u objeto completo de respuesta. Cada caso necesita una corrección distinta.

Conserva la respuesta original junto al valor convertido durante las pruebas. Si la conversión cambia 1,234 a una magnitud incorrecta, un módulo verde no convierte el resultado en correcto.

1. Localiza el parámetro que espera un número

Empieza por el módulo que falla, no por todas las preguntas del formulario. Anota el nombre del parámetro e inspecciona el tipo del valor mapeado. La referencia de tipos de Make distingue Number, Text y Collection. La validación falla cuando el valor no corresponde al tipo esperado.

Si el parámetro es presupuesto, cantidad o numberValue de una API, sigue ese valor hasta el envío. Si es un índice de fila u otro identificador, mapea el identificador correcto. No conviertas una respuesta ajena para compensar un mapeo equivocado.

Selecciona la respuesta escalar dentro de cualquier colección de pregunta. Una colección con etiqueta y respuesta no es el número de la respuesta. Una opción como 10k+ es una categoría, no un importe exacto.

Para diagnosticar, Tools › Set variable puede mostrar el valor convertido antes de escribir en el destino. Colócalo después de las comprobaciones de entrada. Si falla la conversión, los módulos posteriores no pueden inspeccionar una salida que nunca se produjo.

2. Declara el formato antes de escribir una fórmula

Decide qué acepta el formulario:

Formato admitidoEjemploValor numérico previsto
Punto decimal, sin agrupación1234.561234.56
Coma decimal, sin agrupación1234,561234.56
Agrupación estadounidense y punto decimal1,234.561234.56
Punto de agrupación y coma decimal1.234,561234.56
Espacio de agrupación y coma decimal1 234,561234.56

Son ejemplos declarados, no reglas para adivinar la configuración regional de cualquier visitante. 1,234 puede significar mil doscientos treinta y cuatro o una cantidad decimal. Pide una entrada numérica inequívoca o aplica el contrato explícito del formulario.

Registra la moneda por separado. Quitar $ o € no convierte una moneda en otra. Decide también si se permiten negativos, decimales y cero. El análisis correcto es solo la primera comprobación.

3. Usa parseNumber() para texto numérico sencillo

Make documenta parseNumber(number; decimal separator) en su referencia matemática. Utiliza el separador del formato recibido:

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

Para texto mapeado, selecciona el token real de la respuesta. Los siguientes ejemplos usan 1.amount como token ilustrativo, no como ruta garantizada de tu formulario:

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

Úsalo solo para un contrato de punto decimal sin moneda ni agrupación. Si el disparador ya proporciona un Number adecuado, mapea ese Number directamente.

Reserva formatNumber() para mostrar el resultado en correo o Slack. Un texto como 1,234.56 no es lo mismo que un valor numérico. Crea la versión de presentación por separado, después de comprobar la escritura numérica.

4. Normaliza agrupación y moneda conocidas

Para texto validado como agrupación estadounidense, elimina las comas de agrupación y analiza el punto decimal:

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

Para texto validado con puntos de agrupación y coma decimal:

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

Para agrupación validada con espacios ordinarios y coma decimal:

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

La bandera g reemplaza todas las coincidencias del carácter de agrupación. trim() quita espacios exteriores. Consulta la sintaxis y las expresiones regulares en las funciones de texto y binario.

No combines las reglas en una fórmula que elimine todos los separadores. Quitar la coma de 1234,56 cambia el importe. Tampoco elimines todos los caracteres no numéricos: perderías el separador decimal y posiblemente el signo negativo.

Si el formulario admite expresamente un símbolo de dólar con importes estadounidenses:

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

Prueba $1,234.56 y $ 1,234.56. No uses la regla para monedas mezcladas, «aproximadamente» o símbolos colocados arbitrariamente. Es preferible separar importe y moneda en dos campos.

5. Trata los vacíos antes de convertir

Elige una política y configura la ruta:

  1. Importe obligatorio: bloquea la escritura si falta la respuesta. Corrige la validación del formulario o envía el registro a revisión.
  2. Importe opcional: conserva la ausencia según el comportamiento del campo de destino. No analices una cadena vacía como importe. Los módulos de actualización compatibles suelen omitir valores vacíos; erase permite borrar un campo de forma deliberada. Compruébalo en el módulo concreto.
  3. Cero predeterminado: úsalo solo si cero es el significado real de una respuesta omitida.

Para la tercera política, con punto decimal sin moneda ni agrupación:

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

La referencia de funciones generales define ifempty() como sustitución de un valor vacío. No es un manejador de excepciones. Un TBD presente todavía necesita rechazo o revisión.

Coloca la comprobación de vacío antes del módulo que contiene parseNumber(). Un filtro después de una conversión fallida llega demasiado tarde.

Errores comunes

Sheets acepta el valor, pero falla el siguiente módulo

Google Sheets › Add a Row puede guardar un importe visible sin demostrar su tipo para el siguiente paso. Inspecciona el paquete leído de la hoja y la entrada del destino. Convierte en la frontera que espera un número.

El presupuesto es 10k+

Es una etiqueta de rango. Mápala a una categoría si eso espera el destino. Si se necesita un presupuesto exacto, recógelo como importe. No conviertas «como mínimo» en una promesa precisa.

Las comas funcionan en un formulario y fallan en otro

Compara sus formatos declarados. Una coma de agrupación no es una coma decimal. Mantén reglas distintas o cambia los formularios a un formato común e inequívoco.

Sigue fallando un importe con espacios

Comprueba el carácter entre grupos. Espacio ordinario, espacio no separable y espacio estrecho son distintos. / /g solo trata espacios ordinarios. Reproduce el texto exacto y limita el formulario o normaliza el separador específico admitido.

El análisis funciona, pero la API rechaza el importe

Revisa la serialización y los límites del campo. Un numberValue de Google Sheets necesita un número JSON como 1234.56, no el texto entre comillas "1234.56"; consulta ExtendedValue. Para batchUpdate, consulta [Invalid requests[0] 400](https://flowpaja.com/guides/make-google-docs-sheets-invalid-requests-400/).

Retry devuelve el mismo error

Una respuesta inválida sin cambios sigue siendo inválida. Corrige entrada o conversión antes de reintentar. La referencia de errores incluye tipos y funciones inválidos entre las causas de DataError. No omitas la escritura para después afirmar que el importe se guardó.

Créditos por ejecución

Con un disparador ordinario y una escritura estándar, dos módulos ejecutados dan una estimación de dos créditos. Las funciones de mapeo en línea no añaden una ejecución de módulo independiente. Diagnósticos, búsquedas y reintentos cambian la cuenta. Contrasta con el historial; consulta Make Credits.

Pruebas

Usa importes ficticios en un destino desechable. Registra texto original, formato declarado, resultado y tipo de destino para cada caso:

  1. 1234.56 con la regla de punto decimal.
  2. 1234,56 con la regla de coma decimal.
  3. 1,234.56 y 1,234,567.89 con agrupación estadounidense.
  4. 1.234,56 con punto de agrupación y coma decimal.
  5. $ 1,234.56 solo en la ruta del símbolo de dólar.
  6. Vacío, espacios, cero y TBD por separado: comprueba ausencia y rechazo.
  7. Un negativo permitido y un valor fuera del rango del destino.
  8. Una comilla o una colección completa de respuesta: ninguno debe convertirse silenciosamente en un número plausible.

Inspecciona la entrada del módulo final, no solo una vista formateada. La prueba falla si un vacío se vuelve un cero inventado, cambia la magnitud de un decimal o desaparece una moneda sin conservar su significado.

Aplica el mismo cuidado a los leads

Para leads de Google Forms hacia HubSpot y Slack, consulta Lead Router de Flowpaja, 19 USD. Su página explica una limitación del mapeo de opciones de presupuesto. Es un flujo separado de Google Forms, no un analizador universal de importes de texto libre.

En Typeform, una opción de presupuesto alto puede activar una alerta de Slack. Trata esa opción como categoría acordada, no como importe exacto adivinado.

¿Sin cuenta todavía? Crea una cuenta gratuita de Make: affiliate link. Flowpaja puede recibir una comisión sin coste adicional para ti.

FAQ

¿Cómo convierto una respuesta en número?
Usa parseNumber() con el separador declarado. Normaliza solo los caracteres de agrupación y moneda permitidos y mapea el número resultante.
¿Puedo adivinar qué significa 1,234?
No. Declara el formato o recoge un importe inequívoco. Una conversión exitosa a la magnitud equivocada sigue siendo un error de datos.
¿Un presupuesto vacío debe ser cero?
Solo si ese es el significado acordado. Si no, rechaza la ausencia obligatoria o conserva la opcional. «Desconocido» y «sin presupuesto» son estados distintos.
¿ifempty() captura texto numérico inválido?
No. Sustituye un valor vacío; no corrige TBD ni decide el formato que pretendía el remitente.

¿Sigue fallando?

Envía el blueprint exportado y el texto del error al servicio de reparación de escenarios Make en Fiverr. Sin pedirte inicios de sesión.

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 y Webflow son marcas de sus titulares. Flowpaja es independiente y no está afiliada ni respaldada por ellas.