Limitar envíos por usuario en formulario (1 envío)
📝 Cómo evitar que un formulario pueda completarse más de una vez por usuario
🎯 Objetivo
Evitar que una persona complete un formulario más de una vez. Si ya lo hizo, se mostrará un mensaje estático de confirmación y se ocultarán los campos del formulario.
🔧 Paso 1: Crear el campo de control en la Lista de Contactos
Accede al módulo Listas de Contactos.
Selecciona la lista vinculada al formulario que deseas proteger.
Crea un nuevo campo con las siguientes características:
Nombre del campo: YaCompletado
Tipo: Texto
Uso: Este campo se utilizará para registrar si el contacto ya completó el formulario.


🧾 Paso 2: Agregar campos de control y mensaje en el formulario
En el editor del formulario, es necesario agregar dos campos:
1. Campo de mensaje visual (lo que ve el usuario)
Este campo mostrará el mensaje de que el formulario ya fue completado.
Tipo de campo: Texto (Read only)
ID o clase sugerida: .mensajeYaCompletado
Texto predeterminado:
Ya completaste este formulario. Gracias por tu respuesta.

2. Campo de control (valor de YaCompletado)
Este campo sirve para que el formulario pueda detectar si el contacto ya completó el formulario.
Tipo de campo: Texto (Hidden)
Conectado al campo de la lista de contactos: Sí, debe estar vinculado al campo YaCompletado creado en la lista de contactos a través de la etiqueta dinámica $d{YACOMPLETADO} que es correspondiente al código de dicho campo en la lista.

⚠️ Importante: Ambos campos deben estar correctamente configurados para que la lógica condicional funcione en el siguiente paso.
🎨 Paso 3: Aplicar estilos para mostrar el mensaje como texto estático
Inserta el siguiente código CSS en la sección Advanced CSS del formulario:
Artículo para Crear/Asignar Tema en Formularios
.mensajeYaCompletado input {
pointer-events: none !important;
background: transparent !important;
border: none !important;
box-shadow: none !important;
font-weight: bold !important;
color: black !important;
}

Este estilo transformará el campo en un mensaje visual sin apariencia de campo de entrada.

⚙️ Paso 4: Configurar la lógica condicional del formulario
Dirígete a la sección Lógica Condicional del formulario.
Crea una nueva condición lógica (Artículo del constructor de Lógica condicional):
Condición: Si el campo YaCompletado es igual a "sí"
Acciones:
Mostrar solo el campo .mensajeYaCompletado.
Ocultar todos los demás campos del formulario (Nombre, Email, etc.).

📤 Paso 5: Marcar el formulario como completado al enviarlo
Accede al flujo que se activa después de que se envía el formulario.
Agrega un nodo de actualización después del nodo en donde se envía el formulario.
Configura este paso así:
Campo a modificar [Label]: YaCompletado
Acción [Operator]: set
Valor nuevo [Value]: "Si"

Esto asegurará que el formulario reconozca a ese contacto como ya completado en futuras visitas.
Nota: Se debe asegurar de tener el trigger externo activado tanto en el nodo de correo y el formulario. Al igual que el filtro de trigger externo posterior al nodo de correo apuntando al enlace del formulario.
Artículo de Trigger externo a formularios

✅ Resultado final
Si el contacto aún no ha completado el formulario, verá todos los campos normalmente.

Si el campo YaCompletado ya contiene el "Si":
Todos los campos del formulario se ocultan.
Se muestra únicamente el mensaje:
> “Ya completaste este formulario. Gracias por tu respuesta.”

Actualizado el: 16/05/2025
¡Gracias!