Siguiendo con lo que ya se está convirtiendo en una serie de entradas sobre Gravity Forms, hoy vengo con otra técnica para este genial plugin de formularios avanzados.
Y precisamente es algo que nos va a ayudar a mejorar mucho la conversión en formularios largos (y, por supuesto, te explico cómo): vamos a ver cómo podemos pasar datos de un formulario a otro con Gravity Forms, método que también puedes utilizar para enviar datos a un formulario a través de un enlace mediante GET.
Tabla de contenidos
Mejorar las conversiones conectando formularios
Vamos a empezar hablando un poco sobre marketing online. Imagina que tienes un formulario bastante largo, como de 15 ó 20 (o más) campos: un auténtico ahuyentador de usuarios. Todos huimos de los formularios largos, nadie quiere pasarse 10 ó 15 minutos rellenando un formulario, cuando podría estar haciendo otra cosa más útil, como por ejemplo stalkear en el Facebook de otro o juntar frutas de tres en tres en algún juego social.
Por supuesto una muy buena solución en estos casos es dividir el formulario en varias páginas, eso sí, incluyendo siempre una barra de progreso que informe al usuario de los pasos que quedan (a no ser que quieras que abandone el 90% en la segunda pantalla). Si no sabes cómo hacerlo, te lo explico aquí:
Pero eso es útil cuando el usuario ya sabe que tiene que rellenar un formulario largo, y se ha hecho a la idea. Digamos que eso te ayuda a aumentar la conversión en el segundo paso del embudo, de usuarios con intención de rellenar el formulario a usuarios que lo han rellenado.
Pero no es útil en la primera captación, cuando tienes que convencer al usuario de que necesita rellenar ese formulario. Si ve que consta de 30 campos, o que son tres páginas, no hará ningún esfuerzo por comenzar. Ni se lo planteará.
Pero ¿y sí son sólo tres campos, los tres más básicos y fundamentales, que además no comprometan a nada, con un botón que, en lugar de Enviar, diga Comenzar? Aquí un ejemplo práctico:
Mucho mejor, ¿verdad? Incluso es difícil resistirse. Sin embargo ahora tenemos otra dificultad (que resolveremos enseguida): ese formulario debe llevar al formulario completo con esos campos ya rellenos.
Si nos llevamos al usuario al formulario largo, y además tiene que volver a rellenar los datos que ya le hemos pedido, estaremos peor que al principio, ya que de lo que se trata es de vencer su resistencia a empezar: así, cuando se vea ante el formulario completo, ya lo habrá empezado y parte de los datos estarán ya rellenos.
Pasar datos de un formulario a otro
Pues bien, vamos a pasar estos datos al formulario definitivo por el método GET, una forma de pasar datos de una página a otra a través de la URL. ¿Parece complicado? Pues ya verás que no lo es en absoluto.
Para ello basta configurar el formulario básico, el corto, para que redirija a la dirección del largo, pasando los datos que el usuario ha rellenado a través de la URL, y después configurar el formulario largo para que reciba esos datos y los coloque en sus campos correspondientes.
Vamos a ver cómo.
¿Estás construyendo tu tienda online o eres implementador WordPress?
¿Necesitas plugins de calidad y con soporte para implementar funcionalidades concretas?
Consigue todos los plugins a la venta en la sección de plugins de esta web y todos los que siga añadiendo. Acceso a los 96 plugins (y subiendo) con soporte directo del desarrollador, actualizaciones y uso ilimitado: úsalos en tantas webs como lo necesites.
Enviando los datos vía query string
Primero vamos a modificar ligeramente el comportamiento de este primer formulario. Para empezar, yo en estos casos suelo desactivar las notificaciones de Gravity Forms en estos casos: el administrador de la web no necesita saber que se ha rellenado el formulario, ya que aún no hay datos útiles ni definitivos, y puede llegar a ser una molestia.
Pero eso queda al gusto de cada uno, lo verdaderamente importante está en el apartado de confirmación (Ajustes > Confirmaciones), que es donde se configura la confirmación de que el formulario se ha rellenado correctamente.
Lo que haremos será establecer la confirmación como tipo Página, para que al pulsar el botón Comenzar el usuario sea llevado a esa página. Y ¿a qué página hemos de llevarle? Pues, evidentemente, a la página que contiene el formulario largo.
Pero eso no basta, además de al usuario hay que llevarse también los datos que ha rellenado, y para eso vamos a hacer uso de la opción Pasar datos de los campos via Query String, marcándola. La forma de rellenar el campo correspondiente es bastante sencillo, además de que tienes un ejemplo bajo él. Sería algo así:
dato1={Campo correspondiente}&dato2={Campo correspondiente}&...
Siguiendo el ejemplo del formulario que he puesto más arriba, sería provincia={Provincia:1}&edad={Edad:2}. Fácil, ¿verdad? Un par de aclaraciones:
- Como nombre de las variables (dato1, dato2, provincia, edad) puedes poner los que quieras, usaremos ese mismo nombre a la hora de recibir los datos en la página del formulario completo
- El nombre de los campos ({Campo correspondiente}, {Provincia:1}) no tienes por qué establecerlo a mano, tienes a la derecha, para ayudarte, los campos disponibles; basta con pulsar el icono
- Puedes pasar por ese método todos los datos que quieras, concatenándolos con el símbolo &
De esta forma, cuando el usuario haga click en el botón de envío (Comenzar), Gravity Forms redirigirá a una URL de la forma:
http://www.tuservidor.com/url-formulario-completo/?provincia=ProvinciaUsuario&edad=EdadUsuario
Recibiendo los datos
Perfecto, ya tenemos los datos enviados por el primer formulario a través de la URL hacia la dirección del segundo formulario: ahora sólo nos falta recibirlos allí y colocarlos cada uno en su campo específico.
Para ello, por supuesto, el formulario que recibe los datos tendrá que tener también esos campos, que han de ser del mismo tipo que los del campo que envía, para evitar problemas: no podemos poner la edad en el primer formulario como un campo de texto y recibir el dato en un campo numérico, ya que nos exponemos a un error en caso de que el usuario haya rellenado mal el campo en el primer formulario.
Pues bien, sólo tenemos que decir a Gravity Forms a qué campo pertenece cada uno de los valores que se van a recibir a través de la URL. Para ello hemos de ir al campo correspondiente (el que vaya a almacenar el valor) y, en la pestaña Avanzado seleccionar la casilla Permitir al campo rellenarse dinámicamente.
Al hacerlo, aparecerá la nueva opción Nombre parámetro, donde le indicarás con qué nombre llegará el dato que quieres que almacene este campo. En nuestro ejemplo, provincia:
Y a continuación… ¡nada más! ¿Esperabas más? Pues no, ya está. Basta hacer eso con cada uno de los campos que recibirán datos (la provincia y la edad en nuestro ejemplo). De esta forma el usuario se verá ante el formulario definitivo pero con los primeros datos ya rellenos, y la resistencia a comenzar ya estará vencida.
Vídeo: enviar datos a un formulario Gravity Forms por el método GET
Soy consciente de que hay quien prefiere leer paso a paso y quien prefiere ver un vídeo. Así que, contradiciendo a quienes dicen que no se puede contentar a todos, aquí tienes también un vídeo con el proceso completo:
Y, como siempre, recordarte que si tienes cualquier duda o consulta puedes hacer uso del formulario de contacto.
fabian rivera dice
Hola Enrique, soy fabian de colombia,
Tengo una pregunta que espero me puedas contestar pues me ayudaría mucho, y es:
Necesito hacer un formulario para que un usuario lo pueda hacer y al enviarlo le notifique a otro usuario con un formulario que ya venga con los datos del primer usuario, es posible? o como hacer un formulario que una parte lo llene un usuario y cuando se le de enviar, a otro usuario le llegue una notificaron con el resto del formulario, espero me halla podido explicar bien. Muchas Gracias
Enrique dice
Hola Fabián. Bueno, para eso está el apartado de notificaciones de Gravity Forms, puedes configurar una notificación por email a la dirección que quieras con los campos del formulario.
Un saludo.
Hugo dice
Pregunto:
1 – Si el primer formulario que enviará un par de valores al segundo vis URL (GET) NO es un formulario de Gravity Forms sino uno escrito por mi en php/html y se conserva el formato de los datos a pasar mediante la URL , funcionara al enviarlo a un formulario que SI es Gravity Forms y que tiene los campos con los mismos nombres puestos y con las condiciones indicadas de permitir el rellenado en forma dinámica??
2- El método POST de pasar las variables no se puede utilizar?
Enrique J. Ros dice
Hola Hugo
Sí. No.
Javier Martin dice
Buenas tardes Enrique,
Tengo una Web en la cual hay varios formularios creados con Gravity Form, estos cuentan con muchos campos. Los tengo divididos en dos paginas, y quiero hacer algo similar a lo que explicas en este post.
El «problema» que tengo con el metodo que comentas es que al crear un formulario corto y el formulario de destino generare dos ids de entrada. Esto hace que las entradas en mi web no sean correlativas y sea mas dificil llevar un buen control de las solicitudes realizadas desde los formularios.
Hay posibilidad de hacerlo de otra manera?, se podria hacer esto mismo con un formulario corto hecho con el Widget de formularios de Elementor?
Gracias de antemano por la información compartida en este post.
Saludos cordiales,
Javier
Enrique J. Ros dice
Hola Javier
Eso depende mucho de cómo Elementor trate los datos. En general, si eres capaz de crear una redirección añadiendo los campos como parámetros de la URL puedes usar este método. Aparte de eso, quizá en este artículo encuentres algo que te sirva o te dé alguna idea en la que no hayas pensado.
Un saludo.
Gustavo Ramírez dice
Hola Enrique. Ante todo gracias por compartir tus conocimientos.
Tengo un caso práctico y es el siguiente:
• Hay 2 formularios que están dentro de 1 website que requiere inicio de sesión.
• Ambos formularios lo llena un médico y se refieren a evaluaciones a un paciente
• Entre evaluación y evaluación hay una diferencia de 1 hora aproximadamente, por lo cual hay el riesgo que el médico haya perdido la sesión cuando vaya a rellenar el segundo formulario. en consecuencia, cuando inicie sesión no va a llegar a la URL que tiene los datos del formulario 1.
¿Cómo sugieres hacer que para el segundo inicio de sesión pueda llegar al punto en el que el formulario 1 le pasa los datos al formulario 2?.
Intenté insertar la URL en la notificación por email, de manera que no importa el tiempo que pase entre 1 formulario y otro porque tendría el link que se genera tras enviar el formulario 1, pero no inserta los datos en la URL que le de conexión y continuidad del formulario 1 al formulario 2.
¿Cómo resolverías este caso?
Muchas gracias de antemano.
Enrique J. Ros dice
Hola Gustavo
En este caso lo más eficiente es guardar las selecciones en la base de datos (relacionados con el usuario) y después recuperarlos de ahí como valores predeterminados de campos ocultos en el segundo formulario. Todo esto habría que programarlo a medida usando algunos de los hooks de GF.
Un saludo.
Gustavo Ramírez dice
¡Entendido y Agradecido!
Leonardo Rodriguez dice
Hola excelente tus videos.
tengo una consulta.
Se puede filtrar información entre formularios…..
ej tengo un campo marca y otro moldeo.
si elijo la marca el el otro formulario que filtre los modelos.
muchas gracias
Enrique J. Ros dice
Hola Leonardo
Sí, puedes hacerlo usando la lógica condicional de Gravity Forms.
Un saludo
JOSE ALBERTO IGLESIAS PERAL dice
Hola Enrique, lo primero, felicitarte por la sencillez con la que has explicado este tema. Y segundo, quería preguntarte los siguiente, quiero diseñar un formulario en GF con muchos campos (25-30), si se rellenan solo algunos, ¿puedo implementar algún botón de guardar y poderlo recuperar más tarde para termina de completar los campos y finalmente enviarlo?
Gracias.
Enrique J. Ros dice
Hola Jose Alberto
Puedes hacerlo con el add-on Partial Entries
Un saludo
jordi chacon dice
Hola Enrique! Gracias por too el contenido de valor que aportas.
Como podria mostrar el contenido de un formulario enviado a una pagina determinada. Para que un usuario pudiera editar el contenido de esa pagina a traves de un formulario.
Muchas gracias por adelantado.
Enrique J. Ros dice
Hola Jordi
Puede hacerse usando GravityView
Un saludo
Ruben dice
Buenas, Si quieres que los datos que envías al otro formulario no puedan modificarse? me explico mejor, digamos que rellenas un registro y luego ese registro lo quieres mostrar en el perfil que puedan ver otros usuarios, como podría realizarse? un saludo.
Enrique J. Ros dice
Hola Rubén
Entonces no quieres enviarlos a otro formulario, quieres guardarlos y recuperarlos en otro lugar para que se muestren. Eso se puede hacer usando los hooks que incluye GF, pero hay que programarlo. Revisa de todos modos el add-on Gravity Forms User Registration, quizá te sea de utilidad.
Un saludo
Hector dice
Muy buenas Enrique, excelente articulo.
¿como podría pasar datos dentro del mismo formulario?
Tengo un formulario con campos guiados y lógica condicional que llena el usuario. Digamos Campo1, Campo2, Campo3
Y quiero poner al final del formulario un campo oculto, digamos de texto que me recupere las respuestas de los campos anteriores.
Se llenaría dianamicamente con el contenido que selecciono el usuario. Es decir este campo contendría, Campo1 + Campo2 + Campo3
¿Es esto posible, como lo puedo lograr?
Gracias.
Enrique J. Ros dice
Hola Hector
No conozco nada que lo haga, tendrías que crearlo tú mismo mediante JavaScript (si ha de quedar relleno antes de que el usuario haga clic en enviar) o mediante los filtros de GF. Echa un vistazo a la última parte de esta entrada.
Un saludo
adrian dice
Hola enrique tengo una preguna o una necesidad, y es que cuando una persona rellene el formulario en gravity y salga y cuando vuelva a entrar al formulario, recupere los datos que ingreso en el formulario, es posible de alguna manera?
carla dice
Hola Enrique! Hace dias que estoy tratando de solucionar un temita (ya leí y probé la mayoria de tus post sobre Gravity pero no lo he podido resolver…) A través de un formulario los usuarios se asocian a un club, hasta ahí todo bien, pero necesito que el administrador vaya marcando los pagos mensuales que van abonando dichos socios. Tengo por un lado el plugin que permite editar las entradas, entonces, el admin puede a medida que pagan ir marcando los meses, a su vez cree con el addons Post Creation entradas que muestren los meses pagados, pero no resulta ya que el hecho de que el administrador haga cambios en la entrada no actualiza la creada con el Post Creation.
Entonces decidí crear un formulario (para el administrador) que reciba el nombre y apellido del socio, pero claro, el hecho de que se envie el formulario de socios no crea una entrada en el otro formulario por lo que no pude resolverlo.
Hay algo que pueda hacer para crear las 2 entradas en simultaneo (el segundo formulario no lo ve el usuario solo el administrador) Agradezco si me podes ayudar! Está muy bueno todo lo que publicas, soy suscriptora tuya y te leo siempre. Saludos!!
Enrique J. Ros dice
Hola Carla
No veo forma de resolver algo así sólo con plugins, sería preciso programación a medida. Quizá también puedas crear una integración con Zapier.
Un saludo
carla dice
Gracias Enrique! Es lo que estaba pensando…
Jesús dice
Hola Enrique como estás?
Tengo un formulario para etiquetas que calcula metros cuadrados de material según medidas y cantidad para dar el precio, además de otras opciones como acabados o aplicación de las etiquetas.
Quiero añadir formatos de etiquetas para ponérselo más fácil al cliente y estoy haciendo el mismo formulario por pasos.
En el paso 1 si eligen una etiqueta con formato cuadrado solamente tienen que poner una medida en un campo de número, 5 cm. (base y altura) por ejemplo.
Cuando le doy a siguiente, me gustaría recuperar el valor de ese campo (5 cm.) para poder hacer el cálculo de metros cuadrados pero la URL no me cambia.
En confirmaciones he creado una tipo redirección (…/etiquetas/etiquetas-polipropileno/?anchoyalto=AnchoxAlto:190) ya que es un producto de WooCommerce. No se si estará así bien hecho pero el caso es que al darle al siguiente paso no me pone el valor introducido en la URL.
Algún consejo?
Gracias de antemano.
Jose Miguel dice
Hola Enrique, estoy usando Gravity Forms en un wp con elementor y he creado una pagina de confirmación cuyo texto quiero que sea algo asi «Hola «nombre» hemos recibido tu informacion…..
A través de la configuración he conseguido que el dato nombre vaya a la url (…/Nombre=JOSE+MIGUEL&email=JMRUFO.ORZ%40GMAIL.COM#gf_1) pero lo que no se es que tengo que poner en el bloque de texto de la pagina para que sustituya «Nombre» por JOSE MIGUEL
gracias
Reiniel dice
Muy buenas Enrique, excelente articulo.
Es posible precargar un campo select en un formulario con nombres que se introducen desde otro formulario, o sea, tengo un formulario que registra el nombre y la edad solo eso, pero quiero gestionar quienes tiene acceso a un servicio y quienes no, para eso tengo otro formulario que también tiene el campo de nombre, lo que necesito es que ya venga precargado con los nombres que introduje en el primero, sera esto posible?
Gracias de antemamo