Typeform es excelente recopilando direcciones de correo y, sin hacer ruido, malo diciéndote cuáles son reales. Su campo de correo comprueba que lo que alguien escribió parezca una dirección, pero no puede confirmar que el buzón exista, que no sea desechable ni que no vaya a rebotar en tu primer seguimiento. Esta guía te muestra dos formas prácticas de verificar correos de Typeform con Qualisend: en tiempo real, con un webhook que se dispara en cuanto llega una respuesta, y de forma masiva, exportando las respuestas a un CSV. Ninguna necesita un plugin nativo —todavía no existe—, solo los webhooks integrados de Typeform o su botón de exportación.
La respuesta rápida#
Elige la vía que se ajuste a cuándo necesitas la respuesta:
- Tiempo real — apunta un webhook de Typeform a una pequeña función serverless. En cada respuesta, Typeform hace un POST del contenido a tu endpoint; la función extrae el correo, llama a la API de Qualisend y actúa según el veredicto: etiqueta el contacto, lo deriva a la lista adecuada o retiene el correo de bienvenida para una dirección incorrecta.
- Masiva — exporta tus respuestas existentes a CSV, pásalas por la verificación masiva de Qualisend y suprime las no entregables antes de tu siguiente envío.
Por qué el campo de correo de Typeform no basta#
El tipo de pregunta email de Typeform ejecuta una comprobación de formato en el
navegador: se asegura de que haya una @, un dominio y nada de basura evidente.
Es la misma clase de comprobación que hace una regex, y falla por las mismas
razones:
el formato no es entregabilidad.
jane@gmial.com pasa la comprobación de formato. También lo hace
throwaway@mailinator.com, y también una dirección con aspecto real en un dominio
que cerró el año pasado.
Ninguna de esas se detecta hasta que envías, y para entonces una dirección muerta es un rebote duro que erosiona tu tasa de rebote y tu reputación como remitente. La verificación real añade las capas que Typeform no puede: una consulta de DNS/MX y un sondeo SMTP del buzón, además de indicadores para direcciones desechables, de rol y catch-all. Si esa canalización es nueva para ti, qué comprueba realmente la verificación de correo es la introducción.
Dos formas de verificar correos de Typeform#
Primero, la restricción importante: Typeform no puede bloquear un correo incorrecto a mitad del formulario. No hay una manera admitida de llamar a una API externa entre preguntas e impedir que un encuestado termine, así que la verificación en tiempo real ocurre justo después del envío, en un webhook, no como una barrera en línea. Eso condiciona ambas vías.
| Vía | Cuándo se ejecuta | Ideal para |
|---|---|---|
| Webhook en tiempo real | Al instante, por cada respuesta | Embudos en vivo: etiquetar, derivar o retener el seguimiento antes de enviarlo |
| CSV masivo | Bajo demanda, por lotes | Históricos de respuestas acumuladas e higiene periódica de listas |
Vía 1: tiempo real con un webhook de Typeform#
Typeform puede enviar cada respuesta a una URL que tú controlas. En el panel
Connect del formulario, añade un webhook y apúntalo a tu endpoint. Los
webhooks son una función de plan de pago en Typeform, así que comprueba tu plan
antes de construir. Cuando se envía una respuesta, Typeform hace un POST de una
carga útil JSON cuyo array form_response.answers contiene cada respuesta; la
dirección de correo vive en la respuesta de tipo email.
Tu endpoint es una función serverless que guarda la clave de API y convierte el veredicto en una acción. El patrón es el mismo que en la guía de verificación al registrarse: la clave permanece en el servidor y actúas según el resultado. Aquí lo tienes como un Route Handler de Next.js (consulta la documentación para desarrolladores para conocer la ruta exacta del endpoint y la forma de la petición):
// app/api/typeform-webhook/route.ts
import { NextResponse } from "next/server";
// Placeholder — confirm the real path in /developers.
const QUALISEND_ENDPOINT = "https://api.qualisend.com/v1/verify";
export async function POST(req: Request) {
const payload = await req.json();
// The email lives in the answer whose type is "email".
const answers = payload.form_response?.answers ?? [];
const email = answers.find((a) => a.type === "email")?.email;
if (!email) return NextResponse.json({ ok: true }); // nothing to verify
const res = await fetch(QUALISEND_ENDPOINT, {
method: "POST",
headers: {
// Store YOUR_API_KEY server-side, never in the browser.
Authorization: `Bearer ${process.env.QUALISEND_API_KEY!}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ email }),
signal: AbortSignal.timeout(4000),
});
if (!res.ok) return NextResponse.json({ ok: true, degraded: true }); // fail open
const { result } = await res.json();
// The submit already happened — route on the verdict instead of blocking.
if (result.status === "undeliverable" || result.sub_flags?.disposable) {
// Skip the welcome email, tag the contact for review, keep it off the main list.
}
return NextResponse.json({ ok: true, status: result.status });
}
Tres cosas hacen que esto sea robusto. Responde rápido: Typeform espera un
2xx con prontitud, así que mantén el handler ligero y devuelve enseguida. Falla
en abierto: si la API agota el tiempo o da error, no pierdas el lead; acéptalo y
vuelve a comprobarlo más tarde, por eso la rama !res.ok sigue devolviendo
ok: true. Y verifica la firma que envía Typeform para que un desconocido no
pueda hacer POST de respuestas falsas a tu endpoint; el panel Connect te da un
secreto para eso.
Un detalle que vigilar en la carga útil: si tu formulario tiene más de una
pregunta de correo, o quieres ser robusto ante reordenaciones, haz coincidir por
el field.ref de la respuesta en lugar de tomar la primera respuesta con
type === "email". Fija un ref estable en la pregunta de correo dentro del
constructor de Typeform y lee a.field?.ref === "your_ref", para que la dirección
correcta sea siempre la que verificas.
Aguas abajo, el veredicto es solo una bifurcación. Un resultado deliverable fluye
directo a tu CRM o herramienta de correo; uno undeliverable o disposable se
etiqueta, se retiene de la secuencia de bienvenida o cae en una cola de revisión,
lo que necesite tu proceso. El webhook es la fontanería; la derivación es tuya.
La lógica de verificación en sí es independiente del lenguaje; la misma llamada funciona desde una función en Python o PHP si ese es tu stack. El código del endpoint del tutorial de Node.js o del tutorial de Python encaja directamente en un handler de webhook; solo el análisis de la carga útil de arriba es específico de Typeform.
Vía 2: verificar de forma masiva una exportación en CSV#
Si ya tienes un montón de respuestas, o prefieres limpiar según un calendario en lugar de montar un webhook, hazlo por lotes. En Typeform, abre Results → Responses y descarga los datos en CSV (o XLSX). Obtendrás una fila por respuesta con el correo en su propia columna.
Luego:
- Sube el CSV a la verificación masiva de Qualisend y deja que ejecute toda la canalización —MX, SMTP y los indicadores de desechable/rol/catch-all— en cada fila.
- Descarga el archivo anotado. Cada dirección vuelve con un estado, un código de motivo y una puntuación de 0 a 100.
- Suprime las no entregables en la herramienta desde la que realmente envías, y trata las filas arriesgadas con cuidado. La rutina de principio a fin, incluido dónde encaja cada estado, está en cómo limpiar una lista de correo.
La vía masiva es la herramienta adecuada para un histórico acumulado, pero es limpieza, no prevención: una dirección que atrapas aquí normalmente ya llevaba tiempo en tu lista. Combina un pase masivo periódico con el webhook en tiempo real para que las nuevas direcciones incorrectas se marquen en el momento en que llegan.
Actuar según el veredicto#
Sea cual sea la vía que entregue el resultado, la forma es la misma: un status,
un reason, un score y los sub-indicadores. Asigna cada uno a una acción:
| Resultado | Qué hacer |
|---|---|
deliverable | Acepta: añádelo a tu lista y envía con normalidad. |
undeliverable | Suprime. No envíes; consulta el reason para ver si es
un dominio incorrecto o un buzón muerto. |
indicador disposable | Rechaza o etiqueta, según lo estricto que sea tu embudo; consulta direcciones de rol, desechables y gratuitas. |
risky / catch-all | Acepta pero segmenta. Un dominio catch-all no puede confirmar el buzón concreto, así que envía con cautela. |
unknown | Acepta y vuelve a comprobar más tarde: la infraestructura no respondió, así que nunca descartes un lead real por eso. |
Preguntas frecuentes#
¿Puede Typeform verificar direcciones de correo por sí solo?#
Solo el formato. El tipo de pregunta email de Typeform confirma que una
dirección está bien formada —tiene una @ y un dominio—, pero no resuelve los
registros MX ni sondea el buzón, así que una dirección con una errata o desechable
que parece válida igualmente pasa el filtro. La verificación real necesita las
capas de DNS y SMTP que añade encima un servicio como Qualisend.
¿Necesito un plan de pago de Typeform para verificar correos en tiempo real?#
Para la vía del webhook, sí: los webhooks salientes están en el panel Connect de Typeform en sus planes de pago, así que comprueba tu plan antes de crear el endpoint. Si tu plan no tiene webhooks, usa la vía masiva: exporta las respuestas a CSV y verifícalas por lotes, algo que funciona en cualquier plan que te permita descargar los resultados.
¿Puedo bloquear un correo incorrecto antes de que el encuestado termine el formulario?#
No de forma fiable. Typeform no ofrece una manera admitida de llamar a una API externa a mitad del formulario e impedir que alguien lo envíe, así que la verificación en tiempo real se ejecuta justo después del envío, en el webhook. En la práctica eso está bien: verificas en segundos y actúas antes de que la dirección reciba mensaje alguno; retienes el correo de bienvenida, etiquetas el contacto o lo derivas a revisión en lugar de bloquear el propio formulario.
¿Debería usar el webhook en tiempo real o la exportación masiva en CSV?#
Usa el webhook cuando el momento importa: quieres saludar, derivar o suprimir por cada respuesta a medida que llegan. Usa la vía masiva cuando estás limpiando un histórico acumulado o haciendo higiene periódica. La mayoría de los equipos hacen ambas: el webhook mantiene limpios los nuevos registros y un pase masivo ocasional atrapa lo que se coló o quedó obsoleto.
¿Listo para montarlo? Consigue una clave con alcance limitado y el formato exacto de la petición en la documentación para desarrolladores, verifica una sola dirección en el comprobador de correo gratuito, o empieza con los 100 créditos gratuitos de cada plan para probar el flujo de principio a fin.