martes, 29 de noviembre de 2011

Google Apps Script (I) : Formulario de contacto

Origen

Las Google Apps Scripts, o secuencias de comandos, son pequeñas programaciones de comandos JavaScript que facilita la automatización de algunas tareas en las aplicaciones de Google.

A partir de leer el post de mi amigo Antonio Garrido , asesor TIC del CPR de Alcazár de San Juan en Ciudad Real :

Cuestionario autocalificables con Google Docs y Flubaroo


en el que explica cómo hacer mediante una secuencia de comandos llamada Flubaroo, cuestionarios autoevaluables con Google Docs, me he puesto a trastear un poco con ellas y he encontrado dos utilidades más. En este post veremos cómo hacer un formulario de contacto que se envía completo a una dirección de email.

Formulario de Contacto

Sabemos que con Google Docs se pueden hacer formularios con mucha facilidad y que los datos enviados a través de ellos quedan recogidos en un hoja de cálculo. En esta hoja de cálculo se pueden configurar las notificaciones para que, cuando alguien rellena el formulario, te envíe un aviso por correo electrónico. De esta manera, podemos entrar en la hoja y ver el nuevo registro.

Hay una forma de que, cuando alguien envíe el formulario, recibir en el correo electrónico las respuestas completas, sin necesidad de acudir a la hoja de cálculo para visualizar el registro generado. Esto puede servir para hacer formularios de contacto para páginas web, etc.

Procedimiento:

1. Crear un formulario en Google Docs



2. Definimos los campos que creamos necesarios. Uno de ellos será la dirección de email de la persona que envía dicho formulario (necesario para poder responder). En este ejemplo crearé tres preguntas: Nombre, email y mensaje :


3. Una vez creados los campos guardamos el formulario y volvemos a la hoja de cálculo asociada:


4.Una vez dentro de la hoja, elegimos dentro del menú "Insertar" : "Secuencia de comandos"




5. En la ventana que aparece con el nombre de Galería de Secuencia de Comandos, hacemos una búsqueda por el término Contact Us, y en el resultado que sale "Contact Us Form Emailer" clicamos en Instalar, tras lo cual puede que nos aparezca un mensaje de error al cual no debemos hacer ningún caso :



 6. Ahora es el momento en el que tenemos que editar nuestra secuencia de comandos y activarla para que se ejecute cuando alguien envía un formulario.


 Entraremos en una nueva ventana de edición :


Tendremos que personalizar algunas líneas con nuestros propios datos :

function contactUsMailer(e) {
  //  This script e-mails the contents of a form to a given recipient
  //  The form must have three fields in the order of: name; e-mail address; and message
  //  You must change the recipient variable below to your e-mail address
  try {
    var recipient = "guerra.jc@gmail.com" ;      ENTRE LAS COMILLAS PONEMOS LA DIRECCIÓN DONDE QUEREMOS RECIBIR EL FORMULARIO
    var timestamp = e.values[0];
    var name = e.values[1];
    var email = e.values[2];
    var message = e.values[3];
    var body = name+' <'+email+'> Ha enviado el siguiente mensaje a través de la web: '+message;
    var bodyHTML1 = '<p>'+name+' <a href="mailto:'+email+'">'+email+'</a> Ha enviado el siguiente mensaje a través de la web: </p>';  PERSONALIZAMOS LAS FRASES DEL CUERPO DEL MENSAJE
    var bodyHTML2 = '<blockquote>'+message+'</blockquote>';
LA LÍNEA varbodyHTML3  LA PODEMOS BORRAR PORQUE ES PUBLICIDAD DE LA SECUENCIA QUE APARECERÍA AL FINAL DEL MENSAJE
    var advancedArgs = {htmlBody:bodyHTML1+bodyHTML2 , replyTo:email};  SI ELIMINAMOS LA LÍNEA ANTERIOR, EN ESTA TENEMOS QUE BORRAR +bodyHTML3 porque no estaría definida
    MailApp.sendEmail(recipient, "Mensaje a través de la web", body, advancedArgs);
  } catch(e){
    MailApp.sendEmail(recipient, "Error - Contact Us Form", e.message);
  }
}





Una vez hechos los cambio vamos al menú "Archivo" y Guardamos.


7. Ahora activaremos la secuencia. Para ello iremos al menú "Activadores" y ahí clicamos "Activadores de la secuencia de comandos actual"





clicamos en Here to add one now


Cambiamos el tercer campo a "On form submit" . De esta forma recibiremos el formulario cuando alguien lo envía . Guardamos el activador.


Nos aparecerá el siguiente aviso y lo autorizaremos :



8. Ahora hacemos una prueba de envío de formulario :



Si hemos realizado las acciones anteriores correctamente, recibiremos un email en nuestro buzón :




22 comentarios:

  1. Fantástico.
    Muchas gracias.
    Tengo un par de formularios de contacto que no leía porque no recibía notificaciones en mi correo.
    Tenía que ir a mis documentos de Google y ver si había algo... Y, muchas veces, cuando llegaba a leer el mensaje, ya habían pasado varios días... He realizado lo que explicas y ha funcionado correctamente.
    Saludos cordiales.

    ResponderEliminar
  2. Gracias Angel. Me alegro mucho de que te haya servido.
    Un abrazo.

    ResponderEliminar
  3. hola!!
    Mi pregunta es como puedo seleccionar del formulario que acaba de llenar una persona su correo para que este sea a donde se dirige la información que lleno?

    ResponderEliminar
  4. Gracias por el blog, muy bueno si tuviera publicidad te pagaría con clic tu trabajo. ¿Como mándale el resultado a la personas cuando termina inscribirse con formulario? visitare este blog para ver si puedo pagar de alguna manera esta información...

    edublog: www.instruye.blogspot.com

    ResponderEliminar
  5. Cuando se trata de un correo GMAIL, funciona a la perfección; sin embargo, si queremos aplicar un correo BLOGGER.COM (para que el contenido del formulario llegue a la bandeja de entradas BLOGGER), no funciona.

    ¿Alguna sugerencia?

    ResponderEliminar
  6. Hay metodos mejores que este, esta desfasado ya

    ResponderEliminar
    Respuestas
    1. Me pasarías un método nuevo? este no funciona. gracias

      Eliminar
    2. Funciona perfectamente. Yo lo sigo utilizando.

      Eliminar
  7. Hola esta muy bueno el tuto, ahora no se si me puedas apoyar, en el form de google al enviar el formulario puedo reenviarlos automáticamente a una pagina personalizada en mi pagina web?

    ResponderEliminar
  8. Fantastico tio, lo mejor que he encontrado, y tanto que funciona :)

    ResponderEliminar
  9. Funciona muy bien, excelente aporte, sabes la manera de editar las celdas? quiero agregar un consecutivo a cada registro y al lado otra celda con texto personalizado?
    Agradezco si puedes ayudarme.

    ResponderEliminar
  10. Muchas gracias, desearía saber si hay alguna forma para que la persona que rellene el cuestionario pueda adjuntar archivo/s porque la pregunta lo pide.

    Saludos,

    ResponderEliminar
  11. Hola. Todo funciona OK, excepto que en el email que llega a mi correo no recibo lo que se ingresó en el cuerpo del mensaje, es decir, recibo el nombre, el número de teléfono y el email solamente. Lo que escribió el que envió el mensaje no lo recibo. Qué estará fallando?

    ResponderEliminar
  12. Hola a todos, quiero hacer un form en google doc, pero que en la primer hoja cargue los datos el que lo llena y despues siga en las siguientes con los datos, el tema es que quiero que al terminar el form si quiere volver a cargar la ficha los datos de la primer hoja queden llenos para que no tenga que volver a ponerlos sino es un garron, alguien sabe como se puede hacer ??
    Lo maximo que vi es mandandoles mails a cada uno de los que llegan con un identificador, entonces podes saber quien los llena (mail) sin que carguen los datos pero le tenes que mandar mail a cada uno de los que llenen las fichas y lo queria hacer mas abierto.

    Desde ya muchas gracias.

    ResponderEliminar
  13. Muy Buena entrada. Muchisimas gracias por el aporte.

    ResponderEliminar
  14. Yo lo he hecho pero me llegan los envíos del formulario al documento excell del formulario en Drive.
    Yo puse mi correo a través de 1&1 y no me llega nada.
    Alguna solución

    ResponderEliminar
  15. Muy bueno. Me sirvio!!!

    ResponderEliminar
  16. Genial el tutorial
    Me ha venido muy bien ^.^
    Muchas gracias

    ResponderEliminar
  17. Pues a mi no me aparece la opción "secuencia de comando"... ya no funciona?

    ResponderEliminar
  18. Como puedo ponerle georeferenciacion al formulario que me estan enviando???

    ResponderEliminar

LinkWithin

Related Posts with Thumbnails