Reglas de formulario
Disponible en el plan Business
Formspree te permite configurar reglas personalizadas que controlan la entrega de los envíos de tu formulario, o que te permiten realizar acciones especiales, basadas en ciertos criterios llamados Triggers. Las reglas se pueden usar para:
- Enviar correos a diferentes destinatarios según el valor de los datos del formulario, como un menú desplegable o una casilla de verificación, o
- enviar correos a varios destinatarios, o
- marcar envíos como spam según el contenido o la presencia de un campo honeypot personalizado, o
- redirigir condicionalmente a una página de “Gracias” diferente después del envío del formulario.
A continuación te explicamos cómo empezar:
Agregar tu primera regla
De forma predeterminada, los envíos se envían al correo de destino de un formulario. Sin embargo:
Si creas una regla, el correo de destino del formulario se ignora y, en su lugar, las reglas determinan la entrega de las notificaciones.
Te recomendamos que primero agregues una regla por defecto que siempre se active. Puedes agregar una regla por defecto siguiendo estos pasos:
-
Haz clic en la pestaña Rules y luego en Add Rule:

-
Configura la columna “Do” como “Send Email” y elige una dirección de correo destinataria entre tus direcciones verificadas. Luego haz clic en Save. Deja la condición como “Always” para que, cuando se reciba un nuevo envío, esta regla siempre se active.

A partir de este momento, cuando se reciba un nuevo envío, se enviará un correo de notificación a la dirección Target Email. Esto es similar a la funcionalidad por defecto de los formularios de Formspree.
Enrutar correos con un menú desplegable del formulario
Supongamos que tienes un formulario con un input de tipo select que permite a los visitantes elegir entre varias opciones. Por ejemplo, supongamos que un visitante puede enviar comentarios al departamento de “Housewares” o al de “Electronics”. Así podría verse este formulario:

Aquí tienes el HTML de un formulario que logra esto:
<h3>Please leave your feedback below:</h3>
<form action="https://formspree.io/f/{form_id}" method="POST">
<label>Department:</label>
<select name="department" required>
<option value="housewares">Housewares</option>
<option value="electronics">Electronics</option>
</select>
<label>Feedback:</label>
<textarea name="message"></textarea>
<label>Your Name:</label>
<input name="name" type="text" required/>
<label>Your Email: </label>
<input name="email" type="email" required/>
<button>submit</button>
</form>
La instrucción select destacada arriba crea un menú desplegable donde el usuario puede elegir “Housewares” o “Electronics”.
Agregar reglas de enrutamiento para el desplegable
Supongamos que quieres enviar notificaciones al departamento adecuado según la elección del visitante en el campo desplegable. Para lograrlo:
-
Primero asegúrate de enviar el formulario una vez incluyendo el campo de entrada relevante. En este caso, necesitamos enviar el formulario con el campo select “department”. Esto hace que Formspree reconozca el nuevo campo, para que pueda usarse al crear reglas.
-
Crea una nueva regla para una de las opciones del campo. Primero, configura el Target Email con el destinatario apropiado, por ejemplo “housewares@example.com”. Luego elige “When a field contains a keyword” como condición. A continuación, selecciona el campo de entrada que se evaluará para encontrar una coincidencia. En este caso, el campo “department”. Después rellena el valor apropiado del campo select. En este caso, usaremos “housewares”. Finalmente haz clic en Save.

En este punto, la segunda regla coincidirá si, dentro del campo “department”, aparece la palabra “housewares”. Cuando la regla coincida, se enviará una notificación al Target Email “housewares@example.com”.
-
Ahora crea una regla para la segunda opción, similar a la regla anterior. En este caso, enviaremos una notificación a “electronics@example.com” cuando el campo “department” contenga “electronics”.
A partir de este momento, cuando llegue un nuevo envío, coincidirá con la primera o la segunda regla, dependiendo de si el campo “department” contiene la palabra “housewares” o “electronics”. Eso hará que se envíe un correo de notificación a “housewares@example.com” o a “electronics@example.com”.
Enrutar correos con una casilla de verificación
¿Y si tienes un formulario con una casilla de verificación y quieres enviar un correo de notificación solo cuando la casilla esté marcada? Por ejemplo, supongamos que tu formulario tiene esta casilla:

Aquí tienes el HTML del formulario para la casilla anterior:
<label>
<input type="checkbox" name="urgent" value="yes">
My problem is urgent!
</label>
Agregar reglas de enrutamiento para casillas de verificación
Para enviar una notificación por correo solo cuando la casilla esté marcada, agrega una regla con la condición “When a field is not empty”. Después selecciona el campo apropiado para la casilla. Por ejemplo:

Enviar a varios destinatarios
Si solo quieres enviar un correo a varios destinatarios, puedes hacerlo agregando varias reglas con la condición “Always”. Aquí tienes un ejemplo de un formulario que envía correos de notificación tanto a “electronics@example.com” como a “housewares@example.com”:

Detectar spam con un campo honeypot personalizado
Un campo honeypot es un campo especial que solo los spammers tienden a rellenar. Los spammers a menudo emplean bots que rastrean el HTML de una página web y rellenan automáticamente cualquier formulario que detecten. Sin embargo, cuando se renderiza un formulario, se pueden usar JavaScript y CSS para ocultar un campo a los visitantes humanos, pero no a los bots. Cuando se envía un formulario con dicho campo completado, puede categorizarse con seguridad como spam.
Formspree te permite implementar un honeypot con el campo _gotcha. Sin embargo, algunos spammers conocen este campo especial y lo han incorporado a la lógica de sus bots.
Para crear un honeypot que ningún spammer pueda anticipar, puedes crear tu propio campo honeypot personalizado con reglas. Primero, agrega un campo a tu formulario y ocúltalo para que ningún visitante humano lo rellene. Por ejemplo, podrías usar el siguiente input de formulario.
<input type="text" name="myhoneypot" class="myclass">
Asegúrate de elegir algo único en lugar de “myhoneypot”. Si cada formulario tiene un campo honeypot distinto, los spammers no pueden anticipar cuál es el campo honeypot.
Usa tu propio CSS personalizado para ocultar el campo. Nuevamente, la clave es no usar un enfoque estandarizado para ocultar el campo honeypot, de modo que sea más difícil para los spammers detectarlo y evitarlo. Como ejemplo, aquí tienes algo de CSS para ocultar el campo anterior:
.myclass { opacity: 0; position: absolute; }
Finalmente, puedes agregar una regla que etiquete un envío como spam cuando el campo honeypot esté completado. Elige “Tag” en la columna “Do” y selecciona “Spam” para etiquetar el envío como spam. Luego elige el trigger “When a field is not empty” y selecciona el nombre de tu campo honeypot.

Agregar reglas personalizadas de spam
La mayoría del spam debería ser detectado por los filtros automáticos de Formspree. Sin embargo, si estás recibiendo spam y eres capaz de detectar patrones en el contenido, también puedes crear tus propias reglas personalizadas de spam. Estas reglas pueden ser especialmente útiles si estás experimentando temporalmente un gran volumen de spam y necesitas tomar medidas inmediatas.
Para crear reglas personalizadas de spam, usa la acción “Tag” en la columna “Do” y elige “Spam” para empezar a marcar mensajes como spam. Luego elige “When a field contains a keyword” como trigger y selecciona un campo que contenga contenido sospechoso. Finalmente, incluye la palabra clave o las palabras que aparezcan con frecuencia en el mensaje de spam.

Si recibes constantemente un gran volumen de spam y los filtros automáticos no los están categorizando automáticamente, ponte en contacto con nosotros mediante una solicitud de soporte.
Redirigir condicionalmente según los datos del formulario
Cuando un visitante completa un formulario, a veces quieres mostrar un mensaje de “gracias” diferente dependiendo de los datos del formulario. Por ejemplo, si un visitante solicita una reunión de seguimiento, podrías querer redirigirlo a una página de reserva de calendario.
Para lograrlo, elige la opción “Redirect” en la columna “Do” e introduce una URL completa donde quieres que aterricen los clientes. Luego crea un trigger usando una casilla de verificación o un input desplegable, similar a las secciones de casilla de verificación o desplegable anteriores. Ahora, cuando los usuarios rellenen tu formulario, serán redirigidos condicionalmente a la página que especifiques.

También puedes usar la acción “Redirect” con la condición “Always” para anular el comportamiento de redirección por defecto de Formspree.
Disparar con otras condiciones
Hasta ahora hemos visto cómo agregar reglas de enrutamiento usando las condiciones “Always”, “When a field contains a keyword” y “When a field is not empty”.
Para los dos últimos tipos de condición, también existen condiciones negativas: “When a field is empty” y “When a field doesn’t contain a keyword”.
Aquí tienes una lista de todas las condiciones, y algunos escenarios en los que podrías querer usarlas:
- Always: Quieres enviar una notificación por correo para cada envío. Útil para agregar varios destinatarios.
- When a field is not empty: Tienes una casilla de verificación o un input de texto. Útil en escenarios en los que quieres hacer seguimiento solo con ciertos visitantes.
- When a field is empty: Útil para casillas de verificación de exclusión voluntaria. Por ejemplo, podrías querer enviar una notificación solo para los visitantes que no marquen “Por favor, no me contactes”. De lo contrario, deja que sus comentarios vayan directamente al archivo, para exportarlos más adelante.
- When a field contains a keyword: Tienes un input desplegable o de texto. Útil para enrutar a diferentes destinatarios según el valor. También se puede usar para enviar una notificación cuando aparece una palabra clave concreta. Por ejemplo, podrías querer notificar al departamento de facturación si un campo de mensaje contiene la palabra “reembolso”.
- When a field doesn’t contain a keyword: Se puede usar en reglas personalizadas de spam para evitar que ciertos mensajes sean marcados como spam.