Errores comunes con fórmulas

Descubre más sobre los errores comunes que puedes encontrar con las fórmulas en Notion y cómo puedes solucionarlos 🔨

Si no sabes cómo corregir los errores de tu fórmula, la IA de Notion puede ayudarte. Descubre más aquí →
Si no tienes acceso a una base de datos de referencia, las fórmulas no podrán calcularse de forma fiable. Esto se debe a que las fórmulas requieren acceso a la base de datos de origen y sus configuraciones de propiedades.
Cómo solucionarlo
Asegúrate de tener acceso a todas las páginas y bases de datos a las que se hace referencia en tu fórmula dentro de tu botón o automatización de bases de datos.
A diferencia de las propiedades de las fórmulas en las bases de datos, las fórmulas en las automatizaciones esperan un tipo de devolución específico de las fórmulas (por ejemplo: fecha, texto, número, persona). De lo contrario, la automatización no se guardará y ejecutará correctamente.
Cómo solucionarlo
Asegúrate de que la fórmula devuelva el tipo de valor correcto. Por ejemplo, si se escribe una fórmula para establecer el valor de una propiedad Persona de una página, la fórmula debe devolver un usuario o una lista de usuarios, no una fecha. Como alternativa, si evalúas una condición específica en una propiedad de tipo de matriz (por ejemplo, selección múltiple), asegúrate de usar .includes en lugar de == en tu declaración if().
Una causa común de este error es usar un tipo diferente para representar un valor vacío. Por ejemplo, en una fórmula como if(Date, Date.dateAdd(1, “día”), ""), el tipo de retorno es desconocido porque podría ser fecha o texto (debido a ""). Esto se puede solucionar usando empty() para representar valores vacíos, por lo que la fórmula corregida sería if(Date, Date.dateAdd(1, "día"), empty()).
Las fórmulas de Notion solo pueden tener 15 capas de profundidad. Cada vez que una fórmula hace referencia a otra fórmula o rollup, agrega una capa. Esto se aplica incluso si la fórmula está en una base de datos diferente.
Cuando se alcance este límite, Notion mostrará un mensaje de error.
Cómo solucionarlo
Para simplificar tu configuración, combina fórmulas y rollups innecesarios en menos propiedades. Busca lugares donde varias fórmulas hagan cosas similares e intenta fusionarlas en una sola.
Si las variables personalizadas se definen dentro de la misma acción de automatización, no pueden hacer referencia entre sí.
Por ejemplo, si define var1 y var2 en la misma acción, var2 no podrá usar var1 en su definición.
Cómo solucionarlo
Define cada variable en su propia acción separada (crea la primera variable, agrega una nueva acción a tu automatización y define la siguiente variable por separado). Esto garantiza que cada variable se reconozca correctamente.
Hoy en día, las variables definidas en una automatización no se pueden usar para filtrar páginas en bases de datos sobre las que desea que actúe la automatización (por ejemplo, "Editar páginas que coinciden con el filtro contiene una variable").
Cómo solucionarlo
Para definir una variable personalizada como
Esta páginaescribePágina de activaciónen el cuadro de fórmula.Agrega una acción
Editar páginas eny selecciona la variable personalizada del paso 1 como tu objetivo.
Cuando se trabaja con relaciones, rollup y propiedades de persona en fórmulas, las fórmulas devuelven una lista de páginas o personas. Para hacer referencia a las propiedades dentro de la relación, deberás definir el primer elemento; de lo contrario, la automatización se pausará. También puedes encontrar este problema al crear una fórmula que use la función map para una propiedad de relación.
Cómo solucionarlo
Usa funciones como .first() o .at(0) para obtener el primer elemento, o recorre la lista de páginas con funciones como .map() , .filter() , .every(), .some() , .find().
Si una fórmula encuentra inesperadamente un valor vacío (más comúnmente un valor de fecha o persona), la automatización recibirá un error y se pausará de forma automática.
Cómo solucionarlo
Utiliza if o ifs para comprobar que una propiedad que se está utilizando tiene un valor. Por ejemplo, en lugar de Date.dateAdd(1, "día"), es preferible usar if(Date, Date.dateAdd(1, "día"), empty()). Esto garantiza que dateAdd solo se ejecute cuando el valor de Date esté presente y le indica explícitamente a la automatización que borre la propiedad que se está actualizando cuando Date no se haya rellenado. Como alternativa, puedes establecer una vista con un filtro que asegure que el valor de la propiedad en la que estás operando exista, y configurar la automatización para que solo se ejecute en las páginas de esa vista.
Si tu fórmula no funciona como esperabas, es posible que se deba a un error de sintaxis, como paréntesis faltantes, operadores incorrectos o funciones no compatibles. Para un desglose completo de la sintaxis de la fórmula, lee este artículo →