Opción Múltiple
Presenta una lista de opciones para que el encuestado elija. Soporta selección única, selección múltiple, texto libre "Otro", aleatorización y orden alfabético. Cada elección puede llevar su propia imagen, video o ícono, y la propiedad layout alterna entre una lista vertical y una cuadrícula de tarjetas con imagen, de modo que este único tipo cubre tanto las opciones de texto simple como las basadas en imágenes.

Type identifier: multiple_choice
Propiedades
| Propiedad | Tipo | Descripción | Predeterminado |
|---|---|---|---|
choices | Choice[] | Array de opciones de elección. Cada elección tiene un id, label y un media opcional. | [] |
layout | string | Cómo se presentan las opciones: stacked (lista vertical, con miniaturas opcionales), blocks (cuadrícula de tarjetas con imagen), staggered (chips del tamaño del contenido que se ajustan en varias líneas) o grid (cuadrícula de columnas fijas). | stacked |
allowMultiple | boolean | Permitir al encuestado seleccionar más de una opción. | false |
allowOther | boolean | Mostrar una opción "Otro" con una entrada de texto libre donde el encuestado puede escribir una respuesta personalizada. | false |
randomize | boolean | Aleatorizar el orden de las opciones cada vez que se muestra la pregunta. | false |
alphabeticalOrder | boolean | Ordenar las opciones alfabéticamente. Se ignora si randomize está habilitado (randomize tiene precedencia). | false |
choiceSource | string | De dónde vienen las opciones: fixed usa choices; variable las carga desde una variable. Consulta Opciones desde una variable. | fixed |
Objeto de Elección
Cada elección en el array choices tiene:
| Campo | Tipo | Descripción |
|---|---|---|
id | string | Identificador único para esta elección. Usado en saltos lógicos y puntuación. |
label | string | El texto de visualización para la elección. |
media | QuestionMedia | Imagen, video o ícono opcional para esta elección. Establece media.display para controlar cómo se muestra — ver abajo. |
Medios de la Elección
Cualquier elección puede llevar sus propios medios. media.display decide cómo se ubican en la elección:
| Display | Descripción |
|---|---|
thumbnail | Una imagen pequeña junto a la etiqueta de la elección. |
background | La imagen llena la superficie de la elección, recortada para cubrirla. |
background-fit | La imagen llena la superficie de la elección pero se mantiene completa, con bandas contra el color de fondo de la elección. |
Los medios de la elección soportan los mismos tratamientos que los medios de la pregunta: filtros, tinte, bordes, punto focal y zoom. Consulta Visualización de Medios de la Elección para ver en qué se diferencian Fill y Fit y cuándo conviene usar cada uno.
Los medios de la elección son en lo que se convirtió el antiguo tipo de pregunta Elección con Imagen. Para crear una cuadrícula de tarjetas con imagen, usa Opción Múltiple con layout: "blocks" y asigna un objeto media a cada elección. Los formularios importados desde Typeform convierten las preguntas picture_choice a esta forma automáticamente.
Validación
Si required es true, el encuestado debe seleccionar al menos una opción antes de continuar.
Operadores de Salto Lógico
equals, not_equals, is_answered, is_not_answered
Cuando se usa equals o not_equals, el valor de comparación es el ID de la elección. Para preguntas de selección múltiple, equals verifica si el valor está entre los elementos seleccionados.
Formato de Respuesta
- Selección única (
allowMultiple: false): Un string (el ID de la elección seleccionada). - Selección múltiple (
allowMultiple: true): Un array de strings (los IDs de las elecciones seleccionadas).
Puntuación en Modo Cuestionario
Opción Múltiple es un tipo de pregunta puntuable en todos los modos de cuestionario:
- Knowledge Quiz: Establece
correctAnswers(array de IDs de elecciones correctas) ycorrectAnswerScore(puntos por respuesta correcta). - Lead Qualification: Establece
choiceScores(mapeo de ID de elección a valor de puntos). - Match Quiz: Establece
choiceOutcomes(mapeo de ID de elección a IDs de preguntas de pantalla final).
Los atajos de teclado están disponibles para la selección de opciones. Los encuestados pueden presionar teclas de letras (A, B, C, etc.) para seleccionar opciones, que aparecen como indicadores junto a cada elección.
Desplegable
Un menú desplegable para seleccionar de una lista de opciones. Soporta la misma configuración que Opción Múltiple pero muestra las opciones en un formato de desplegable compacto. El media por elección y el layout no aplican aquí: un desplegable siempre muestra sus opciones como texto simple.

Type identifier: dropdown
Propiedades
| Propiedad | Tipo | Descripción | Predeterminado |
|---|---|---|---|
choices | Choice[] | Array de opciones de elección. | [] |
allowMultiple | boolean | Permitir seleccionar múltiples opciones del desplegable. | false |
allowOther | boolean | Mostrar una opción "Otro" con entrada de texto libre. | false |
placeholder | string | Texto de marcador de posición mostrado antes de hacer una selección. | Ninguno |
randomize | boolean | Aleatorizar el orden de las opciones. | false |
alphabeticalOrder | boolean | Ordenar las opciones alfabéticamente. | false |
choiceSource | string | De dónde vienen las opciones: fixed usa choices; variable las carga desde una variable. Consulta Opciones desde una variable. | fixed |
Validación
Si required es true, el encuestado debe seleccionar al menos una opción.
Operadores de Salto Lógico
equals, not_equals, is_answered, is_not_answered
Formato de Respuesta
- Selección única: Un string (el ID de la elección seleccionada).
- Selección múltiple: Un array de strings (los IDs de las elecciones seleccionadas).
Puntuación en Modo Cuestionario
Desplegable es un tipo de pregunta puntuable. La configuración de puntuación es idéntica a Opción Múltiple.
Elección con Imagen
Elección con Imagen ya no es un tipo de pregunta independiente. Se fusionó con Opción Múltiple: ya no existe un identificador picture_choice que se pueda seleccionar.
Para crear lo mismo, usa una pregunta de Opción Múltiple con layout establecido en blocks y un objeto media en cada elección. Todo lo que hacía Elección con Imagen sigue disponible, además de los tratamientos que nunca tuvo: elecciones con video e íconos, filtros, tinte, punto focal, zoom y un modo Fit que muestra completas las imágenes anchas en lugar de recortarlas.

{
"type": "multiple_choice",
"properties": {
"layout": "blocks",
"choices": [
{ "id": "c1", "label": "Mountains", "media": { "type": "image", "url": "https://…", "display": "background" } },
{ "id": "c2", "label": "Coast", "media": { "type": "image", "url": "https://…", "display": "background" } }
]
}
}
Los formularios existentes y las importaciones desde Typeform se manejan automáticamente: una pregunta picture_choice se convierte a Opción Múltiple con layout: "blocks" por sí sola, así que no hay que rehacer nada.
Sí / No
Una pregunta binaria simple que presenta los botones "Sí" y "No".

Type identifier: yes_no
Propiedades
El tipo de pregunta Sí/No no tiene propiedades adicionales más allá de las propiedades comunes de preguntas.
Validación
Si required es true, el encuestado debe hacer clic en "Sí" o "No".
Operadores de Salto Lógico
equals, not_equals, is_answered, is_not_answered
Cuando se usa equals, compara contra true (Sí) o false (No). Los valores de string "true" y "false" también son aceptados.
Formato de Respuesta
La respuesta se almacena como un boolean (true para Sí, false para No, o null si no se responde).
Puntuación en Modo Cuestionario
Sí/No es un tipo de pregunta puntuable:
- Knowledge Quiz: Establece
correctAnswerscon un solo valor de"true"o"false". - Lead Qualification: Establece
choiceScorescon claves"true"y"false". - Match Quiz: Establece
choiceOutcomescon claves"true"y"false".
La pregunta Sí/No avanza automáticamente a la siguiente pregunta inmediatamente al seleccionar. No hay un botón "OK" separado.
Clasificación
Presenta una lista de elementos para que el encuestado los ordene en su orden preferido arrastrando y soltando.

Type identifier: ranking
Propiedades
| Propiedad | Tipo | Descripción | Predeterminado |
|---|---|---|---|
choices | Choice[] | Array de elementos a clasificar. Cada uno tiene un id y label. | [] |
choiceSource | string | De dónde vienen los elementos: fixed usa choices; variable los carga desde una variable. Consulta Opciones desde una variable. | fixed |
Validación
Si required es true, el encuestado debe enviar una clasificación (todos los elementos deben estar en un orden definido).
Operadores de Salto Lógico
equals, not_equals, is_answered, is_not_answered
Formato de Respuesta
La respuesta se almacena como un array de strings (IDs de elecciones en el orden clasificado por el encuestado, del primero al último).
["choice_3", "choice_1", "choice_2"]
El campo de clasificación usa interacción de arrastrar y soltar. En dispositivos móviles, los encuestados pueden usar gestos táctiles para reordenar elementos.
Matriz
Un tipo de pregunta basado en cuadrícula donde los encuestados califican múltiples elementos (filas) a través de múltiples categorías (columnas). Cada intersección fila-columna es una opción seleccionable.

Type identifier: matrix
Propiedades
| Propiedad | Tipo | Descripción | Predeterminado |
|---|---|---|---|
rows | string[] | Array de etiquetas de fila (los elementos que se están calificando). | [] |
columns | string[] | Array de etiquetas de columna (las categorías de calificación). | [] |
randomizeRows | boolean | Aleatorizar el orden de las filas. | false |
randomizeColumns | boolean | Aleatorizar el orden de las columnas. | false |
rowSource | string | De dónde vienen las filas: fixed usa rows; variable las carga desde una variable. Consulta Opciones desde una variable. | fixed |
columnSource | string | De dónde vienen las columnas: fixed usa columns; variable las carga desde una variable. | fixed |
Validación
Si required es true, el encuestado debe seleccionar una opción por fila.
Operadores de Salto Lógico
equals, not_equals, is_answered, is_not_answered
Formato de Respuesta
La respuesta se almacena como un object (Record<string, string>) mapeando cada etiqueta de fila a la etiqueta de columna seleccionada:
{
"Product Quality": "Excellent",
"Customer Service": "Good",
"Value for Money": "Average"
}
Las preguntas de Matriz se muestran como una cuadrícula responsiva en escritorio y se adaptan a un formato apilado en dispositivos móviles para mejor usabilidad. Tanto las filas como las columnas soportan aleatorización independiente.
Lista
Recopila múltiples entradas del mismo tipo. Una Lista contiene elementos de texto simples (escribe y pulsa Intro, o toca Añadir) o elementos de compuesto repetidos — entradas estructuradas creadas a partir de un compuesto reutilizable, como añadir cualquier número de miembros de junta a una sola pregunta.
Type identifier: list
Propiedades
| Propiedad | Tipo | Descripción | Predeterminado |
|---|---|---|---|
itemType | string | string para elementos de texto simples, composite para instancias de compuesto repetibles. | string |
compositeId | string | El compuesto referenciado (solo elementos de compuesto). Se establece a través del selector. | — |
itemPlaceholder | string | Texto de marcador de posición para la entrada de elementos (elementos de texto). | — |
addButtonLabel | string | Etiqueta personalizada para el botón Añadir en ambos modos de elementos. | — |
minItems | number | Número mínimo de elementos requeridos para enviar. | — |
maxItems | number | Número máximo de elementos. Tope absoluto de 100. | 100 |
itemRegex | string | Patrón de validación por elemento (elementos de texto). | — |
itemRegexError | string | Mensaje de error mostrado cuando el patrón falla. | — |
itemMinLength | number | Caracteres mínimos por elemento (elementos de texto). | — |
itemMaxLength | number | Caracteres máximos por elemento (elementos de texto). | — |
allowDuplicates | boolean | Permitir añadir el mismo elemento de texto dos veces (elementos de texto). | true |
allowReorder | boolean | Permitir a los encuestados arrastrar elementos para reordenar (elementos de texto). | true |
defaultItems | string[] | Elementos prerrellenados la primera vez que se carga la pregunta (elementos de texto, formularios web). | [] |
displayMode | string | Cómo se muestra una entrada de compuesto contraída: compact (resumen de una línea) o card (etiqueta + valor de cada campo). | compact |
compactFields | string[] | IDs de subcampos ordenados que se muestran en el resumen contraído compacto. Por defecto, el primer campo del compuesto. | — |
Validación
Si required es true, se debe añadir al menos un elemento. minItems / maxItems se aplican al enviar; las reglas de patrón y longitud por elemento (elementos de texto) se aplican a medida que se añade cada elemento.
Operadores de Salto Lógico
list_count_equals, list_count_greater_than, list_count_less_than, contains, not_contains, is_answered, is_not_answered
Los operadores de recuento comparan contra el número de elementos en la respuesta.
Formato de Respuesta
- Elementos de texto: un array de strings.
- Elementos de compuesto: un array de objetos, cada uno indexado por ID de subcampo:
[
{ "sub_first_name": "Ada", "sub_email": "ada@example.com" },
{ "sub_first_name": "Grace", "sub_email": "grace@example.com" }
]
Cada elemento de compuesto también se registra como una entrada de compuesto independiente — consulta la guía de Compuestos para la vista de Entradas entre formularios y los modos de visualización contraídos.
Opciones desde una variable
Opción Múltiple, Desplegable y Clasificación pueden cargar sus opciones desde una variable en lugar de una lista fija; normalmente, la respuesta de un nodo de datos que llama a tu API. Una Matriz puede hacer lo mismo con sus filas, sus columnas o ambas.
Configuración
- Agrega un nodo de datos que devuelva la lista y asígnale una Variable de respuesta, por ejemplo
breeds. - En la configuración de la pregunta, cambia Origen de las opciones de Lista fija (el valor predeterminado) a Desde una variable. En una Matriz, usa Origen de las filas y Origen de las columnas.
- Escribe la variable que contiene la lista:
{breeds}, o una ruta dentro de la respuesta como{breeds.data}. - Si tus elementos no usan las claves
labelyvalue, abre ¿Tus elementos usan otros nombres de campo? e indica el Campo de etiqueta y el Campo de valor que usan tus datos.
En un formulario de estilo NueForm, coloca el nodo de datos antes de la pregunta. En un formulario de estilo Cuestionario, ajusta Cuándo ejecutar del nodo de datos en Mantener actualizado para que la lista siga las respuestas del encuestado; consulta Estilo Cuestionario.
Estos ajustes de origen solo se ofrecen en las preguntas colocadas directamente en el formulario. El constructor no los muestra en una pregunta dentro de un Grupo de preguntas, una Página de múltiples preguntas o un compuesto, porque esas preguntas guardan su respuesta dentro de la respuesta del elemento que las contiene, donde no se pueden conservar las etiquetas. Una pregunta que ya carga sus opciones desde una variable conserva el ajuste si la mueves a uno de ellos, pero entonces sus respuestas muestran los valores de los elementos en lugar de las etiquetas.
En el lienzo del constructor, la pregunta muestra Opciones de {breeds} en lugar de sus opciones.
Formatos aceptados
La variable debe contener una lista JSON, ya sea de strings simples, donde cada string es a la vez la etiqueta y el valor:
["Siamese", "Persian"]
o de objetos con una etiqueta y un valor:
[
{ "label": "Siamese", "value": "siamese" },
{ "label": "Persian", "value": "persian" }
]
También funcionan los objetos que usan otras claves: indícalas con Campo de etiqueta y Campo de valor. Para esta respuesta, usa la variable {breeds.data}, Campo de etiqueta name y Campo de valor id:
{ "data": [{ "name": "Siamese", "id": "siamese" }, { "name": "Persian", "id": "persian" }] }
En Opción Múltiple, un elemento también puede incluir una URL image, que se convierte en la imagen de esa opción:
[{ "label": "Siamese", "value": "siamese", "image": "https://example.com/siamese.jpg" }]
Cuando la respuesta es un objeto, apunta a la lista que contiene con una ruta de puntos como {breeds.data}. Para una clave que no es una palabra simple, usa {breeds["the list"]}.
Cómo se leen los elementos
- El valor de cada elemento se convierte en su ID de elección. Es lo que guarda la respuesta, lo que comparan las condiciones lógicas y lo que evalúa la puntuación del cuestionario.
- Si un objeto solo tiene etiqueta o solo valor, ese dato se usa para ambos. Los números y
true/falsese leen como texto. - Se omiten los elementos sin valor o con el mismo valor que un elemento anterior, así como los valores de más de 500 caracteres. Las etiquetas de más de 500 caracteres se acortan, y solo se usan los primeros 1000 elementos.
- Las etiquetas se muestran como texto sin formato: no se les aplica formato y los tokens
{variable}que contengan no se reemplazan. - "Otro" sigue funcionando en Opción Múltiple y Desplegable: aparece después de los elementos cargados.
- Los demás ajustes de la pregunta, como Permitir selección múltiple, Orden aleatorio y Orden alfabético, se aplican a los elementos cargados como siempre.
- Un nodo de datos conserva hasta 4096 caracteres de su respuesta, así que una lista larga puede llegar cortada. Consulta Respuestas de nodos de datos como listas de opciones.
Lo que ven los encuestados
No hay una lista fija de respaldo. Hasta que la variable contiene una lista utilizable, la pregunta muestra uno de los tres primeros mensajes de abajo en lugar de opciones. El último aparece encima de las opciones cuando la lista cambia:
| Mensaje | Cuándo |
|---|---|
| Cargando opciones… | El nodo de datos que llena la lista se está ejecutando. |
| Las opciones aparecerán cuando respondas las preguntas anteriores. | La variable todavía está vacía; normalmente, porque el nodo de datos espera una respuesta. |
| No se pudieron cargar estas opciones. | La variable no contiene una lista utilizable. La vista previa del constructor también te indica por qué. |
| Actualizado según tu respuesta anterior. | La lista cambió y una opción que el encuestado había seleccionado ya no se ofrece, así que se borró. |
Respuestas guardadas
- La respuesta guarda los valores de los elementos, igual que los IDs de elección. En una Matriz, asocia el valor de cada fila con el valor de la columna elegida.
- Las etiquetas que vio el encuestado se guardan con la respuesta, así que las respuestas, las exportaciones CSV y los correos de notificación muestran etiquetas en lugar de valores.
- Los webhooks envían los valores junto con un mapa
valueLabelsde cada valor elegido a su etiqueta, tanto en los envíos desde la web como en los hechos por llamada telefónica. - La lista se carga mientras el encuestado completa el formulario, así que NueForm no vuelve a comprobar los valores enviados contra ella. Las preguntas obligatorias se siguen exigiendo. Si una respuesta debe ser uno de tus propios elementos, verifícalo en tu sistema al procesar la respuesta.
Puntuación y condiciones
- Puntuación: no hay una lista fija que marcar, así que el editor de puntuación pide valores de elementos, y cada uno debe coincidir exactamente ("Coincide exactamente con el valor del elemento."). Consulta Modos de formulario.
- Condiciones: los saltos lógicos y las condiciones de visibilidad sobre estas preguntas usan operadores de texto y un valor escrito. En una Matriz, el editor de condiciones solo ofrece
is_answeredeis_not_answered, porque su respuesta asocia filas con columnas. Consulta Saltos lógicos. - Llamadas telefónicas: el agente lee todas las opciones de la lista, y quien llama puede decir una opción o pulsar su número. Consulta Telefonía.
Propiedades de la fuente
| Propiedad | Tipo | Descripción | Predeterminado |
|---|---|---|---|
choiceSource | string | fixed usa choices. variable carga las opciones desde choiceVariable, y choices se ignora. | fixed |
choiceVariable | string | La variable que contiene la lista, como {breeds} o {breeds.data}. | — |
choiceLabelField | string | Para elementos que son objetos: la clave que contiene la etiqueta de cada elemento. | label |
choiceValueField | string | Para elementos que son objetos: la clave que contiene el valor de cada elemento. | value |
Una Matriz tiene el mismo conjunto para cada eje: rowSource, rowVariable, rowLabelField, rowValueField y columnSource, columnVariable, columnLabelField, columnValueField.