Qué necesita
- Una cuenta de Make.com con conexiones a Google Sheets y Gmail
- Una hoja de Google con fila de encabezados en la fila 1
- Estas columnas: Name, Email, Topic, Status, Sent at
- Un texto de correo que esté dispuesto a enviar automáticamente
¿Watch New Rows o Search Rows?
Make ofrece dos formas de detectar filas nuevas, y esta elección pesa más que cualquier otro ajuste de este escenario.
Google Sheets – Watch New Rows recuerda dónde se quedó según la posición de la fila y devuelve lo que haya por debajo. Es sencillo y mantiene bajo el consumo de créditos. Pero se fía ciegamente de la posición: si ordena la hoja, borra una fila por encima del marcador o inserta una en medio, puede saltarse filas o recoger otra vez las antiguas. Además ignora las ediciones en filas que ya vio, y según la documentación de Make, una fila vacía le impide procesar las filas que hay debajo. Algunos tutoriales antiguos lo llaman Watch Rows.
Google Sheets – Search Rows con programación revisa la hoja en cada ejecución y hace una pregunta simple: ¿qué filas aún no tienen estado? No recuerda nada, así que no hay nada que se desfase. Consume algunos créditos más en los días tranquilos, pero se recupera solo después de una ejecución fallida.
Si un correo duplicado le resultaría molesto, use Search Rows con una columna Status. La construcción de abajo hace justo eso.
Construcción paso a paso
1. Prepare la hoja
Deje vacía la columna Status en las filas nuevas. Compruebe que los encabezados no tengan espacios al final, porque Make los muestra como nombres de campo y un espacio perdido resulta fastidioso de encontrar después.
2. Añada Google Sheets – Search Rows como primer módulo
Seleccione la hoja de cálculo y la pestaña. Ponga "Table contains headers" en Sí. Fije un límite, por ejemplo 20, para que una acumulación grande no envíe cientos de correos en una sola ejecución. Programe el escenario, por ejemplo cada 15 minutos, con el icono del reloj del módulo.
3. Filtre las filas que aún necesitan un correo
Haga clic en el enlace posterior al módulo y añada un filtro con dos condiciones unidas por AND:
- Status igual a vacío (sin valor). Según cómo devuelva su hoja las celdas vacías, "Does not exist" puede funcionar mejor que "Equal to". Pruebe ambas con una fila vacía real.
- Email, matches pattern:
^[^@\s]+@[^@\s]+\.[^@\s]+$
La segunda condición impide que lleguen a Gmail filas a medio rellenar.
4. Marque la fila como "sending"
Añada Google Sheets – Update a Row. Ponga Row number con el número de fila de la salida de Search Rows y escriba sending en la columna Status. Este paso va antes del correo a propósito: si el escenario falla durante el envío, la fila ya no está vacía y no se volverá a recoger.
5. Envíe el correo con Gmail – Send an email
To: {{trim(2.Email)}}. Complete Subject y Body contents, y mapee campos dentro del texto, por ejemplo "Hola {{2.Name}}, gracias por su mensaje sobre {{2.Topic}}." Body contents admite etiquetas HTML si quiere enlaces o formato. El prefijo 2. es el número de módulo de este ejemplo; use el panel de mapeo para el suyo.
6. Actualice la fila otra vez
Añada un segundo Google Sheets – Update a Row. Mismo número de fila, Status con sent y Sent at con {{formatDate(now; "YYYY-MM-DD HH:mm")}}.
7. Gestione los fallos
Haga clic derecho en el módulo de Gmail y añada un error handler. Diríjalo a Google Sheets – Update a Row, con el número de fila del paso 2 y Status con failed, y termine la ruta con el error handler Skip (Ignore en versiones antiguas) para que la ejecución continúe con la fila siguiente. Una fila fallida queda visible en la hoja y no bloquea a las demás.
8. Pruebe
Añada una fila con su propia dirección de correo, pulse Run once y confirme que Status pasa a sent. Vuelva a ejecutarlo enseguida: no debería ocurrir nada. Esa segunda ejecución es la prueba de verdad.
Errores frecuentes y soluciones
La misma persona recibe el correo dos veces. Normalmente la actualización del estado falló después de enviar el correo, o hay dos copias del escenario trabajando sobre la misma hoja. Actualice el estado antes de enviar, como en el paso 4, y compruebe que no haya clonado el escenario dejando activas las dos copias.
Search Rows no devuelve nada, pero la hoja tiene filas nuevas. El filtro sobre Status no coincide con la forma en que Make lee las celdas vacías, o el módulo apunta a una pestaña equivocada. Abra la salida de un Run once y mire qué contiene realmente el campo Status. Un solo espacio cuenta como contenido.
Se actualiza la fila equivocada. El número de fila vino de un módulo distinto del que encontró la fila, o alguien ordenó la hoja mientras se ejecutaba el escenario. Use siempre el número de fila del bundle de Search Rows de la misma ejecución y evite ordenar la hoja de trabajo. Una pestaña o vista aparte para ordenar mantiene estable la hoja de trabajo.
"Invalid to header" de Gmail. La celda Email contiene un espacio al final, un salto de línea o dos direcciones. Envolver el campo en trim() resuelve la mayoría de los casos, y el filtro por patrón del paso 3 detecta el resto.
Errores 429 o de cuota en Google Sheets. Demasiadas lecturas y escrituras en poco tiempo. Reduzca el límite en Search Rows y considere añadir Tools – Sleep de uno o dos segundos entre filas. Make suele tratar un 429 como error de límite de peticiones y reintenta más tarde, así que no cuenta como un error normal.
"You have reached a limit for sending mail" en Gmail. Google limita cuánto puede enviar una cuenta. Según la ayuda de Google, son aproximadamente 500 correos o destinatarios al día en una cuenta personal de Gmail y hasta 2.000 mensajes al día por usuario en Google Workspace, con límites menores en cuentas de prueba. Tómelo como cifras aproximadas, consulte la documentación vigente de Google y mantenga el límite de Search Rows muy por debajo de su cupo diario.