Skip to content
Empieza con 100 créditos de verificación gratis
Qualisend
Todos los artículos
Guías / 29 de junio de 2026

Cómo verificar correos de Google Forms

8 minutes read

Qualisend team
Diagrama de flujo: un formulario de Google alimenta un webhook onFormSubmit de Apps Script que llama a la API de verificación de Qualisend y escribe un veredicto de entregable, con riesgo o no entregable de vuelta en la hoja de cálculo vinculada.

Google Forms aceptará encantado jane@gmial.com, un correo de usar y tirar de un dominio desechable o una dirección de una empresa que cerró hace dos años. La opción integrada de "correo válido" solo comprueba que el texto parezca una dirección: nunca se pregunta si hay un buzón real detrás. Para verificar de verdad los correos de Google Forms necesitas un segundo paso: una comprobación real contra el sistema de correo, ya sea en el momento en que llega una respuesta o en un lote posterior. Esta guía muestra ambas, usando Google Apps Script como pegamento.

La respuesta corta#

Dos vías, según necesites el veredicto en vivo o puedas limpiar por lotes:

  1. Tiempo real: añade un activador onFormSubmit en Apps Script que lea la dirección enviada, llame a la API de Qualisend con UrlFetchApp y escriba el veredicto de vuelta en la hoja de Google vinculada. Cada respuesta nueva se puntúa a medida que llega.
  2. Masiva: las respuestas ya viven en una hoja, así que descárgalas en CSV y ejecuta una única verificación masiva. Ideal para un formulario que lleva recopilando un tiempo o cuando no quieres tocar código.

Ambas se apoyan en el mismo veredicto —deliverable, risky, undeliverable o unknown, más los subindicadores de desechable, de rol y gratuito—. Lo que cambia es el momento.

Vía 1: verificar correos de Google Forms en tiempo real con Apps Script#

Google Forms no puede llamar por sí solo a una API externa, pero la hoja a la que fluyen sus respuestas sí puede, a través de Apps Script. El plan es sencillo: dispararse en cada envío, coger el correo, preguntarle a Qualisend por él y sellar la respuesta junto a la fila.

Configura el script. Abre la hoja de Google que recopila tus respuestas (en el editor del formulario, Respuestas → Vincular a Hojas de cálculo si aún no lo has hecho). Desde la hoja, ve a Extensiones → Apps Script. Antes que nada, guarda tu clave para que nunca quede en el código: en el editor de scripts, abre Configuración del proyecto → Propiedades del script y añade QUALISEND_API_KEY con tu valor. El script la lee en tiempo de ejecución con PropertiesService.

Luego pega un controlador como este. Consulta la referencia de la API para conocer la ruta exacta del endpoint y la forma de la petición; la URL de abajo es un marcador de posición:

// Bound to the responses spreadsheet.
// Runs on each new Form submission (see trigger setup below).

const QUALISEND_URL = 'https://api.qualisend.com/v1/verify'; // confirm at /developers
const EMAIL_QUESTION = 'Email address'; // your exact question title
const STATUS_COL = 8;                    // an empty column to write the verdict into

function onFormSubmit(e) {
  const email = (e.namedValues[EMAIL_QUESTION] || [])[0];
  if (!email) return;

  const apiKey = PropertiesService.getScriptProperties().getProperty('QUALISEND_API_KEY');

  const res = UrlFetchApp.fetch(QUALISEND_URL, {
    method: 'post',
    contentType: 'application/json',
    headers: { Authorization: 'Bearer ' + apiKey },
    payload: JSON.stringify({ email }),
    muteHttpExceptions: true, // handle errors ourselves instead of throwing
  });

  // Fail open: if the check errors, keep the response — never lose a real lead.
  if (res.getResponseCode() !== 200) return;

  const { result } = JSON.parse(res.getContentText());
  const row = e.range.getRow();
  const sheet = e.range.getSheet();

  sheet.getRange(row, STATUS_COL).setValue(result.status);       // deliverable | risky | undeliverable | unknown
  sheet.getRange(row, STATUS_COL + 1).setValue(result.score);    // 0-100
}

El objeto e que te entrega un envío de formulario es la parte útil: e.namedValues asocia cada título de pregunta con su respuesta, y e.range es la fila que se acaba de escribir, así que e.range.getRow() te dice exactamente qué línea sellar. Haz coincidir EMAIL_QUESTION con el título de tu pregunta con precisión y apunta STATUS_COL a una columna vacía.

Añade el activador. Un activador simple (una función onFormSubmit a secas) no puede llamar a UrlFetchApp, porque llegar a un servicio externo requiere una autorización que los activadores simples no tienen. En su lugar necesitas un activador instalable. En el editor de scripts, abre Activadores (el icono del reloj) → Añadir activador y elige:

  • Función: onFormSubmit
  • Fuente del evento: Desde una hoja de cálculo
  • Tipo de evento: Al enviarse el formulario

Guarda, aprueba una vez el aviso de autorización y ya está en marcha. Envía una respuesta de prueba y observa cómo aparecen el estado y la puntuación en las columnas que elegiste.

Una nota sobre los tiempos. Qualisend devuelve de inmediato las comprobaciones locales rápidas (sintaxis, dominio, desechable, rol, error tipográfico), y el sondeo SMTP más profundo del buzón termina poco después. Para un sello en tiempo real en la hoja, el result inmediato es lo que quieres: obtienes un veredicto accionable sin hacer esperar a quien envía. Si más tarde quieres la respuesta confirmada por SMTP para una fila limítrofe, vuelve a pasarla por la vía masiva, donde unos segundos de latencia no importan. Cómo funciona la verificación de correo explica por qué la fase SMTP es la lenta.

Vía 2: verificar de forma masiva la hoja de respuestas#

Si tu formulario lleva meses recopilando, o prefieres no mantener un script, sáltate el activador por completo. Tus respuestas ya son una hoja de cálculo: verifícalas de una pasada.

  1. Abre la hoja de Google vinculada (o la pestaña Respuestas del formulario → Vincular a Hojas de cálculo).
  2. Archivo → Descargar → Valores separados por comas (.csv).
  3. Sube ese CSV a la verificación masiva de Qualisend, asigna la columna del correo y ejecuta el trabajo.
  4. Descarga los resultados y emparéjalos con tus filas por el correo, o pega la columna de estado de vuelta en la hoja.

La verificación masiva ejecuta la canalización completa, incluido el sondeo SMTP, en cada fila, así que detecta buzones muertos que una comprobación de sintaxis nunca detectaría. Es la misma rutina que usarías para cualquier lista exportada; nuestra guía sobre cómo limpiar una lista de correo cubre la eliminación de duplicados, el manejo de direcciones de rol y qué hacer con el grupo de riesgo. Para una comprobación puntual de una sola dirección, el comprobador de direcciones individuales gratuito no necesita CSV alguno.

Actuar según los veredictos#

Un veredicto solo es útil si cambia lo que haces a continuación. Sea como sea que lo hayas obtenido, trata los cuatro estados así:

VeredictoQué hacer con la respuesta
deliverableConsérvala. Un buzón real aceptó el sondeo: seguro para enviar.
undeliverableSuprímela. Enviarle un correo significa un rebote duro, y los rebotes son lo que perjudica tu reputación de remitente.
riskySegméntala. A menudo es un dominio catch-all: envía con cuidado y vigila la interacción antes de fiarte.
unknownReinténtala más tarde. El servidor de correo no dio una respuesta clara; no descartes por ello un lead posiblemente real.

Los subindicadores afinan el cuadro. Un indicador disposable en una participación de sorteo suele ser un correo de usar y tirar que puedes descartar; un indicador role (info@, support@) puede importar según el propósito del formulario. Direcciones de rol, desechables y gratuitas explica cuándo merece la pena filtrar cada una. En el script en tiempo real puedes actuar sobre ellos de inmediato; por ejemplo, escribiendo una nota de "revisar" en una columna cuando result.sub_flags.disposable es verdadero.

¿Qué vía deberías usar?#

Recurre al activador de Apps Script en tiempo real cuando las respuestas sean leads que sigues con rapidez —solicitudes de demo, listas de espera, contenido con acceso restringido— y quieras el veredicto junto a cada fila en el momento en que llega. Cuesta un crédito por envío y un poco de mantenimiento del script.

Recurre a la masiva cuando tengas un atasco que limpiar, cuando prefieras evitar el código o cuando un formulario ajetreado se pasara de la cuota de consumo de UrlFetchApp. Nada te impide hacer ambas: ejecuta el activador en las respuestas nuevas y una pasada masiva mensual para volver a comprobar direcciones que puedan haber quedado obsoletas.

Sea como sea, se aplica el mismo principio de nuestra guía de verificación en el registro: verifica antes de que una dirección llegue a tu herramienta de envío, para que un error tipográfico se convierta en un lead corregido en lugar de un rebote que pagas más tarde. Si tus formularios viven repartidos entre varias herramientas, el patrón se generaliza: un paso sin código en Zapier o un webhook de Typeform hacen el mismo trabajo para esas plataformas.

Preguntas frecuentes#

¿Puede Google Forms verificar direcciones de correo por sí solo?#

No. Google Forms tiene una opción de "Validación de respuestas" que comprueba que una respuesta parezca un correo —la forma correcta, una @, un dominio—, pero nunca contacta con el servidor de correo, así que no sabe distinguir un buzón real de un error tipográfico o un dominio desechable. Esa comprobación de forma es solo un primer filtro: da por bueno jane@gmial.com sin pestañear. La verificación real necesita el paso de API o masivo descrito arriba.

¿Tengo que escribir código para verificar las respuestas de Google Forms?#

Solo para la vía en tiempo real. El activador de Apps Script exige pegar un script breve y configurar un activador, pero el código es pequeño y reutilizable. Si prefieres evitarlo por completo, la vía masiva es de puro apuntar y hacer clic: descarga las respuestas en CSV, súbelas para la verificación masiva y vuelve a combinar los resultados. Sin script, sin activador.

¿Verificar ralentizará a la persona que rellena mi formulario?#

No. Con el activador de Apps Script, la comprobación se ejecuta después del envío: la persona ya ha visto la pantalla de confirmación mientras tu hoja se sella discretamente en segundo plano. Nada bloquea el formulario. Si quieres que la verificación condicione el propio envío, eso corresponde a un formulario personalizado con un endpoint sin servidor, no a Google Forms nativo.

¿Cómo mantengo mi clave de la API de Qualisend fuera del script?#

Guárdala en Propiedades del script, no en el código. En el editor de Apps Script, abre Configuración del proyecto → Propiedades del script, añade QUALISEND_API_KEY y léela en tiempo de ejecución con PropertiesService.getScriptProperties().getProperty(...), como hace el fragmento de arriba. Usa una clave con permisos acotados desde tu panel de Qualisend para que solo tenga acceso a la verificación y rótala si alguna vez queda expuesta.


¿Listo para limpiar las respuestas de tu Google Forms? El plan gratuito incluye 100 créditos para probar cualquiera de las dos vías, el comprobador de direcciones individuales gratuito no necesita configuración alguna y la referencia de la API tiene el endpoint /verify con ejemplos para copiar y pegar en siete lenguajes.

Your reputation, protected.

Clean your first list in minutes. 100 free credits, no card required.

Get started