Enviar múltiples correos electrónicos en Google Sheets con un solo botón - Combinar correspondencia

Поділитися
Вставка
  • Опубліковано 23 січ 2025

КОМЕНТАРІ • 139

  • @deibysyagola
    @deibysyagola Рік тому +1

    Hola Buena Tarde, quiero felicitarte y darte las gracias por el apoyo que nos brinda. tus videos son de gran ayuda Dios te bendiga.

    • @JuanSGuzman
      @JuanSGuzman  Рік тому

      Hola!
      Que amables palabras! Mil gracias!
      Saludos!

  • @benditofutbolcol
    @benditofutbolcol 4 роки тому +3

    Me estoy devorando todos tus videos. Excelentes, sigue así 💪

  • @bernardogudino8607
    @bernardogudino8607 2 роки тому +1

    Super bien explicado y claro!!! Mil gracias, mi trabajo se ha vuelto mucho más eficiente gracias a tus tutoriales. Grande Ing. Guzmán!

  • @alejandrobenitez9807
    @alejandrobenitez9807 4 роки тому +1

    Impresionante la utilidad de tus vídeos y lo bien explicado.muchisimas gracias desde Argentina

    • @JuanSGuzman
      @JuanSGuzman  3 роки тому

      Hola Alejandro
      Mil gracias por tus palabras!
      Un gran saludo!

  • @felipeaguila1760
    @felipeaguila1760 3 роки тому +1

    Nuevamente Muchas gracias Ing. Guzman por sus aportaciones
    Con esto vamos más allá de sheets, y combinamos con gmail, para automatizar funciones.
    Felicidades por el canal, la página, y todos cursos

    • @JuanSGuzman
      @JuanSGuzman  3 роки тому

      Mil gracias por tus palabras Felipe!

  • @valenfz
    @valenfz 4 роки тому +1

    Hola, Excelente video, y especialmente tienes un don para explicar, vas paso a paso totalmente claro , me ha ayudado muchísimo, seguí tus videos anteriores y este pero no supe como hacer para que me cambie el asunto por cada correcto.

    • @JuanSGuzman
      @JuanSGuzman  4 роки тому +1

      Hola!
      Mil gracias!
      Lo voy a explicar en la parte 2 de este, espero estrenarlo muy pronto
      Un gran saludo!

  • @manuelrobles4632
    @manuelrobles4632 3 роки тому

    Eres el puto amo de sheets

  • @paulaandreapayares6428
    @paulaandreapayares6428 2 роки тому +1

    Mago!
    Mil gracias ♥

    • @JuanSGuzman
      @JuanSGuzman  2 роки тому

      Hola!
      Que amables palabras! Mil gracias!
      Saludos!

  • @deyvercjuropena2916
    @deyvercjuropena2916 4 роки тому

    Muchas gracias por compartir su conocimiento!!! funciona perfectamente ..si el correo esta mal digitado ..sale error y deja de enviar ....es posible que si no esta correcto el correo continúe enviando a las siguientes celdas

  • @carlosd8689
    @carlosd8689 4 роки тому

    Buenísimo! Gran material 👍

  • @freddybrionesgutierrez9295
    @freddybrionesgutierrez9295 2 роки тому +1

    Hola excelente, gracias. ¿Se puede hacer lo mismo con un for y se pueden enviar adjuntos personalizados?

    • @JuanSGuzman
      @JuanSGuzman  2 роки тому

      Hola!
      Si y si, jaja
      Te dejo la lista de envío de correos
      ua-cam.com/video/lPt5cAhnlFs/v-deo.html
      Saludos!

  • @rafaelguardiola7165
    @rafaelguardiola7165 3 роки тому

    Juan Antes que todo lo felicito por su labor, referente a estos temas este es el mejor canal que existe. Gracias por compartir su sabiduría.
    Tengo una 2 preguntas, ojalá me pueda ayudar
    al enviar el correo de forma automática como puedo cambiar el formato de la fecha que aparece por default
    Wed Dec 22 2021 11:00:00 GMT-0500 (hora estándar oriental
    Cambiarlo por alguno distinto por ejemplo: 22/12/2021 11:00
    La segunda cuestión es que me aparece diferente la zona horaria que tengo capturada en mi hoja a la que se manda en el correo en automático, como hago para ambos tengan la misma zona horaria ??
    De antemano muchas gracias y nuevamente felicidades por todo su trabajo.

  • @jcpenato
    @jcpenato 4 роки тому +1

    Excelente JuanS. Sugiero complementar envío de correo adjuntando una archivo conformado por una copia de una de las hojas de mi archivo

    • @JuanSGuzman
      @JuanSGuzman  4 роки тому

      Hola Juan Carlos
      Muy buena idea
      La otra semana viene un video de adjuntos...después veremos la generación de PDFS
      un gran saludo!

  • @maximoramirezbiseno6566
    @maximoramirezbiseno6566 4 роки тому +1

    hola juan gracias por compartir tus conocimientos, solo para ver si pudieras decirme que cuando se realiza un formulario los resultados de este mismo, se vayan a una hoja de calculo y estos también a un correo.

    • @JuanSGuzman
      @JuanSGuzman  4 роки тому

      Hola!
      Que se vayan a una hoja de cálculo se puede hacer automáticamente simplemente enlazando el formulario con sheets
      Para el envió del mail, puedes usar este mismo código pero atarlo a un activador que se ejecute con el envío del formulario.
      Te dejo un video de activadores
      ua-cam.com/video/lrQQrOA_uKw/v-deo.html
      Saludos!

  • @fernandosanchez82
    @fernandosanchez82 2 роки тому +2

    Hola! Juan ! Buen dia, como logro evitar que al oprimir enviar correo masivo me vuelva a enviar a los que ya fueron enviados ? y como logro colocar el OK de enviado automáticamente tambien en los envios masivos ? Muchas gracias !

    • @JuanSGuzman
      @JuanSGuzman  2 роки тому

      Hola Fernando,
      Aquí te dejo una serie de combinar correspondencia que te dara luces
      ua-cam.com/video/8g2C15DkVbM/v-deo.html
      Saludos!

  • @WilliamAmayaDiaz
    @WilliamAmayaDiaz 3 роки тому

    Gracias por el video, ha servido de mucha ayuda. Pregunta: De que forma puedo enviar una selección a una variable ??

  • @yaelakingoytiaguerrero4376
    @yaelakingoytiaguerrero4376 Рік тому +1

    Hola, excelente video. La verdad yo no sabía nada de Sheets hasta que llegue a tu canal, muchas gracias. Solo dos consultas. ¿Como puedo omitir la instrucción cuando en mi listado no tengo algún correo y no me lance error al ejecutar? y ¿Cómo puedo insertar una firma digital al final de cada correo enviado? esto último debido a que tengo la firma configurada pero no aparece una vez enviada.
    Espero me puedas instruir en esas dos consultas. ¡De antemano muchas gracias!

    • @JuanSGuzman
      @JuanSGuzman  Рік тому +1

      Intenta cambiar el forEach así
      contactos.forEach(function(fila){
      if(fila[0]){
      var mensaje = crearMensaje(fila);
      GmailApp.sendEmail(fila[0], asunto, mensaje);
      }
      })
      Saludos!

  • @damarisgutierrezortiz294
    @damarisgutierrezortiz294 Рік тому +1

    Hola
    Me has ayudado un montón
    Mil gracias
    Casi no tengo conocimiento de programación y lo logré excelente explicación
    En mi trabajo debo enviar este mismo formato varios correos así como este cómo si fuera combinación de correspondencia, pero debe irse a uno o dos destinatarios y copia a mi jefe y/o jefes de los destinatarios
    He buscado y encontré correo con copia pero envío sencillo no con Plantilla....
    Ayudaaa cómo se llama el video?..
    Puedo copiar los códigos y pasarlos?🤯🤯
    Gracias gracias gracias

    • @JuanSGuzman
      @JuanSGuzman  Рік тому

      Hola!
      Gracias por tus palabras!
      con plantilla no cambia nada, usa las opciones
      GmailApp.sendMail(destinatario,asunto,mensaje.{
      cc:"jj@gmail.com",
      bcc:"jj@gmail.com",
      }
      Saludos!

  • @tiiiagosoares
    @tiiiagosoares 3 роки тому +1

    Muchas gracias Juan. Me gustaria saber se hay alguna opción para agendar el envio masivo

    • @JuanSGuzman
      @JuanSGuzman  3 роки тому +1

      Hola Tiago
      Claro que si, esto se hace con los activadores por tiempo
      Usas la misma función que hicimos aquí pero le creas un activador por tiempo
      Aquí te dejo un video
      ua-cam.com/video/lrQQrOA_uKw/v-deo.html
      Saludos!

    • @tiiiagosoares
      @tiiiagosoares 3 роки тому

      @@JuanSGuzman muchas gracias por compartir sus conocimientos con nosotros.

    • @JuanSGuzman
      @JuanSGuzman  3 роки тому

      @@tiiiagosoares Gracias a ti por tus amables comentarios!

  • @algoritmolegal
    @algoritmolegal 3 роки тому +1

    Inge, se puede adjuntar archivos para enviarlos de manera individual a cada correo ?

    • @JuanSGuzman
      @JuanSGuzman  3 роки тому +1

      Hola
      Claro que si
      Aquí te dejo el video
      ua-cam.com/video/w6UOy1PPXV4/v-deo.html
      Un gran saludo!

    • @algoritmolegal
      @algoritmolegal 3 роки тому +1

      @@JuanSGuzman Gracias profe, sería bueno que hiciera un vídeo de cómo envíar mensajes y archivos personalizados por Whatsapp desde sheets 💪

    • @JuanSGuzman
      @JuanSGuzman  2 роки тому

      @@algoritmolegal Hola! Al fin lo lancé hace algunos meses. No es el mejor, pero ha servido a algunos. Gracias por esa sugerencia. Saludos!

  • @damarisgutierrezortiz294
    @damarisgutierrezortiz294 Рік тому +1

    Hola Juan
    Por fa Tambien me pueee decir si en la plantilla puedo marcar texto en negrita? Por ejemplo el nombre del destinatario y a donde queda el registro de envio de correos no salen en mi Gmail 😢

    • @JuanSGuzman
      @JuanSGuzman  Рік тому

      Para esto tienes que usar plantillas html
      Te dejo un video
      ua-cam.com/video/bDA7vZSaKNA/v-deo.html
      Saludos!

  • @By_FerchoST
    @By_FerchoST Рік тому

    Hola esto sirve cuando el Sheets es resultado de un formulario que va alimentando es deir en el Sheets los registros van incrementando?

    • @JuanSGuzman
      @JuanSGuzman  Рік тому

      Claro que si
      Debería funcionarte
      Saludos!

  • @iziv2467
    @iziv2467 3 роки тому

    EXCELENTE JUAN!!! Consulta: Necesito enviar por email turnos personalzidos (los cargados en la sheet) pero a su vez necesito el destinatario del correo me envie confirmacion de asistencia. Como puedo implementarlo? Desde Ya MILLON DE GRACIAS POR COMPARTIR TUS CONOCIMIENTOS

  • @JanLuOsmar
    @JanLuOsmar 4 роки тому

    excelente se podria poner check para indicar cual se va a enviar dado que puedo tener como indica google maximo 100 y deseo enviar hoy dia un ejemplo 100 mañana los otros 100 que me falta pero tengo mas de 400 correos por enviar como poner una marca en que me he quedado por enviar

    • @JuanSGuzman
      @JuanSGuzman  4 роки тому

      Hola en unos pocos días sale la segunda parte , y creo que te va a servir mucho.
      Saludos!

  • @merlyangelicagamarrarojas1952
    @merlyangelicagamarrarojas1952 3 роки тому

    Hola Juan !
    Me ha ayudado mucho tus videos, una consulta , si quiero que en el mensaje del correo salga una fecha en formato fecha y hora , como lo podría modificar ?
    saludos cordiales . Buen inicio de año !

  • @nelsonpicon4901
    @nelsonpicon4901 2 роки тому

    muy bueno el contenido, podria hacer las letras de mayortamaño.gracias

    • @JuanSGuzman
      @JuanSGuzman  2 роки тому

      Hola!
      Muchas gracias por la sugerencia! Voy a ponerla en práctica
      Saludos!

  • @elkinsax
    @elkinsax 4 роки тому +1

    Hola Juan muy buena explicación, me gustaría que nos ayudaras para enviar un correo con imagenes y botones css para darle un poco mas de interactividad. muchas gracias

    • @JuanSGuzman
      @JuanSGuzman  4 роки тому

      Hola Elkin
      Acabo de publicar este video que creo que te ayudará
      ua-cam.com/video/QccQGWxNCWA/v-deo.html
      Me cuentas si te sirvió
      Saludos!

  • @mhcastillof
    @mhcastillof 3 роки тому +1

    Una consulta, si tengo una cuenta empresarial pero es de outlook, hay alguna alternativa

    • @JuanSGuzman
      @JuanSGuzman  3 роки тому

      Hola Manuel
      Obligatoriamente debes tener gmail, pero puedes hacer algunos trucos como en este video
      ua-cam.com/video/9ebNJcR9k9c/v-deo.html
      Saludos!

  • @JesusJimenez-tk3nz
    @JesusJimenez-tk3nz Рік тому

    Hola que tal Espero me puedan apoyar mi Duda al llenar la pantilla los datos me salen como muchos digitos despues del punto decimal , ya que es el resultado de un porcentaje. hay alguna forma donde esto pasarlo a un entero ? gracias

    • @JuanSGuzman
      @JuanSGuzman  Рік тому

      Haz el formato en tu Sheet y en vez de getValue usa getDisplayValue
      Saludos!

  • @Usuaurio-kj1ym
    @Usuaurio-kj1ym 3 роки тому +2

    Hola gracias, me gustaría que la plantilla fuera un documento de Google doc, para poder usar encabezado con el logo de la institución y texto de diferente tipo y que lo mande como PDF al correo de cada alumno, lo quiero para informar las calificaciones a cada alumno de mi materia

  • @joecampos07
    @joecampos07 4 роки тому +1

    Hola Juan he estado siguiendo tus videos y me han ayudado muchisimo para los envios de mail.
    La unica duda que me queda sobre el Mail Merge es: ¿puedo generar una huella que diga cuando se hizo el envio de todos los correos? Asi como en el video de enviar correo por fila que se dejaba la huella por cada fila. espero puedas ayudarme. Saludos.

    • @JuanSGuzman
      @JuanSGuzman  4 роки тому +1

      Hola Joe
      Mil gracias
      Claro que se puede.
      YA estoy trabajando en el segundo video de Mail Merge para explicar esto. Alguna otra sugerencia?
      Saludos!

  • @rogerccaqp
    @rogerccaqp 3 роки тому

    Hola buen video
    Ese icono es de telgram.
    entonces hubo o habrá un video sobre envio de mensajes de sheets a telegram?

  • @LUISEFEIZZ
    @LUISEFEIZZ 4 роки тому

    Hola, gracias he aprendido bastante con tus videos. En el caso que quiera enviar un correo masivo sin que cambie el texto a muchos contactos, ¿cómo puedo hacer para que se envíe un solo email?, para que no me consuma correos de mi cuota diaria. Ejemplo enviar un email para enviar un informe, necesito que se envíen a 20 contactos (de un listado vertical A2:A20), pero usando solo 1 correo de mi cuota diaria.

    • @JuanSGuzman
      @JuanSGuzman  4 роки тому

      Hola Felipe
      Mil gracias!
      Ya viste este video?
      ua-cam.com/video/EZNieWrG_Dk/v-deo.html
      Ojalá te sirva
      Saludos!

  • @rodrigozabala6149
    @rodrigozabala6149 3 роки тому

    hola Juan una consulta no me funciona en el var de mensaje las opciones .replace me da error que puede ser?

    • @JuanSGuzman
      @JuanSGuzman  3 роки тому

      Hola!
      Normalmente es que la variable a la que le estas haciendo replace no es un texto
      Saludos!

    • @rodrigozabala6149
      @rodrigozabala6149 3 роки тому +1

      @@JuanSGuzman es una formula de donde lo toma ahi forma que remplace por ese dato o no

    • @JuanSGuzman
      @JuanSGuzman  3 роки тому

      @@rodrigozabala6149 Siempre lo puedes convertir a texto con toString()
      Un gran saludo!

  • @fitubocci
    @fitubocci 3 роки тому

    Hola Juan! Como estás? En el caso que quiera incluir en un mismo mail, información de varias filas que contengan check box en TRUE (para poder delimitar que filas quiero enviar) cómo debería indicarle eso mismo al código? Gracias!

    • @JuanSGuzman
      @JuanSGuzman  3 роки тому

      Hola Fiorella
      Muy interesante el reto
      Lo dejo para un video
      Un gran saludo!

  • @faqcardo6782
    @faqcardo6782 3 роки тому

    hola Juan S Gusman me esta dando un error en esta linea y no logro entender el porque del error "contactos.forEach(funtion(fila){" agradeceria tu respuesta. Muchas graias

    • @JuanSGuzman
      @JuanSGuzman  3 роки тому

      Hola!
      Cambia funtion por function
      Saludos!

  • @leonardolb85
    @leonardolb85 3 роки тому +1

    Hola Juan!! Muy buenos tus videos.
    Pregunta: todas las semanas le envío un mail a cada vendedor (son 25), con un listado de clientes deudores y sus saldos respectivos. Esta información está en una planilla (podría ser 1 hoja por cada vendedor), con varias filas y columnas las cuales van cambiando de tamaño. Con este video, podría hacer estos envíos? Me pierdo en la parte de la planilla. Espero me puedas ayudar, muchas gracias!

    • @JuanSGuzman
      @JuanSGuzman  3 роки тому +1

      Hola Leonardo!
      En dos semanas sale un vídeo que creo que te podría ayudar a solucionar
      Un gran saludo!

    • @leonardolb85
      @leonardolb85 3 роки тому +1

      @@JuanSGuzman Genial, lo voy a aguardar entonces! Gracias! Entre nosotros, me interesa mucho aprender sobre estos temas (soy fanático del Excel, lo uso para trabajar y me gusta el entorno GSheet). Dónde te parece que pueda hacer algún curso?

    • @JuanSGuzman
      @JuanSGuzman  3 роки тому

      @@leonardolb85 Hola Leonardo
      Mil gracias!
      Te cuento que acabo de lanzar una academia online por suscripciòn de solo Sheets y Apps Script
      Hay 6 cursos actualmente
      Sheets Basico
      Forms Basico
      Inventarios
      Apps Scripts Basico
      Apps Script para Sheets
      Validaciones de Datos
      Cada 15 días llega un nuevo curso. Los próximos son:
      Listas Desplegables
      Query
      Envío de mails
      También ahí encuentras todas las plantillas de los videos de UA-cam
      Y los estudiantes sugieren los proximos cursos o lecciones adicionales de los cursos existentes.
      Tambien, respondo mucho más rápido que por UA-cam
      Aquí te dejo un curso gratis de muestra
      juansguzman.teachable.com/p/descubriendo-el-poder-de-google-sheets-de-0-a-100-en-2-horas/
      Y la academia
      juansguzman.teachable.com/
      Un gran saludo!
      PS. Tambien tengo unos cursos en Udemy, pero la verdad me parece mejor opción esta academia

    • @leonardolb85
      @leonardolb85 3 роки тому +1

      @@JuanSGuzman Cuando subas este video del que hablás, pls avisame ! Gracias !

    • @JuanSGuzman
      @JuanSGuzman  3 роки тому +1

      @@leonardolb85 Hola!
      Es este
      ua-cam.com/video/t64C5GfkA70/v-deo.html
      Me cuentas

  •  4 роки тому

    Hola Juan, muy bueno, como siempre.
    Tengo Plantillas diferentes en las que cambio un poco el texto según algunas particularidades del contacto. Con el envío individual, pongo la plantilla en una columna al lado de cada contacto y la puedo invocar con el recurso de que tome esa columna de la fila activa.
    Pero en este caso de envío masivo, no logro saber como hacer lo mismo. ¿Cómo puedo hacer para que tome la plantilla ubicada en cada fila en vez de que la levante de una celda puntual?
    No sé si logro explicarme.
    Saludos.

    • @JuanSGuzman
      @JuanSGuzman  4 роки тому

      Mil disculpas Matias por la demora
      Estas preguntas más difíciles las dejo en un repositorio especial para responderlas más adelante.
      Primero cuéntame si pudiste solucionar.

  • @Pablor140
    @Pablor140 3 роки тому +1

    Juan, gracias por el vídeo. Estoy intentando aplicar el programa de “Mail Enviado” para que me ponga el OK cada vez que envía el correo pero me quedo estancado. Comentaste que harías un vídeo pero no lo he visto, me lo podrías explicar? Mil gracias, es que estoy teniendo problemas para establecer el número de fila dinámico para que vaya cambiando según qué fila este tocando. Gracias

    • @JuanSGuzman
      @JuanSGuzman  3 роки тому

      Hola!
      No se si ya viste este video
      ua-cam.com/video/D9ak2IYcEf8/v-deo.html
      Un gran saludo!

  • @RobertoJurado
    @RobertoJurado 3 роки тому +1

    Este video no me quedo claro, me confundió un poco lo que ya tenias hecho y sobre todo que como voy viendo en secuencia sobre el envio de correos desde googlesheets, los 2 dos primero no tuve problema y los corrí y funcionaron bien, pero este ultimo me esta dando problemas porque me sale mensaje de error "fila is not defined"..... si es posible hacer otro video y si vienes de una secuencia, usar los mismos nombre de libros, hojas, variantes, campos, etc. Si das cursos sobre esto por favor indicame como los puedo tomar. Gracias.

    • @JuanSGuzman
      @JuanSGuzman  3 роки тому +1

      Hola Roberto
      Tienes toda la razón
      La verdad es que los videos a veces parecen estar un poco desconectados, y uno se puede llegar a perder
      Te recomiendo pasarte por la academia donde tengo dos cursos del tema.
      Envío de correos - juansguzman.teachable.com/p/envio-de-correos/
      Envío de correos masivos - juansguzman.teachable.com/p/envio-masivo-de-correos-con-google-sheets-google-apps-script-y-gmail/
      Ahí trato de ser mucho más secuencial e ir paso a paso, además que me puedes ir preguntando cualquier cosa de las lecciones
      Un gran saludo!

    • @RobertoJurado
      @RobertoJurado 3 роки тому

      @@JuanSGuzman ya me inscribí. Súper !!!

    • @JuanSGuzman
      @JuanSGuzman  3 роки тому +1

      @@RobertoJurado Excelente!
      Ojalá te sirva y quedo pendiente de todas tus dudas!
      Saludos y mil gracias!

  • @AngieRamirez-qr9ig
    @AngieRamirez-qr9ig 8 місяців тому +1

    En la ultima actualización se ve todo muy diferente y no es tan practico, quiero decir que no hay tantas opciones de funciones o de comandos de apps scrip, me ha dado muchos problemas para ejecutar el codigo

    • @AngieRamirez-qr9ig
      @AngieRamirez-qr9ig 8 місяців тому +1

      Podrias hacer un tutorial mas acualizado?

    • @JuanSGuzman
      @JuanSGuzman  8 місяців тому

      Claro que sí, ya lo anoto
      Por ahora, puedes ver este video donde lo hago rapidamente en Sheets 2024
      ua-cam.com/video/ya7T9Q_3f9w/v-deo.html
      Saludos!

  • @oxpey4473
    @oxpey4473 2 роки тому

    Hola juan cuando intento enviar un mail. Dice que alcancé el maximo de destinatarios (al parecer 50) se puede aumentar este limite?

    • @oxpey4473
      @oxpey4473 2 роки тому +1

      Es decir necesito enviar un solo y mismo correo a 150 destinatarios en un solo correo

    • @JuanSGuzman
      @JuanSGuzman  2 роки тому

      Hola!
      El limite es de 100 destinatarios para cuentas gratis. Te puedes pasar a una cuenta workspace y te aumenta a 1500.
      developers.google.com/apps-script/guides/services/quotas
      Saludos!

    • @oxpey4473
      @oxpey4473 2 роки тому

      @@JuanSGuzman pues no, no me deja. mi codigo en mi GAS es algo talque así:
      var correos = [(aqui dentro tengo 57 correos]
      y cuando trato de enviar con "GmailApp.sendEmail(correos , asunto, mensaje, { name: plantillaNombre });"
      Dice que me excedo en la cantidad maxima de destinatarios.
      Si le quito unos 7, si me deja... es decir que el máximo es 50.
      No tengo idea que puede ser. Y como tengo todos los correos en una celda separados por coma, no se me ocurre como partirlo en 2

    • @oxpey4473
      @oxpey4473 2 роки тому +1

      será por esto que dice el link que me pasaste?
      Apps Script projects 50 / day
      Email recipients per message 50 / msg

    • @JuanSGuzman
      @JuanSGuzman  2 роки тому

      @@oxpey4473 Exacto. o te deja enviar mas de 50 en uno solo Más fácil hacerlo con un codigo masivo que lo mande uno por uno y ahi si puedes enviar los 100 en gratis y los 1500 en pago
      Saludos!

  • @josued.caycho5598
    @josued.caycho5598 3 роки тому

    Buenos días Juan, muchas gracias por tu vídeo, quería hacerte una consulta con respecto al vídeo, sería posible enviar más correos del limite de 100 por día, por ejemplo compartiendo el google Sheets y desde las otras cuentas compartidas enviar más correos?, excelentes vídeos.

    • @JuanSGuzman
      @JuanSGuzman  3 роки тому

      Hola Josue
      Mil gracias por tus palabras!
      Pues la forma más fácil es avanzando a un plan pago
      Yo creo que siempre envía del correo del propietario, por lo que lo único que se me ocurre es tener varias bases y que de alguna manera se alimenten y se comuniquen con IMPORTRANGE o con un código cuando ya se hayan enviado otros correos
      Un gran saludo!

  • @MaLaBacHeLo
    @MaLaBacHeLo 4 роки тому +1

    Cómo puedo programar un botón por hoja del libro de Google sheets?, o bien configurar con un botón para que envíe correos personalizados para todos los contactos separados en distintas hojas?

    • @JuanSGuzman
      @JuanSGuzman  4 роки тому

      Hola Marcelo
      No se si te entiendo
      Tienes varias hojas con contactos y quieres un botón para cada hoja, así como una opción de enviar a todos los contactos de todas las hojas?
      Saludos!

    • @MaLaBacHeLo
      @MaLaBacHeLo 4 роки тому +1

      @@JuanSGuzman Hola Juan, primero, agradezco tus videos, he aprendido mucho. Sobre la pregunta, sí, estoy pensando en un informativo que entregue la asistencia de los estudiantes, entonces en un libro de Google sheets tengo una base de datos donde cada hoja es un curso y mi idea es poder enviarle a todos el resumen de su asistencia.
      ¿Se puede programar ese proceso con un sólo botón?, ¿o debe ser con un botón por hoja?
      Saludos,

    • @JuanSGuzman
      @JuanSGuzman  4 роки тому

      Hola
      Gracias por la explicación!
      Se podrian las dos
      Me imagino un boton en cada hoja, o un menu y que identifique la hoja en la que estas.
      En ese mismo menu pondriamos la opcion de enviar a todas las hojas
      Nos tocaria trabajarlo un poco, pero claro que se podria
      Un gran saludo!

    • @JuanSGuzman
      @JuanSGuzman  4 роки тому +1

      @@MaLaBacHeLo Hola Marcelo, Puede ser con un solo botón. Nos tocaría ir por todas las hojas y hacer la misma función para cada hoja
      Aunque no tengo ese video específico, en este video de índice hablo de hojas y de como hacer un ciclo por todas las hojas.
      ua-cam.com/video/rM_qU0saSAw/v-deo.html
      Seria "mezclar" ese código con este
      Me cuentas cualquier cosa.
      Saludos!

  • @XD5richard
    @XD5richard 4 роки тому +1

    ¿Algo similar de podría hacer con WhatsApp, en vez de un e-mail?

    • @JuanSGuzman
      @JuanSGuzman  4 роки тому +1

      Hola Richard
      La verdad no estoy seguro
      Tengo que revisar la API de whatsapp
      Espero hacer un video de eso mas adelante si se puede (Se debe poder)
      Saludos

  • @ing.albertoramirez9773
    @ing.albertoramirez9773 4 роки тому

    Hola Juan!, donde esta la funcion crear mensaje me perdí, de donde sale al variable datos?

    • @JuanSGuzman
      @JuanSGuzman  3 роки тому

      Hola!
      Mil disculpas.
      Esta es parte de una serie más larga (La verdad debí hacerlo mas independiente)
      Aquí te dejo las partes anteriores
      Enviar desde plantilla - ua-cam.com/video/rNfHOp8OHeU/v-deo.html
      Enviar con un boton - ua-cam.com/video/28EMj-Gs9C8/v-deo.html
      Enviar con un boton 2 - ua-cam.com/video/hp2W51iK2Tk/v-deo.html
      Saludos!

  • @monicagonzalez2611
    @monicagonzalez2611 2 роки тому

    Hola Juan muchas gracias como siempre por tan grande aportación, te felicito. Disculpa, tengo un formato de cotización y tomé algunas de las variables dentro del formato para la plantilla, esto es, el correo, el nombre cliente y la razón social. Cuando el correo se envía con el archivo adjunto, el PDF aparte de la hoja de la cotización imprime todas las demás las hojas del libro, esto es, la de la plantilla y la de los clientes y productos, pero me gustaría especificar en el código que sólo imprima la primera pestaña (en este caso, se llama Cotizador) este es el código, agradezco cualquier observación. Saludos.
    function enviarCorreo()
    {
    const nombreBase = 'Cotizador'
    const archivo = SpreadsheetApp.getActiveSpreadsheet()
    const hojaCotizador = archivo.getSheetByName('Cotizador');
    var plantilla = archivo.getSheetByName('PlantillaCorreo').getRange(3,1).getValue();
    var cuota = MailApp.getRemainingDailyQuota();
    Logger.log(cuota);
    if(hojaCotizador.getName()==nombreBase){
    var correo = hojaCotizador.getRange("D8").getValue();
    var razonSocial = hojaCotizador.getRange("D5").getValue();
    var nombreContacto = hojaCotizador.getRange("D9").getValue();
    var mensajeAlerta = "El correo no pudo ser enviado";
    var asunto = "Cotización de la Empresa X";
    var mensaje = plantilla.replace("{{correo}}",correo)
    .replace("{{razonSocial}}",razonSocial)
    .replace("{{nombreContacto}}",nombreContacto)
    if(correo==""){
    SpreadsheetApp.getUi().alert(mensajeAlerta)
    }else{
    const archivo=DriveApp.getFileById("abcdefghijklmnopqrstuvwxyz123");
    const blob=archivo.getAs(MimeType.PDF)
    GmailApp.sendEmail(correo,asunto,mensaje, {
    attachments: [blob]
    });
    }

  • @gerardopena788
    @gerardopena788 3 роки тому +1

    Muchas gracias por tu aporte para los que deseamos aprender este tema.
    Me sale error al correr el onOpen:
    ____________________________________________
    Error
    ReferenceError: Spreadsheet is not defined
    ____________________________________________
    Me pudieras apoyar diciéndome como corregir este error.
    De nueva cuenta, muchas gracias por el apoyo.

    • @JuanSGuzman
      @JuanSGuzman  3 роки тому

      Hola Gerardo
      Déjame ver como tienes el código
      Saludos!

    • @gerardopena788
      @gerardopena788 3 роки тому +1

      @@JuanSGuzman Hola, de antemano gracias por tu apoyo.
      Me marca el mismo error en tres partes del código, las cuales te hago llegar:
      config.getRange("B3").setValue(cuota);
      Logger.log(cuota);
      contactos.forEach(function(fila){
      var mensaje = crearMensajeHtml(fila);
      enviarMail(fila[0],asunto,mensaje,nombreCorreo)
      })
      }
      El error es:
      Registro de ejecución
      11:30:34 Aviso Se ha iniciado la ejecución
      11:30:01 Información 33.0
      11:30:36 Error
      ReferenceError: crearMensajeHtml is not defined
      (anónimo) @ Correo Actual.gs:98
      mailMerge @ Correo Actual.gs:97
      El segundo error es:
      function onOpen() {
      crearMenu();
      }
      function crearMenu(){
      const miMenu = Spreadsheet.App.getUi().createMenu("Acciones");
      miMenu
      .additem("Enviar Mail a contacto actual","enviarMailActual")
      .additem("Enviar correos masivos","mailMerge").addToUi()
      .addToUi()
      }
      onOpen:
      Registro de ejecución
      11:33:35 Aviso Se ha iniciado la ejecución
      11:33:35 Error
      ReferenceError: Spreadsheet is not defined
      crearMenu @ Correo Actual.gs:7
      onOpen @ Correo Actual.gs:3
      crearMenu:
      Registro de ejecución
      11:33:56 Aviso Se ha iniciado la ejecución
      11:33:56 Error
      ReferenceError: Spreadsheet is not defined
      crearMenu @ Correo Actual.gs:7

    • @JuanSGuzman
      @JuanSGuzman  3 роки тому

      @@gerardopena788 Hola
      Mil gracias por compartir
      Error 1. No es Spreadsheet.App sino SpreadsheetApp
      Error 2. Copiaste la función crearMensajeHtml?
      Un gran saludo!

  • @ikergonzalez7986
    @ikergonzalez7986 2 місяці тому

    Muy interesantes! Lo malo es que he llegado al "forEach" y no me aparece como función. ¿Cuál puede ser el problema? Gracias!

    • @ikergonzalez7986
      @ikergonzalez7986 2 місяці тому

      Perdona, problema resuelto. No estaba en el forEach sino en la toma de datos.

  • @cindymolina4366
    @cindymolina4366 3 роки тому +1

    No he podido, :( me aparece un error con el getRange

    • @JuanSGuzman
      @JuanSGuzman  3 роки тому

      Hola Andrea
      Que error te sale
      Un gran saludo!

  • @mairaalejandralugo5354
    @mairaalejandralugo5354 4 роки тому

    Hola de nuevo juan. Muy bueno el vídeo como siempre, pero, me aparece este mensaje:
    TypeError: contactos.forEach is not a function (línea 107, archivo "Código").
    Con respecto a la cuota diaria es posible que aparte de recibir un mensaje de notificación se pueda reactivar el envío al resto de email cuando haya cuota disponible y también si es posible hacer una función con un botón para detener el envío de correos, incluso con un enlace en la notificación por correo electrónico.
    Gracias

    • @JuanSGuzman
      @JuanSGuzman  4 роки тому

      Hola!
      Déjame ver todo el código para que encontremos el error.
      En cuanto a lo otro, yo creo que podemos hacer un check para saber cuáles envió hoy y de pronto poner un activador todos los días en la mañana por ejemplo, para que revise cuáles no se han enviado y los envíe automáticamente
      Lo de detener no estoy tan seguro. De pronto podemos es poner un mensaje de confirmación antes de enviarlos
      Saludos!

    • @robertomaldonado7438
      @robertomaldonado7438 3 роки тому +1

      @@JuanSGuzman hola juan , me sale el mismo error que el compañero contactos.forEach is not a function
      te ddejo el codigo completo , desde ya muchas gracias !
      }
      function enviarMailActual(){
      //variables de configuracion
      const nombrebase = "BD"
      const filaencabezado = 1
      const colcorreo = 1;
      const colnombre = 2;
      const coltelefono = 3;
      const colproducto = 4;
      const colfecha = 5;
      const colconfirmacion = 6;
      const colfechaenvio = 7;
      const mensajealerta = "No existe correo valido";
      const mensajeexito = "Correo enviado Exitosamente";
      const archivo = SpreadsheetApp.getActiveSpreadsheet();
      var hoja = archivo.getActiveSheet();
      var plantilla = archivo.getSheetByName("plantilla").getRange('A1').getValue();
      var config = archivo.getSheetByName("configuracion");
      var asunto = config.getRange('B2').getValue();
      var nombrecorreo = config.getRange('B1').getValue();


      if(hoja.getName()==nombrebase){
      var activa = hoja.getActiveCell();
      var filaActiva = activa.getRow();
      if(filaActiva>filaencabezado){
      var correo = hoja.getRange(filaActiva,colcorreo).getValue();
      var nombre = hoja.getRange(filaActiva,colnombre).getValue();
      var telefono = hoja.getRange(filaActiva,coltelefono).getValue();
      var producto = hoja.getRange(filaActiva,colproducto).getValue();
      var fecha = hoja.getRange(filaActiva,colfecha).getValue();
      var mensaje = plantilla
      .replace("{nombre}",nombre)
      .replace("{producto}" ,producto)
      .replace("{fecha}" ,fecha)
      .replace("{telefono}" ,telefono)

      if(correo==""){
      SpreadsheetApp.getUi().alert(mensajealerta)
      }else{
      GmailApp.sendEmail(correo, asunto ,mensaje, {name:nombrecorreo});
      hoja.getRange(filaActiva,colconfirmacion).setValue('OK');
      hoja.getRange(filaActiva,colfechaenvio).setValue(new Date());
      SpreadsheetApp.getUi().alert(mensajeexito);
      }
      }else{
      SpreadsheetApp.getUi().alert("debe estar situado en uno de los contactos")

      //cierre if filaencabezado
      }}else{
      SpreadsheetApp.getUi().alert("debe estar en la pestaña "+ nombrebase +" para enviar mail")
      }
      }// cierre if pestaña activa
      //funcion para multi correos
      function mailmerge(){
      const nombredatos = "BD"
      const nombreconfig = "configuracion"

      var archivo = SpreadsheetApp.getActiveSpreadsheet();
      var hoja = archivo.getSheetByName(nombredatos);
      var config = archivo.getSheetByName(nombreconfig);
      var contactos = hoja.getRange(2, 1, 5, 7).getValue();
      var asunto = config.getRange('B2').getValue();

      contactos.forEach(function(fila){
      Logger.log(fila[0]);
      var mensaje = crearmensaje(fila);
      GmailApp.sendEmail(fila[0], asunto, mensaje);

      })
      }
      function crearmensaje(datos){
      var plantilla = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("plantilla").getRange('A1').getValue();
      var mensaje = plantilla
      .replace("{nombre}",datos[1])
      .replace("{producto}",datos[2])
      .replace("{fecha}",datos[3])
      .replace("{telefono}",datos[4])
      return mensaje


      }

    • @JuanSGuzman
      @JuanSGuzman  3 роки тому +1

      @@robertomaldonado7438 Hola Roberto
      Pone una "s" al final de esta linea (antes del parentesis y punto y coma)
      var contactos = hoja.getRange(2, 1, 5, 7).getValue();
      Saludos!

    • @robertomaldonado7438
      @robertomaldonado7438 3 роки тому +1

      @@JuanSGuzman te pasaste , eres el mejor! .
      la ultima duda , al momento de enviar el asunto el cual lo tengo con la fecha
      me sale de esta menera la entrega no se pudo realizar el dia Tue Jul 06 2021 00:00:00 GMT-0400 (Chile Standard Time)
      es posible solo dejarlo con jul 06 2021?

    • @JuanSGuzman
      @JuanSGuzman  3 роки тому +1

      @@robertomaldonado7438 Hola Roberto
      Intenta cortar la fecha con el método .toLocaleDateString()
      Me cuentas
      Saludos!

  • @JosemanuelMenco-uu8rh
    @JosemanuelMenco-uu8rh Рік тому +1

    Agregar flechas para enviar los
    Correos

    • @JuanSGuzman
      @JuanSGuzman  Рік тому

      Hola!
      A que te refieres exactamente
      Saludos!

  • @nadiariveravelazquez9850
    @nadiariveravelazquez9850 3 роки тому

    Hola Juan!, me han sido de gran ayuda tus videos, hice algo similar a lo que tu muestras, pero tengo una duda. en tu ejemplo solo designas una columna para los correos, en mi caso tengo dos columnas designadas para los correos destinatarios.
    El problema es que solo se envía a un correo, cuando debería mandarse a ambos. Te paso el fragmento del código, me podrías ayudar a saber que estoy haciendo mal, por favor? :'v
    Aquí se manda el correo:
    var message = template.evaluate().getContent();
    MailApp.sendEmail({
    to: empleado.email,
    subject: empleado.celebraciones[cel].asunto,
    htmlBody: message,
    });
    Y aquí "declaro" que celdas se van a leer:
    var empleado =
    {
    email: rec[0],
    correo: rec[1],
    Nombre: rec[2],
    insignia: rec[4],
    celebraciones: celebraciones
    };
    correo, es la 2da columna del 2do correo. :c

    • @JuanSGuzman
      @JuanSGuzman  3 роки тому +1

      Hola!
      Cuando vas a enviar a varios mails, te toca hacer una cadena separada por comas
      entonces seria
      to:empleado.email+","+empleado.correo
      Me cuentas si te funciona
      Saludos!

  • @danielasandoval9
    @danielasandoval9 4 роки тому

    Hola Juan! Muchas gracias por tus videos, los estoy aplicando a la par que los vas subiendo.
    Tengo una duda, si quisiera enviar el mismo mensaje a dos correos, cómo podría adicional el segundo?
    Por ejemplo: En la fila dos que está ubicado el cliente Sebastián, quiero enviar ese mismo correo con la misma plantilla y los mismos datos de Sebastián pero no solo al correo Guzman.sheets@gmail.com sino a otro adicional. No necesito que sea una copia oculta, simplemente que el mismo cuerpo del correo tenga dos destinatarios, en ese caso cómo podría realizarlo?
    Muchas gracias :)

    • @JuanSGuzman
      @JuanSGuzman  4 роки тому

      Hola Daniela
      Es muy fácil!
      Simplemente en la variable "destinatario" inserta dentro de las comillas los correos que quieras, separados por comas
      Si los tienes en distintas celdas puedes concatenarlo en una sola variable.
      Por ejemplo, si lo tuvieras asi:
      en la celda A2 el primer mail
      en la celda A3 el segundo mail
      en la celda A4 el tercer mail
      el comando seria GmailApp.sendEmail(fila[0]+","+fila[1]+","+fila[2],asunto, mensaje)
      Si por otro lado, el correo 2 y 3 van a ser los mismos, entonces se los agregas
      GmailApp.sendEmail(fila[0]+",pedro@hotmail.com,info@paraguas.com"],asunto, mensaje)
      Mas facil aun, insertalos en tu columna A separados por coma, y te los deberia enviar a todos
      Me cuentas si te funciona
      Saludos!

    • @danielasandoval9
      @danielasandoval9 4 роки тому +1

      Juan S Guzman Sí me funcionó con las comas, Juan. Muchísimas gracias!

    • @JuanSGuzman
      @JuanSGuzman  4 роки тому

      @@danielasandoval9 Excelente! Me alegro!

  • @MarcoMundarain
    @MarcoMundarain 3 роки тому +1

    Wow, esto está increíble
    ¿Dónde puedo ver el código completo? No lo encuentro en la juansguzman.com/

    • @JuanSGuzman
      @JuanSGuzman  3 роки тому

      Hola Marco
      No lo he subido aun al blog
      Aquí te lo dejo
      docs.google.com/spreadsheets/d/1TiZYn4vGPIWm2vPDjq4gwcRs8G_I1QTFsWyg6LnA8lk/copy
      Saludos!

  • @sinailopez7696
    @sinailopez7696 Рік тому +1

    No logro entender en qué momento se dio declaró "datos" 🥲

    • @JuanSGuzman
      @JuanSGuzman  Рік тому

      Hola!
      En este caso "datos es un argumento de la función crearMensaje por lo que no hay que declararla
      Simplemente cuando llames a esa función tienes que darle un objeto
      En nuestro caso la llamaamos en la linea 104 asi crearMEnsaje(fila[0])
      Tienes razón ue el tema de llamar funciones es un poco mas avanzado y no debí meterlo en este video. Me queda de enseñanza
      Saludos