formbasedocs
Ir a la appApp

Creación de formularios

Lógica condicional

Los bloques de lógica reaccionan a lo que introduce un respondente: muestran u ocultan cualquier bloque, saltan a páginas, bloquean el envío o calculan valores. Combina reglas simples para crear ramificaciones sofisticadas sin código.


Qué puede hacer la lógica

Cada bloque de lógica tiene una o más reglas. Cada regla combina un grupo de condiciones (¿cuándo debe activarse?) con una o más acciones (¿qué debe ocurrir?). Hay nueve tipos de acciones disponibles:

AcciónQué hace
ShowMuestra un bloque oculto — una pregunta, párrafo, imagen u opción — cuando se cumplen las condiciones.
HideOculta un bloque visible — una pregunta, párrafo, imagen u opción — cuando se cumplen las condiciones.
Make requiredHace que un campo sea obligatorio de forma dinámica en ciertas rutas.
Make optionalRelaja la validación de un campo obligatorio cuando se cumplen las condiciones.
Set next pageSalta a una página específica — así es como construyes ramificaciones
Calculate valueCalcula totales, puntuaciones o precios a partir de otras respuestas.
Set payment amountEstablece, aumenta o reduce el precio de un campo Payment según las respuestas.
Prevent navigation to next pageImpide que el respondente avance, con un mensaje opcional que explica por qué.
Prevent submit formImpide el envío hasta que se cumplan las condiciones (p. ej. términos aceptados), con un mensaje opcional que explica por qué.

Añadir un bloque de lógica

Un bloque de lógica es un elemento del documento — se coloca en el lienzo entre preguntas, igual que un encabezado o una imagen. Puedes colocarlo en cualquier lugar: entre dos campos en la misma página, al inicio de una página o justo antes de un salto de página.

  1. 1

    Abre el menú de barra

    Haz clic en una línea vacía del lienzo y escribe /. Aparece el selector de bloques.

  2. 2

    Busca "Logic"

    Escribe logic para filtrar. Selecciona Logic de la categoría Layout. Aparece un nuevo bloque de lógica en el cursor.

  3. 3

    Añade una regla

    El bloque se lee When … Do …. Cada regla tiene un grupo de condiciones y una o más acciones.

  4. 4

    Define las condiciones

    Elige un campo, selecciona un operador y establece un valor. Añade otra condición, o añade un conjunto de condiciones para anidar un nivel más profundo.

  5. 5

    Elige las acciones

    Selecciona un tipo de acción (Show, Hide, Make required, Set next page, etc.) y elige el destino: una pregunta, un bloque, una opción o una página.

  6. 6

    Añade más reglas (opcional)

    Un mismo bloque de lógica puede contener varias reglas. Cada regla es independiente: tiene sus propias condiciones y sus propias acciones.

Condiciones

Las condiciones son el lado When de una regla. Cada condición elige un campo, aplica un operador y a menudo compara con un valor. El selector de campos agrupa lo que puedes observar: Questions, Hidden Fields, Calculated Fields y Metadata (hoy en día, el idioma del respondente).

All o Any

En cuanto una regla tiene dos o más condiciones, aparece un interruptor en la parte superior de la sección When:

  • All — todas las condiciones deben ser verdaderas para que la regla se active. Las filas se leen como “y”.

  • Any — basta con que una condición sea verdadera. Las filas se leen como “o”.

Conjuntos de condiciones

Add a set of conditions anida un segundo grupo dentro del primero, un nivel de profundidad, con su propio interruptor All/Any. Esto cubre lógica compuesta como “plan is Pro y (country is Norway o country is Sweden)”. Un conjunto solo contiene condiciones — no puede contener otro conjunto.

Mantén la legibilidad

Si un bloque de lógica te parece demasiado complejo, considera dividir la lógica en varios bloques o reestructurar las páginas de tu formulario.

Referencia de operadores

La lista de operadores la decide el campo que elegiste — solo ves los que ese campo admite. Debajo, cada encabezado nombra el conjunto exacto.

Texto (Text Input, Text Area y campos calculados de texto)

OperadorDescripción
isEl valor coincide, sin tener en cuenta mayúsculas ni espacios al principio o al final
is notEl valor no coincide
containsEl valor incluye el texto especificado
does not containEl valor no incluye el texto especificado
starts withEl valor comienza con el texto especificado
ends withEl valor termina con el texto especificado
is emptyEl campo no tiene valor
is not emptyEl campo tiene algún valor

Toda comparación de texto ignora mayúsculas y minúsculas y los espacios al principio y al final, así que x@Competitor.com termina en @competitor.com.

Los demás campos de tipo texto ofrecen un conjunto más reducido, así que elige el tipo que se ajuste a cómo necesitas comparar:

CampoOperadores que ofrece
Emailcontains, does not contain, is, ends with, is empty, is not empty
Website URLcontains, does not contain, is, starts with, ends with, is empty, is not empty
Phone Numberis, starts with, contains, is empty, is not empty
Hidden field (text)El conjunto completo de texto de arriba

Numérico (Number, Star Rating, escala lineal, campos ocultos y calculados numéricos)

OperadorDescripción
isEl valor coincide exactamente
is notEl valor no coincide
is greater thanEl valor está por encima del número especificado
is less thanEl valor está por debajo del número especificado
is greater than or equal toEl valor es igual o mayor al número especificado
is less than or equal toEl valor es igual o menor al número especificado
is betweenEl valor cae dentro de un rango (inclusivo)
is emptyEl campo no tiene valor
is not emptyEl campo tiene algún valor

Checkboxes y picture choice

OperadorDescripción
has checked any ofAl menos una de las opciones especificadas está marcada
has not checked any ofNinguna de las opciones especificadas está marcada
has checked all ofTodas las opciones especificadas están marcadas
has checked exactlyLas opciones marcadas coinciden exactamente con el conjunto especificado
is emptyNo hay opciones seleccionadas
is not emptyAl menos una opción está seleccionada
OperadorDescripción
isLa opción seleccionada coincide exactamente
is notLa opción seleccionada no coincide
is emptyNada seleccionado
is not emptyHay una opción seleccionada

Toggle Switch (y campos calculados booleanos)

OperadorDescripción
is onEl interruptor está activado
is offEl interruptor está desactivado

Signature

OperadorDescripción
is signedSe ha dibujado una firma
is not signedNo se ha dibujado ninguna firma

File Upload

OperadorDescripción
has fileSe ha subido al menos un archivo
has no fileNo se ha subido ningún archivo

Date Picker y Time Picker

OperadorDescripción
isCoincidencia exacta
is notNo coincide
is beforeAntes de la fecha/hora especificada
is afterDespués de la fecha/hora especificada
is betweenCae dentro de un rango de fecha/hora
is emptyNo se ha seleccionado ningún valor
is not emptyTiene un valor

Ranking

OperadorDescripción
option is ranked firstLa opción especificada está en la primera posición
option is ranked lastLa opción especificada está en la última posición
option is ranked aboveLa opción especificada está clasificada por encima de otra opción

Matrix / Grid

OperadorDescripción
row answer isUna fila específica tiene la respuesta indicada
row answer is notUna fila específica no tiene la respuesta indicada
row is answeredUna fila específica ha sido respondida
row is not answeredUna fila específica no ha sido respondida

Payment

OperadorDescripción
amount equalsEl importe del pago coincide exactamente
amount is greater thanEl importe del pago está por encima del valor especificado
amount is less thanEl importe del pago está por debajo del valor especificado
is completedEl pago se procesó correctamente
is not completedEl pago aún no se ha procesado

Campos que no puedes observar

Schedule appointment y Documents pueden ser destinos de visibilidad pero nunca fuentes de condición. Una reserva se adjunta a la respuesta en lugar de almacenarse como una respuesta ordinaria, y un bloque Documents no recoge ninguna respuesta. Usa respuestas de calificación anteriores para mostrar u ocultar cualquiera de los dos. Toda pregunta Schedule appointment visible debe reservarse antes del envío; una oculta no lo bloquea. Consulta Programación de Cal.com con lógica.

Destino

Cada acción necesita un destino — el elemento sobre el que actúa. El destino depende del tipo de acción:

Tipo de acciónDestinoEjemplo
Show / HideCualquier bloque — una pregunta, párrafo, imagen, contenedor de diseño o una opción específica dentro de un campo de selecciónMostrar un párrafo "¡Buena elección!" cuando se elige una opción
Make required / Make optionalUna preguntaRequerir "Restricciones alimentarias" solo para asistentes presenciales
Set next pageUna páginaSaltar a la página 5 para clientes recurrentes
Calculate valueUn campo calculadoSumar tres puntuaciones de Star Rating en un total
Set payment amountUn campo PaymentAumentar el precio en 15 cuando "Entrega urgente" está activado
Prevent navigation to next page / Prevent submit formNo se necesita destino (solo el mensaje)Impedir el envío hasta que el interruptor de términos esté activado

Show y Hide van más allá de las preguntas. Apunta a cualquier bloque del lienzo — un párrafo, encabezado, imagen o contenedor de diseño — para mostrar una nota que estaba oculta por defecto u ocultar contenido cuando deja de ser relevante. También pueden apuntar a opciones individuales dentro de un campo de selección, no solo a la pregunta completa. Primero oculta un bloque desde el menú del bloque y luego escribe una regla para mostrarlo.

Cómo se combinan varias reglas

Cada regla es independiente, y todas se evalúan a la vez. Las reglas se leen de arriba abajo, a través de los bloques de lógica, en el orden del documento. Cómo se combinan varias reglas sobre un mismo destino depende de la acción.

AcciónCómo se combinan varias reglas
Show / Hide, Make required / Make optionalSolo una regla cuyas condiciones coincidan reclama el destino, así que las reglas se acumulan como un or: el bloque se muestra si alguna regla coincidente lo muestra. Una regla que no coincide aplica su opuesto pero no reclama nada, así que una regla coincidente posterior sigue ganando.
Set next pageUn salto actúa cuando el respondente pulsa Siguiente en la página con las preguntas que la regla lee, y en ninguna otra página. De las reglas que actúan ahí, gana la primera que coincide. Una regla que solo lee campos ocultos o calculados actúa en cualquier página, pero solo salta hacia adelante.
Calculate valueCada regla coincidente se ejecuta, en orden, sobre el valor en curso. Nada reclama nada.
Set payment amountSolo una regla "set to" cuyas condiciones coinciden reclama el precio, así que la primera que coincide lo posee y varias reglas "set to" pueden fijar un precio por nivel. "increase by" y "decrease by" nunca reclaman — se acumulan en orden sobre el importe en curso.
Ninguna regla coincideEl bloque vuelve a su estado predeterminado: oculto si lo estaba por defecto, visible en caso contrario.

Así puedes apuntar varias reglas a un mismo bloque sin que se peleen entre ellas. Un formulario de comentarios tiene una pregunta de Radio Buttons — “¿En qué podemos ayudarte?” — con cuatro opciones, y un campo de email “¿Podemos contactarte?” oculto por defecto. Cuatro reglas muestran con Show ese mismo campo de email (además de su propia pregunta de seguimiento) según su opción. El campo de email aparece sin importar qué opción se elija, y permanece oculto solo si ninguna coincide.

A menudo basta una sola regla

Para mostrar un bloque ante varias respuestas, una regla con Any y una condición por respuesta — o una única condición is not empty para cubrirlas todas — es más fácil de leer que cuatro reglas. Recurre a varias reglas cuando cada opción también necesite su propio seguimiento distinto.

Reglas en conflicto

Cuando dos reglas discrepan sobre el mismo destino — una hace Show en un bloque mientras otra hace Hide, o una hace un campo obligatorio mientras otra lo hace opcional — y ambas condiciones coinciden a la vez, gana la primera regla. La regla posterior que pierde se marca en el editor: “This action never applies — an earlier rule already controls its target. Rule order decides: the first rule wins.”

Una excepción de orden: una regla cuya condición lee un campo calculado se ejecuta después de la regla que lo escribe, sea cual sea el orden del documento, así que una puntuación siempre se calcula antes de que algo se ramifique según ella. Las reglas que se escriben unas a otras en bucle en sus campos calculados generan una advertencia de publicación que nombra la cadena — rompe el bucle para que los valores se resuelvan de forma predecible.

Oculto gana a obligatorio

Una pregunta que termina oculta nunca es obligatoria, ya sea porque una regla la ocultó o porque se ocultó desde el menú del bloque sin ninguna regla que la revele. El asterisco desaparece y el envío no se bloquea — de lo contrario, un respondente podría quedarse bloqueado fuera de un formulario por un campo que no puede ver.

Patrones comunes

Mostrar una pregunta de seguimiento basada en una respuesta anterior

Una encuesta de satisfacción pregunta “¿Cómo valorarías tu experiencia?” con un Star Rating del 1 al 5. Un bloque de lógica debajo usa la condición “rating is less than or equal to 3” con la acción Show apuntando a un campo Text Area que pregunta “¿Qué podríamos mejorar?” Los respondentes que puntúan 4 o 5 nunca ven la pregunta de seguimiento.

Mostrar un mensaje cuando se elige una opción

Un formulario de registro tiene una pregunta de Radio Buttons: “¿Qué plan se adapta mejor a ti?” Debajo hay un párrafo — “¡Buena elección! Nuestro plan Pro incluye soporte prioritario.” — oculto por defecto con Hide del menú del bloque. Un bloque de lógica lo muestra: si plan is “Pro”, Show el párrafo. La nota de ánimo aparece solo para quienes eligen Pro y permanece oculta para los demás.

Ramificar a diferentes páginas según una selección

Un formulario de registro para un evento tiene una pregunta de Radio Buttons: “¿Asistes en persona o de forma remota?” Siguen dos bloques de lógica:

  • Regla 1 — condición: attendance is “In person”, acción: Set next page “Venue details”.

  • Regla 2 — condición: attendance is “Remote”, acción: Set next page “Streaming setup”.

  • Regla 3 — condición: arrival time is not empty, acción: Set next page “Confirmation”. Arrival time es una pregunta obligatoria en “Venue details”.

Las reglas 1 y 2 leen la pregunta attendance, así que actúan cuando el respondente sale de su página. Después, Siguiente continúa en el orden de las páginas. La regla 3 lee una pregunta en “Venue details”, así que actúa cuando el respondente sale de esa página. Quienes asisten en persona se saltan entonces “Streaming setup”. Cada ruta recoge solo la información relevante, y ambas convergen en una página compartida de “Confirmation”.

Calcular una puntuación y ramificar según ella

Un formulario de calificación de leads tiene tres preguntas de Star Rating: presupuesto, plazo y autoridad. Un campo calculado llamado “Lead score” usa un bloque de lógica con la acción Calculate value para sumar el valor de cada valoración. Un segundo bloque de lógica lee el campo calculado: si Lead score is greater than 12, Set next page “Priority follow-up”; de lo contrario, salta a la página de confirmación estándar.

Reaccionar al valor de un campo oculto

La URL rellena un campo oculto llamado plan (p. ej. ?plan=enterprise). Un bloque de lógica comprueba: si plan is “enterprise”, Show la pregunta “Dedicated account manager” y Make required el campo “Company size”. Los respondentes del nivel gratuito nunca ven estas preguntas.

Bloquear el envío según un total calculado

Un formulario de pedido calcula un total acumulado. Un bloque de lógica usa la condición: si Order total is less than 10, Prevent submit form. El respondente no puede enviar el formulario hasta que se alcance el umbral mínimo del pedido.

Mientras una regla de prevención está activa, el botón se muestra como no disponible y se le dice al respondente por qué. Escribe el motivo en Message shown to respondent en la fila de la acción — “Your order must total at least 10” — para que sepa qué respuesta cambiar. Déjalo vacío y el formulario recurre a “This form cannot be submitted with the current answers.” (o “You cannot continue to the next page with the current answers.” para un bloque de navegación). Cuando varias reglas de prevención se activan a la vez, la primera que lleva un mensaje aporta el texto.

Prueba la lógica con Preview

Después de configurar tus reglas, cambia a Preview en la barra de herramientas superior y rellena el formulario como lo haría un respondente. La lógica se activa en tiempo real en Preview, así puedes verificar cada rama, campo oculto y validación de bloqueo antes de publicar.

Próximos pasos