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.).
- Mostrar solo el campo
📤 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!