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

En este ejemplo agregaremos un número consecutivo (secuencial, auto-incremental) a cada registro que ingrese a un formulario de Google Drive, además tomamos el ejemplo de un video anterior de mandar un correo electrónico para mostrar una posible aplicación de estas tareas.

Código: Github @jafrancov

41 comentarios en “Agregar número consecutivo y enviar correo al contestar Formulario de Google Drive”

  1. Hola , me ha servido mucho esta herramienta; necesito saber si es posible que pudiese buscar el numero de cliente ingresado(rut) en el formulario y que en la respuesta automática venga la condición de venta asociada a otra tabla.

    Responder
    • No he hecho algo similar, sin embargo, debe poderse, aunque habría que hacer llamadas a otro archivo, algo como

      var doc = SpreadsheetApp.openById(ID_SPREADSHEET_DATOS)
      

      A partir de ahí seleccionar la hoja adecuada, hacer la búsqueda y el proceso para armar la respuesta.

      Responder
      • Me podrías ayudar con un pequeño ejemplo mira te explico mejor el problema;

        el formulario indica rut de la empresa; y necesito que el mail entregue un correlativo he indique las condiciones de venta asociadas a ese rut.

        Documento al que hay que consultar tiene 3 columnas una cliente,rut y condición de pago.

        Gracias por responder.

  2. Hola Alex a mi me marca el error TypeError: No se puede leer la propiedad “values” de undefined. (línea 5, archivo “numero consecutivo”, y ya busqué para corregir pero nada, porfa si me puedes ayudar a corregirlo

    Responder
    • Es una situación relativamente común, eso pasa cuando se trata de ejecutar el código sin recibir una respuesta del formulario, la manera de probarlo es enviando una respuesta a través del formulario, con eso no da errores, ?.

      Responder
  3. Buen dia no encunetro en la pestaña de recursos “Activadores del proyecto activo”, solo me aparecen 3 opcionesBibliotecas; Proyectos Cloudplataform y servicios avanzados de google. Me podrias ayudar para poder terminar de ejecutarlo, muchas gracias

    Responder
  4. Hola Alex, me aparece esto: Falta “;” delante del enunciado. (línea 1, archivo “Código”) no sé porqueé ya revise pero no le hallo.

    Responder
  5. Hola
    me devuelve un error una vez generado el activador, una vez rellenado el formulario me envia un correo con el siguiente mensaje:

    Inicio Función Mensaje de error Activación Fin
    24/04/19 12:30 sequenceNumberOnFormSubmit El correo electrónico no es válido: edu (línea 23, archivo “Código”) formSubmit 24/04/19 12:30

    En la linea 23 del codigo:

    MailApp.sendEmail(mail, subject, plain_email_body, advancedOpts);

    Responder
      • Hola!
        Puedo devolver un codigo personalizado? Necesito devolver para la inscripcion a un evento un codigo unico a cada inscripto de letras y numeros no secuencial. para que los inscriptos no sepan cuantos son ni em que orden estan pero puedan identificarse.
        El codigo lo puedo cargar manualmente en una columna de antemano. No necesito que sea aleatorio.
        Gracias!

      • Gracias por compartir esta genial … ya me da el consecutivo.. pero no me esta devolviendo el correo de aviso.. que estare haciendo mal?

  6. Hola! a mi me interesa solo poner el consecutivo en la hoja de cálculo, sin necesidad de enviarlo al correo. Pero no sé cómo no usar la parte de enviar al correo. ¿Podrías ayudarme?
    Por otro lado, me gustaría saber si puedo definir el formato del consecutivo, algo así como SC-##
    Muchas gracias

    Responder
  7. Hola Alex, buenas tardes! Excelente explicación, tengo una duda. ¿Existe alguna manera de que al terminar de contestar el formulario te asigne un folio aleatorio? Es decir, que las personas que contesten el formulario al finalizar tengan un folio aleatorio y que ese sea como su respaldo al validar que si se están reportando. Se me ocurre utilizar la formula de ALEATORIO pero no se como implementarla, por favor help meeee jeje saludos

    Responder
  8. Hola Alex, excelente explicación, será que pueda iniciar el número consecutivo de un número diferente a 1?
    Por ejemplo si quiero que inicie en el 10 y luego vaya el 11 y luego el 12 y así… c puede?

    Responder
  9. Hola buenas tardes tu código me a servido muy bien pero tengo una pregunta se pueden enviar 2 correos con diferentes textos de de 2 diferentes formularios?

    Responder
  10. Hola Alex, gracias por compartir tus conocimientos, puedo enviar un correo cuando se actualice el contenido de una celda? por ejemplo en mi hoja de datos tengo una columna con el estado de la respuesta, cuando la actualizo a ATENDIDA me gustaría enviarle un correo a quien la originó.

    Responder
  11. Hola buenas tardes,

    Deseo enviar a las personas que llenen el formulario un código secuencia que inicie de otro número y lleve letras, esto es PI045 como inicial e incremente a un máximo de PI130. Me puedes ayudar??

    Responder
  12. Hola Alex, me sale esto TypeError: No se puede leer la propiedad “values” de undefined. (línea 9, archivo “Código”)… me podrias ayudar

    Responder
  13. Hola Alex,

    Yo cree un formulario y estaba funcionando perfectamente (este era de prueba)
    Cree otro formulario con más preguntas y use el mismo codigo, solo cambiando la posición de la columnas de donde recupera los correos, sin embargo, en este nuevo formulario me llegan las notificaciones me envía un correo de “El mensaje no se envío… Hubo un problema al entregar tu mensaje a aaaa@XXX.com, consulta los detalles tecnicos a continuación o intenta enviarlo más tarde”, y ya no envía los correos de este nuevo formulario.

    Ya elimine todas las respuestas y volvi a crearlo y a generar los activadores y aun así sigue apareciendo ese correo.

    Saludos!

    Responder
  14. Excelente aporte.
    Tengo una consulta, es posible descargar un archivo (xls) desde una de las preguntas, y volver a subir ese archivo??

    Responder
  15. Buenos dias Alex, estoy usando el codigo para un concurso virtual, tengo el problema que uno de los participantes se registro pero no le dio numero y esa casilla sola en la hoja de sheets aparece en blanco, debajo de ella el proximo concursante tiene su numero coorelativo asignado. El usuario que le falta el numero me envia una confirmacion de numero de registro que le toca al compañero de abajo.

    Responder
  16. Hola Alex,
    Implemente la función y al principio funcionaba y enviaba el correo, pero ahora ya no recibo el correo, sin embargo si genera el numero consecutivo. Tienes alguna idea de a que se debe?

    Responder
  17. Hola Alex, oye al querer integrara el activador, esto me pone Google:

    “Esta aplicación está bloqueada
    Esta aplicación ha intentado acceder a información sensible de tu cuenta de Google. Para proteger tu cuenta, Google ha bloqueado este acceso.”

    ¿Que puedo hacer?

    Responder
  18. saludos, se puede enviar el correo al usuario de la columna 10 y con copia al usuario de la columna 12, y con copia a mi que soy el creador del formulario?, gracias

    Responder
  19. Hola, se podría adjuntar un archivo PDF con la respuesta al correo? En mi caso me solicitan información sobre mis servicios de asesoría y toda esa información la tengo en un PDF de 4 hojas.

    Gracias!

    Responder
  20. function consecutivoOnformsubmit(e) {
    var consecutivo = agregarNumeroconsecutivo(SG455)

    var registro = e.values [SG455];
    var nombre = e.values [SG456];
    var correo = e.values [SG457];

    var asunto = “solicitud numero ” + consecutivo;

    var email_plano = “¡hola ” + nombre + “!” + “\n\n”
    “hemos registrado tu solicitud enviada el ” + registro + “\n\n” +
    “para seguir el estatus pregunta por la solicitud numero” + consecutivo;
    }
    function agregaragregarNumeroconsecutivo(SG455) {
    var hoja = SpreadsheetApp.getActiveSheet(Respuestasdeformulario1)
    var fila =SpreadsheetApp.getActiveSheet(18).getLastRow(19);
    var consecutivo = (fila -1);
    hoja.getRange(fila.19).setValue.(consecutivo);
    return consecutivo;
    }

    y me arroja el error en la linea 18

    Responder
  21. Alex buenas tardes. El codigo funciona pero no me envía el email de confirmación, ya le di permiso para el uso del correo pero no salen. Te copio el código que use en mi caso:

    function sequenceNumberOnFormSubmit(e) {
    // Call the function that generates the sequence number
    var record = addSequenceNumber();

    var timestamp = e.values[0];
    var name = e.values[4];
    var correo = e.values[5];
    var descripcion = e.values[9];

    var subject = “Request number ” + record;

    var plain_email_body = “Hola ” + name + “!” +
    “\n\n” +
    “Registramos tu solicitud envíada el ” + timestamp +
    “\n\n” +
    “El número de SDR es el” + record + “. ” + descripcion;
    var html_body = “Hola ” + name + “!” +
    “” +
    “Registramos tu solicitud envíada el ” + timestamp + “” +
    “” +
    “El número de SDR es el ” + record + “” + “. ” + descripcion;

    var advancedOpts = { name: “Formulario – Equipos MPSA”, htmlBody: html_body };
    MailApp.sendEmail(correo, subject, plain_email_body, advancedOpts);
    }

    Gracias por tu ayuda!

    Responder

Responder a Alex FrancoCancelar respuesta