Errores comunes en las 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 manera fiable, ya que necesitan acceso a la base de datos de origen y a los ajustes de sus propiedades.
Cómo solucionarlo
Necesitarás acceso a todas las páginas y bases de datos que se incluyen en la fórmula del botón o la automatización de la base de datos.
A diferencia de las propiedades de las fórmulas en las bases de datos, con las fórmulas en las automatizaciones se espera un resultado específico (por ejemplo: una fecha, un texto, un número o una persona). De lo contrario, la automatización no se guardará ni se ejecutará correctamente.
Cómo solucionarlo
Asegúrate de que la fórmula devuelva el tipo de valor correcto. Por ejemplo, si escribes 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 «array» (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, “day”), ""), 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, "day"), 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, se añade una capa, 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 la configuración, combina fórmulas y rollups innecesarios en menos propiedades. Busca lugares donde varias fórmulas cumplan tareas 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 unas a otras.
Por ejemplo, si defines var1 y var2 en la misma acción, var2 no podrá usar var1 en su definición.
Cómo solucionarlo
Define cada variable en una acción independiente (crea la primera variable, añade una nueva acción a la automatización y define la siguiente variable por separado). Así te asegurarás de que cada variable se reconozca correctamente.
Actualmente, las variables definidas en una automatización no se pueden usar para filtrar páginas en bases de datos sobre las que quieras que actúe la automatización (por ejemplo, «Editar páginas que coinciden con el filtro Contiene la variable»).
Cómo solucionarlo
Para definir una variable personalizada como
Esta página, escribePágina disparadoraen el recuadro de la fórmula.Añade una acción
Editar páginas eny selecciona la variable personalizada del paso 1 como objetivo.
Cuando estés trabajando con relaciones, rollups y propiedades de persona en fórmulas, las fórmulas devolverán 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 esta incidencia al crear una fórmula que use la función de mapa 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() o .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, "day"), es preferible usar if(Date, Date.dateAdd(1, "day"), 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 la falta de algún paréntesis, operadores incorrectos o funciones no compatibles. Para consultar un desglose completo de la sintaxis de la fórmula, lee este artículo →