Crear y gestionar formularios fácilmente

Toda comunicación con la web sucede a través de formularios. Los formularios suelen identificarse por tener elementos a través de los cuales entrar datos, y que al final tienen un botón "Enviar". En el lenguage de composición de páginas para la web HTML hay un formato muy claro y definido para generar estos elementos. La base es sencilla, pero la programación de formularios dinámicos, y la programación de la recepción de estos datos y su posterior procesado y almacenamiento en la web pueden llegar a ser tan complejos como se quiera llegar a plantear.

Hay muchas razones y ocasiones por las que usar formularios. De entrada, cualquier forma de entrar una nueva página, o un nuevo comentario, o de inscribirse en la web, o de recomendar una página a un amigo, o de mantener el backoffice de la web, se hacen a través de formularios. Pero una forma importante de rentabilizar la web es convertirla en un canal de comunicación con los clientes. Hay muchas maneras de conectar con los clientes, y en general los equipos de marketing y ventas buscan la flexibilidad de ampliar su CRM con la capacidad de generar formularios para atraer a sus clientes y obtener datos de posibles sondeos de interés.

En Drupal hay un potente y flexible módulo para construir formularios: "Webform". Este módulo apareció ya en Drupal 4.4 durante el año 2005 y siendo uno de los más veteranos también es uno de los más usados, estando el 8º en ranking de módulos que está instalado en más webs creadas con este CMS. Para las tareas de gestión de datos del CMS, su backoffice, y la gestión de usuarios, Drupal ya proporciona una potente API con la que se definen los formularios de sistema que permiten construir la web. Para cualquier otra cosa Webform es un medio fantástico de construir formularios de campañas, fácil de aprender y con muchas funcionalidades para analizar los datos recibidos, exportarlos a Excel para facilitar su tratamiento, y para controlar el flujo de uso. Además hay una larga lista de módulos que son accesorios de Webform que permiten ampliar enormemente sus funcionalidades.

Construir el formulario

Una de las cosas en las que Webform destaca es en su facilidad de uso. Para disponer de esta potente herramienta solo hay que instalar un módulo, y ese genera páginas nuevas como las de cualquier otro tipo de contenido. Esto significa que al ser "nodos" del sistema de páginas todos los módulos que interactuan con los nodos, desde ponerle botones sociales, crear URLs semánticas automatizadas, permisos para los editores, duplicar páginas, integración con las herramienta de listados Views, o muchas otras cosas más, están disponibles automáticamente.

Los formularios se construyen desde la página de entrada de nuevas páginas, y podemos construir literalmente tantos como queramos, no hay ningún límite. El primer paso es dar de alta una nueva página, y con ello ponerle un título y describir un texto de introducción (que es opcional pero sirve para explicar a los usuarios el uso del formulario). Desde este inicio del proceso, como lo que estamos definiendo es la página que contendrá al formulario decidimos también su posición en el árbol de menús, su URL (si no está automatizada) y los típicos elementos de la gestión de nodos de Drupal.

El trabajo importante consiste en empezar a definir los campos del formulario. Como vemos los campos se añaden desde un elemento que permite escoger el tipo de campo y posicionarlo arrástrando donde queramos. Los tipos de campos de campos estándares son:

  • área de texto
  • campo de texto
  • cuadrícula de casillas
  • e-mail
  • fecha (con calendario desplegable)
  • fichero adjunto
  • grupo de campos
  • hora
  • marcas de texto en HTML
  • menú seleccionable (radio, checkbox y select)
  • número
  • oculto (para datos que deben pasar en función de una variable interna)
  • salto de página (para formulario multipágina)

El elemento de tipo grupo permite agrupar los campos de formas muy diversas organizándolos por jerárquías. Entrar sucesivos campos muy parecidos con ligeras diferencias de configuración es sencillo ya que estos se pueden duplicar. Estos elementos pueden ser suficientes para muchos usuarios, pero hay una familia muy amplia de submódulos de webform que extienden sus funcionalidades con cosas como:

  • campos de mapa
  • campos de tablas para posicionar campos de formas aún más complejas
  • campos para grupos de campos que se duplican todos juntos
  • validaciones en el lado servidor
  • validaciones en el lado cliente
  • permisos por campos
  • barra de porcentage de campos contestados
  • agrupación con efecto acordeón
  • integración con la herramienta de listados Views
  • integración con la herramienta de reacciones Rules
  • integración con la herramienta de newsletters Simplenews
  • integración de un sistema de pago con el módulo Payment
  • integración con el sistema de registro de Drupal
  • integración con el sistema de puntos Userpoint
  • campos condicionados entre ellos según valores recíprocos
  • contadores de tiempo pendiente
  • y muchos más que vale la pena conocer

Ajustar el acceso al formulario

Añadir campos a un formulario no es el único aspecto que debe satisfacer una herramienta de este estilo. En otra pestaña de la configuración de cada formulario, se especifican las reacciones tras llenar el formulario. Se puede programar cuál es el texto de respuesta para ese formulario, si la respuesta es una página separada, si se redirige al usuario a otro lugar de la web, se refresca la página del mismo formulario con un mensaje estándar del CMS y que texto mostrará el botón de enviar los datos.

Otro aspecto importante que se define en esta página es el sistema de permisos del formulario:

  • por un lado cuáles son los roles del sistema que pueden acceder al formulario (podría ser un formulario solo para los miembros de la intranet)
  • cuántas veces puede enviar un usuario ese formulario (podría ser un sistema de pedir información a usuarios de un rol y solo queremos que lo envíen una vez)
  • y cuántas veces puede enviar un usuario ese formulario por hora (u otros plazos temporales)
  • cuántas veces se puede enviar ese formulario en general (podría ser para un concurso que tiene un límite de 1000 peticiones)
  • y cuántas veces puede enviarse ese formulario por hora (u otros plazos temporales)
  • si el formulario está abierto (activo) o ya cerrado
  • indicarle al usuario (opcionalmente) si ya ha enviado ese formulario y cuántas veces
  • si hay disponible un botón de "Guardar borrador" para los usuarios registrados (esta opción permite poder guardar el formulario antes de enviarlo en caso de que tenga muchos campos y sea largo de cumplimentar)
  • si el formulario estará disponible en formato de bloque para las columnas laterales de la web

Feedback y avisos

Para programar la interactividad y poder tener un control de lo que está sucediendo con el formulario hay una sección que permite programar visualmente a qué direcciones email hay que enviar un aviso de que el formulario ha sido completado.

Como vemos en el pantallazo precedente se pueden añadir tantas direcciones como queramos, y por supuesto cada formulario puede avisar a personas distintas. Sin hacer nada más que indicar aquí la dirección a la que queremos avisar cada vez que un usuario cumplimente el formulario la web lanzará automáticamente un aviso a la dirección email que le indiquemos. En cada dirección podemos definir el asunto del email y su contenido, y este contenido puede estar formado por todos los datos cumplimentados o solo por los que queramos. En cada aviso se pueden definir campos distintos.

Por otra parte el campo de dirección puede tomarse de algún campo del mismo formulario. Eso nos permitiría enviar al usuario una copia de los datos cumplimentados para que disponga de un registro de haber llenado el formulario. En este caso se requeriría que el mismo formulario tenga un campo que solicite el email, y este campo puede ser usado para ser tomado como el dato de la dirección.

En el pantallazo precedente vemos el interesante submódulo "Webform mass Email". Esta extensión de Webform permite usar uno de los campos del formulario que sea un E-mail (y preferiblemente el campo en el que le pidamos a cada persona que cumplimenta los datos con su propio E-mail) para hacer comunicaciones masivas. Un uso muy claro sería avisar a todas las personas que han rellenado un formulario de que el plazo final para rellenarlo ya ha concluido agradeciendo a todos su participación. Es una buena manera de generar una imagen positiva entre los usuarios. También podría usarse a media participación para indicar a los usuarios que avisen a los que aún faltan (en el caso de una web de formación en una institución educativa, por ejemplo).

Analizar los datos

Generalmente la razón para crear un formulario de marketing o en un entorno educativo o administrativo es para obtener envíos de respuesta y poder medir la aceptación de una campaña o de una formación online. Webform viene equipado con un sistema de medición de resultados con diversas funciones. Como podemos observar en el pantallazo adjunto bajo la pestaña de resultados se encuentran las funciones de:

  • Envíos. Como se observa en el pantallazo cada vez que se llena el formulario y se envía se registra la acción. Podemos saber la hora y día, el usuario (anónimo o el nombre del usuario de nuestra intranet que lo haya llenado), la dirección Email y unas operaciones como ver, editar y eliminar. Con este listado es fácil gestionar todos los envíos.
  • Análisis se explica un poco más abajo.
  • Tabla. En esta subpestaña se muestra una tabla de todos los envíos con todos los campos a la vista en columnas sucesivas.
  • Descargar. La tabla que veíamos en la función anterior está disponible para ser descargada tanto en formato CSV como Excel. Hay diversas formas de predeterminar la organización de los datos y también podemos seleccionar que columnas queremos exportar. Así es muy útil compartir los datos con otros usuarios y además realizar estudios estadísticos.
  • Limpiar. Esta función simplemente vacía las tablas de la base de datos para que nos quedemos sin resultados: tanto puede ser porque nuestro formulario de contacto ya está saturado o porque en una campaña queremos volver a empezar el recuento.
  • Comunicación E-mail ya ha sido comentado anteriormente.

Aunque la opción de exportar los datos en formato Excel y así poder realizar amplios análisis estadísticos en nuestra hoja de cálculo favorita, Webform nos ofrece una herramienta básica de análisis de las respuestas recibidas con el formulario. Como podemos observar en el pantallazo siguiente para cada uno de los campos expuestos en nuestro formulario este módulo nos indica:

  • cuantos usuarios han dejado ese campo en blanco en el total de envíos
  • cuantos usuarios lo han llenado
  • y la longitud promedio de las respuestas

Este análisis sin ser muy exahustivo puede ser muy útil en formularios de campañas para observar qué campos son más llenados, y descubrir si estamos preguntando algo que nadie llena. De este modo podemos ir mejorando nuestra forma de recabar información y por tanto la eficacia de la consulta.

Conclusiones

Como vemos Webform es una herramienta muy potente, ampliable y flexible de realizar formularios en cualquier web con Drupal. Como lleva tanto tiempo de desarrollo tenemos versiones para cualquier versión de Drupal, y por tanto podemos integrarlo en cualquier web de Drupal. Para las últimas versiones 6 y 7 de este CMS disponemos además de una gran cantidad de extensiones de ampliación con el que podemos construir formularios tan complejos como queramos.

Gracias a su extensibilidad Webform puede ser útil para un gran abanico de necesidades: construir un sistema de soporte a usuarios básico, campañas de contacto con el público de una organización, inscripciones a eventos, venta de entradas, votaciones sobre cuestiones relevantes, consursos, incluso un sistema de formación a distancia. Prácticamente cualquier web puede necesitar formularios de un tipo u otro, pero en algunas webs se puede alimentar un sistema CRM con gran facilidad gracias a la libertad de poder estar construyendo formularios con periodicidad.

En entornos administrativos Webform puede ser herramienta básica para posibilitat el acceso online a los usuarios de una zona ofreciendo formularios para la petición de diversos servicios o instancias, por ejemplo en la web del ayuntamiento de una pequeña población o de un centro formativo universitario.

Si esta exposición de las habilidades de Webform le suscita preguntas sobre si es posible crear algún tipo de solución específica para su organización, dispongan de web en Drupal o no, no dude en ponerse en contacto no nosotros a través de nuestro formulario de contacto (que por cierto, como no, está hecho en Webform ;-)