Alex Franco

Blog de Alex Franco, aquí podrás encontrar temas de tecnología, desarrollo web y móvil, Python, Django, Mongo, DBs y… otros temas más
Home  /  Featured Articles • Tutoriales  /  Enviar correo después de contestar Formulario de Google Drive automáticamente

Enviar correo después de contestar Formulario de Google Drive automáticamente

Alex Franco Formularios, GMail, Google Drive, Scripts 45 Comments

¿Alguna vez han tenido la inquietud que cuando responden una encuesta o un examen en línea les envíe un correo con sus respuestas, o si crean un formulario de registro le envíe a cada inscrito un correo con el resumen de su evento o similar?

La respuesta siempre caía en “hay que hacer un sistema que nos haga eso”, pues ahora pueden ahorrarse unos cuántos pesos y un tiempo considerable, les comparto un tutorial que realicé donde al momento en que se envía un formulario hecho con Google Drive, además de que tenemos un registro, le envía un correo al usuario que ha completado el formulario con un resumen de sus respuestas. Estas son las bases, si quieres hacer algo más complejo, ya dependerá de tu imaginación.

El código pueden encontrarlo en este enlace.

Enjoy!

Relacionado

About Author

Alex Franco

 IT

Previous Article Combinar Correspondencia con Google Drive y GMail
Next Article Crea tu propio MOOC con Google Course Builder: desde la Descarga hasta su Publicación

Related Posts

  • Enviar correo personalizado automáticamente cuando respondan un Formulario de Google

    Enviar correo personalizado automáticamente cuando respondan un Formulario de Google

  • Django + AllAuth + Google OAuth 2.0

    Django + AllAuth + Google OAuth 2.0

  • Agregar número consecutivo y enviar correo al contestar Formulario de Google Drive

45 Comments

  1. Jaume Reply
    2014-09-19 at 3:02 am

    Muchas gracias por tu tutorial! Me ha servido muchísimo 🙂

    • Lady Ortiz Reply
      2020-09-03 at 2:10 pm

      Hola buenas tardes , estoy intentando generar la respuesta automatica a un formulario de google siguiendo el tutorial pero no he podido ya que me sale el siguiente error: SyntaxError: Unexpected identifier (línea 4, archivo “Código.gs”) me podrias ayudar por favor. para poder solucionarlo.

      Muchas gracias

  2. Christian Reply
    2016-04-11 at 12:30 pm

    Estimado,

    Necesito que en la respuesta automática vaya un numero correlativo correspondiente a la fila donde se ingresaron los datos correspondientes al formulario.

    Me podrías ayudar.

    • Alex Franco Reply
      2016-04-11 at 12:34 pm

      Puedes encontrarlo aquí http://jafrancov.com/2016/01/consecutivo-email-form-google-drive/

  3. sandra corcuera Reply
    2016-04-18 at 4:05 pm

    hola buenas tardes me pidieron hacer un formulario para el control de peticiones del area de sistemas de soporte tecnico. le quiero agregar un numero consecutivo.
    cada vez que la persona llene el formulario y mande un ticket que me aparesca ese formulario a mi pero con un numero
    ¿si se puede???

    • Alex Franco Reply
      2016-05-11 at 1:19 pm

      Aquí está la respuesta http://jafrancov.com/2016/01/consecutivo-email-form-google-drive/

  4. naciende culleredo Reply
    2016-04-25 at 9:06 pm

    Sensacional, pero el enlace al codigo esta roto

    • Alex Franco Reply
      2016-05-11 at 1:19 pm

      Solamente lo moví de ubicación, link actualizado.

  5. Gabriel Alejandro Villalba Reply
    2016-05-26 at 9:02 am

    Hola me pidieron que se envie junto al texto del correo una imagen de la empresa se podría hacer eso?

    • Alex Franco Reply
      2016-08-24 at 10:38 am

      En el código html (variable body_html) agrega un tag img, y sube la imagen a algún sitio donde pueda accesarse, quedando algo como:

      <img src="http://dominio.com/imagen.jpg"> 

      Asegúrate que la imagen sea de un tamaño adecuado, para que se vea bien en el correo.

      • Danny
        2021-03-11 at 10:58 am

        Lo intente tal cual y me marca error en el simbolo < menor que. ayuda 🙁 ,ademas de que no me aparece lo que haces de trigger, donde lo encuentro?

  6. Jorge Reply
    2016-06-22 at 5:26 pm

    como se puede extraer una cadena de caracteres de 5 listas desplegables (primeros 3 caracteres) del formulario de google? es para armar una clave con estos datos.

    • Alex Franco Reply
      2016-08-24 at 12:00 pm

      Puedes hacerlo con .slice(), por ejemplo:
      var uno = “ABCD”
      var dos = “EFG1”
      var resultado = uno.slice(0,2) + dos.slice(3,3)
      resultado sería “ABC1”

  7. Gerardo Rodriguez Reply
    2016-07-19 at 4:37 pm

    y si quisiera agregar una imagen en el correo, cómo puedo realizar lo??

    • Alex Franco Reply
      2016-08-24 at 12:20 pm

      En el código html (variable body_html) agrega un tag img, y sube la imagen a algún sitio donde pueda accesarse, quedando algo como:

      <img src="http://dominio.com/imagen.jpg"> 

      Asegúrate que la imagen sea de un tamaño adecuado, para que se vea bien en el correo.

  8. Marcelo Miranda Reply
    2016-08-11 at 6:39 pm

    Mi formulario esta dirigido a dos segmentos: A y B, los identifico al incio del mismo.
    A contesta preguntas 1, 2, 3 y 4 y se envía formulario.
    B contesta preguntas 5, 6, 7 y 8 y se envía formalario.
    El correo que recibe A lleva las preguntas 5,6,7 y 8 vacías…
    El correo que recibe B lleva las preguntas 1,2,3 y 4 vacías…
    Que puedo hacer para que sólo reciban las que les corresponden y que son las que contestaron.
    Muchas gracias.

    • Alex Franco Reply
      2016-08-24 at 12:42 pm

      Un IF hace la magia:

      var AoB = evalues[1];
      if(AoB == "A") {
          // Arma correo con 1,2,3,4
      } else {
          // Arma correo con 5,6,7,8
      }
      // Envía correo
      
  9. Edgar Guevara Reply
    2016-08-24 at 8:38 am

    Hola Alex, he utilizado el código pero no funciona, ya lo he revisado y no le encuentro la falla, cuando lo corro con el botón de “ejecutar” aparece el siguiente mensaje en rojo TypeError: No se puede leer la propiedad “values” de undefined. (línea 4, archivo “Código”) me podrias ayudar a descubrir que esta pasando? la linea 4 es var timestamp = e.values[0];

    • Alex Franco Reply
      2016-08-24 at 1:12 pm

      No funcionará si intentas correrlo desde la consola donde tienes el código (botón de ejecutar), ya que no está recibiendo datos de ningún formulario, necesitas hacer la prueba activando los disparadores o triggers y luego respondiendo el formulario, tal cual se muestra en el video.

      • Edgar Guevara
        2016-08-24 at 4:36 pm

        Gracias por su oportuna respuesta. He seguido los pasos del video pero no funciona, no envía el correo, Claro que el código lo copie sobre una hoja que ya tenia y por supuesto las variables son concordantes con los de la hoja de calculo. ¿Le podría enviar el código?

  10. Francisco Pernia Reply
    2019-01-25 at 2:12 pm

    Muchas gracias Alex.. Seguí todas las instrucciones del video y funciona GENIAL!!!
    Solo que hay actualizaciones de Gmail, que tuve que activarlo de otro modo.. pero todo funciona bien.. excelente

  11. Roger Barrera Penafiel Reply
    2019-01-31 at 10:37 am

    Es posible adjuntar un pdf? o adjuntar un link en el correo?

    • Alex Franco Reply
      2019-02-16 at 3:07 pm

      Ambas cosas es posible, sin embargo el PDF es un tanto más complejo, puedes agregar el link pero tener el PDF publicado en algún lado en internet

      <a href="http://tu_link">Descargar</a>
      
      • Antonio
        2020-10-18 at 11:19 am

        Hola Alex, ¿podrías hacer un video donde se implemente lo de adjuntar un pdf que se modifique con los datos del formulario?
        Gracias.

  12. Kathy Reply
    2019-03-23 at 11:28 am

    Hola, he visto varias veces tu video y no me corre. He seguido tus pasos y me sale aparece el siguiente mensaje en rojo TypeError: No se puede leer la propiedad “values” de undefined. (línea 4, archivo “Código”). Me podrias ayudar a descubrir que esta pasando? la linea 4 es var marca = e.values[0];

    • Alex Franco Reply
      2019-03-23 at 9:12 pm

      No ejecutes el código desde consola, no funcionará, se ejecutará correctamente cuando reciba una respuesta que venga del formulario, tal como funciona en el video, saludos.

      • Ignacio Dávila
        2019-04-15 at 3:51 pm

        cuando lo ejectuo de la consola me ocurre ese error, hago lo que dices de completar el formulario pero tampoco me envia el mail

      • Alex Franco
        2019-05-27 at 7:27 pm

        SI ya lo ejecutaste respondiendo el formulario entonces no está ligado el código al activador, revisa eso y debe funcionar, saludos

  13. Melissa Lis Reply
    2019-03-24 at 7:58 am

    Buen día, sabes donde puedo encontrar mas códigos? Es que debo generar una respuesta indicando ciertos parámetros condicionales y no lo he conseguido, el correo se envía pero con información incompleta.

    Muchas gracias

    • diana arciniegas Reply
      2020-02-21 at 8:31 am

      gracias por tu publicación!! pero el “evalues” no me funciona como mencionas coloque la columna que le corresponde [5] y no me retorna el valor!! si retorna el enunciado!!! probé con evalues [0] y si me retorno el valor de la marca temporal. me podrías ayudar
      function Rtaformulario(e){
      var emaildeusuario=”xxxx@gmail.com”;
      var mensajeemail=”Se requiere programar la siguiente solicitud – ” + e.values[4];
      MailApp.sendEmail({
      to:emaildeusuario,
      subject: “Tienes una nueva solicitud”,
      htmlBody:mensajeemail

      }
      );
      }

    • Ignacio Reply
      2020-06-29 at 10:37 am

      Hola Alex! no me aparece la opción “current projects trigger” en el menu de herramientas…hice todo tal cual dices, pero llego aqui y me doy con esto…
      se te ocurre algo?? mil gracias de antemano!

  14. Cristian Reply
    2019-03-31 at 9:27 pm

    Buen día Alex, disculpa estoy revisando tu tutorial y me ha funcionado, pero hay alguna manera para que una persona al llenar el formulario le haga legar un correo de aprobación a un gerente y este al responder si acepta o no y con esa respuesta me llegue a mi realizar el proceso interno siguiente?

  15. Kjalil Beyruti García Reply
    2019-08-21 at 8:21 am

    Hola, una preguntota, ¿como puedo hacerle para que dependiendo de lo que conteste en la pregunta de un formulario sea la información que se le envia?, trabajo para colegios y hay varias secciones, entonces me interesa que se les mande la información especifica de la sección que solicitan,

    https://docs.google.com/forms/d/e/1FAIpQLSdqs1c2fDmVHwZ996y3neoEzVmeYoyxKyBKY35nJRsu3H3zlg/viewform

    Si gustas puedo pagar por la asesoría, muchas gracias.

  16. Héctor Guevara Arias Reply
    2019-09-25 at 10:15 am

    Estimado Alex, una consulta, como puedo hacer para configurar el filtro del correo para que ciertos emails queden registrados en una hoja de calculo de google drive?

  17. luvy Reply
    2019-09-25 at 6:29 pm

    Hola Alex, me funciono el numero consecutivo pero no me deja enviar el correo, estuve viendo el video pero la version cambio entonces no se si el activador es el trigger o bien hay que agregarlo en otra funcion, podrias apoyarme, lo del envio a pdf seria genial, voy a solucionar primero esto y luego agrego el codigo que tienes.

  18. Gustavo Reply
    2019-10-31 at 11:18 pm

    Alex,

    No he podido hacer el que el activador funcione. El mail no me llega a la casilla que debería. ¿Me podrías ayudar?

  19. monicaCc Reply
    2020-01-28 at 12:21 pm

    Hola no puedo realizar el ultimo paso que es para enviar automaticamente, no encuentro la opcion de –Current projects triggers–

  20. Grecia Saknite Andrade Cortez Reply
    2020-02-13 at 4:16 pm

    Hola, buen día

    Se puede hacer el envio de correos automaticos bajo una condicional? Ejemplo, basandonos en la respuesta de una columa A, si la respuesta es “1” envia las respuestas al correo X, si la respuesta es “2” envia las respuestas al correo Y, y si la respuesta es “3” envia las respuestas al correo Z.

    Gracias!

  21. Mario Enrique Henao Cifuentes Reply
    2020-02-29 at 11:48 am

    Hola un saludo, gracias por compartir los tutoriales, soy Mario ENrique Henao Cifuentes docente de la Escuela Normal SUperior Jorge Isaacs de Roldanillo – Valle – Colombia, Licenciado en educación infantil y actualmente estoy en mi proyecto de investigación de maestría, quiero hacer la siguiente consulta:

    Debo hacer un test en google drive, pero que le regrese al usuario el análisis en un gráfico de Radar y unas sugerencias según los resultados, de esta manera me queda a mi la información de este usuario y el tendrá su información también,

    Este formulario permite que el maestro pueda saber en que nivel se encuentra en cada competencia TIC para el desarrollo Profesional docente.

    Este es el que yo presente en una formación con una universidad aca en Colombia:

    http://apps.cpe.gov.co/competencias-tic/encuesta/

    El informe de prueba lo muestra de la siguiente manera: (es el mio)

    http://apps.cpe.gov.co/competencias-tic/?name=Mario%20Enrique%20Henao%20Cifuentes&tec=34&ped=33&com=34&ges=34&inv=32&amp;

    En el siguiente enlace está el que yo diseñe pero que debo adaptar para que quede como en los enlaces anteriores, puesto que de esta manera me demoro más para sacra los análisis no seria automático.

    Mi test:
    https://docs.google.com/forms/d/e/1FAIpQLSdWidn_5kFi2PwcTtFOY3HGV1xtKoPDjKQD6hzYSJd3dK8u5Q/viewform

    Debo hacer esta implementación, me urge saber como se construye y la verdad he buscado pero no he podido hacerlo, no se si usted me pueda colaborar en esta parte o decirme con quien puedo comunicarme.

    No se cuanto me puedan cobrar por enseñarme esta parte.

    En espera de su respuesta le estoy muy agradecido

  22. KRen Barbarón Huamán Reply
    2020-03-25 at 1:39 pm

    Excelente video! pero lo único que no encuentro es la opción de current project’s triggers en la cinta de recursos.

  23. Mauricio Reply
    2020-05-07 at 8:55 pm

    Buen día, si tengo varias hojas en mi libro de excel, como selecciono de cual de las hojas va a tomar los datos que envía en el correo; muchas gracias

  24. Carolina Andrea Moya Bazán Reply
    2020-05-12 at 11:49 am

    HOLA PUEDO ADJUNTAR UN ARCHIVO EN LA RESPUESTA?

  25. Jhon Reply
    2020-06-02 at 10:32 am

    Hola quisiera saber, como puedeo ingresar que la respuesta llegue a correos como copia estoy utilizando MailApp.sendEmail(mail, asunto, plain_email_body, OpcionesAvanzadas)
    donde mail es el correo del que llena el formulario, quiero que ese mensaje llegue a mi correo y al correo del jefe

  26. Danny Reply
    2021-03-11 at 10:56 am

    Hola, estoy siguiendo el tutorial pero ya no me aparece la opción trigger, donde la encuentro?

  27. Laura Acosta Uzeta Reply
    2021-07-29 at 12:01 pm

    Buen día, Alex:

    He visto tu tutorial sobre asignar un consecutivo a los formularios de google y enviar un correo automático. Sin embargo, no ha enviado los correos. ¿A qué se debe esto? Lo he intentado varias veces y no llega ni al spam. Agradezco tu colaboración
    function sequenceNumberOnFormSubmit(e) {
    // Call the function that generates the sequence number
    var record = addSequenceNumber();

    var timestamp = e.values [0]
    var consecutivo = e.values [1]
    var name = e.values [2]
    var dni = e.values [3]
    var filiacion = e.values [4]
    var mail = e.values [5]

    var subject = “Revista Innovar” + record;

    var plain_email_body = “Respetado autor” +
    “\n\n”+ name +
    “\n\n” + filiacion +
    “\n\n” +
    “Hemos registrado su respuesta en nuestro formulario para autor” + timestamp +
    “\n\n” +
    “Este número de consutivo” + record + “deberá relacionarlo en el formulario del OJS al momento de postular su documento”;
    var html_body = “Respetado autor” +
    “\n\n”+ name +
    “\n\n” + filiacion +
    “\n\n” +
    “” +
    “Hemos registrado su respuesta en nuestro formulario para autor ” + timestamp + “” +
    “” +
    “Este número de consutivo ” + record + ““+”deberá relacionarlo en el formulario del OJS al momento de postular su documento”;

    var advancedOpts = { name: “Revista Innovar”, htmlBody: html_body };

    MailApp.sendEmail({
    to : mail,
    Subject : subject,
    htmlBody : plain_email_body,
    firma : advancedOpts});
    }

    function addSequenceNumber() {
    // Obtain the sheet where we save the answers
    var sheet = SpreadsheetApp.getActiveSheet();
    // Obtain the last row with data
    var row = SpreadsheetApp.getActiveSheet().getLastRow();
    // Sequence number (record) minus 1, this is due to the headers
    var record = row – 1;
    // Set (or write) the sequence number in the cell specified, change number 4 for the rigth column
    sheet.getRange(row,2).setValue(“RevInn0” + record);
    // Return the sequence number
    return record;
    }

Responder a Alex FrancoCancelar respuesta

Posts populares

  • Geocode Simple: Buscar direcciones (coordenadas a partir de direcciones) con GMaps API v3
  • Buscar y trazar rutas con GMaps API v3
  • Recuperar o ver las claves de las redes inalámbricas en tu Mac (o cualquier App)
  • Enviar correo después de contestar Formulario de Google Drive automáticamente

Suscríbete

Suscríbirme!

Quizá te interese

  • Aldea Digital – Día CUATRO (Final) y Conclusiones
  • Cómo hacer hojas de café para cartas, pergaminos y más
  • Recuperar o ver las claves de las redes inalámbricas en tu Mac (o cualquier App)
  • Cómo instalar MongoDB en Mac OS X
Alex Franco 2009 - 2023