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 admitido | Ejemplo | Valor numérico previsto |
|---|---|---|
| Punto decimal, sin agrupación | 1234.56 | 1234.56 |
| Coma decimal, sin agrupación | 1234,56 | 1234.56 |
| Agrupación estadounidense y punto decimal | 1,234.56 | 1234.56 |
| Punto de agrupación y coma decimal | 1.234,56 | 1234.56 |
| Espacio de agrupación y coma decimal | 1 234,56 | 1234.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:
- Importe obligatorio: bloquea la escritura si falta la respuesta. Corrige la validación del formulario o envía el registro a revisión.
- 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;
erasepermite borrar un campo de forma deliberada. Compruébalo en el módulo concreto. - 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:
1234.56con la regla de punto decimal.1234,56con la regla de coma decimal.1,234.56y1,234,567.89con agrupación estadounidense.1.234,56con punto de agrupación y coma decimal.$ 1,234.56solo en la ruta del símbolo de dólar.- Vacío, espacios, cero y
TBDpor separado: comprueba ausencia y rechazo. - Un negativo permitido y un valor fuera del rango del destino.
- 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.