
Webhooks vs Polling: Construir un bot de Slack que escucha tus correos
¿Quieres automatizar la recepción de correos en Slack o Discord? Deja de hacer 'Polling' cada minuto. Pásate a una arquitectura basada en eventos en tiempo real con Webhooks.
Imaginemos un escenario: Gestionas el soporte al cliente de una pequeña startup.
Tienes una dirección soporte@miapp.com.
Quieres que cada vez que un cliente escriba a esta dirección, se publique un mensaje en el canal #soporte de tu Slack de equipo.
¿Cómo hacerlo?
El enfoque ingenuo: El Polling (El bucle infinito)
Si eres un desarrollador joven, tu primer instinto podría ser escribir un script que se ejecute en bucle:
- Conectarse al servidor de correo (POP3/IMAP).
- Preguntar: "¿Hay mensajes nuevos?"
- Si no, esperar 60 segundos.
- Repetir.
Esto se llama Polling. Es como preguntar "¿Ya llegamos?" cada minuto en el asiento trasero del coche. Es ineficiente, consume recursos del servidor innecesariamente y siempre hay un retraso (latencia) entre la llegada del correo y su detección.
El enfoque moderno: Los Webhooks (No nos llames, nosotros te llamamos)
Con los Webhooks, invertimos la lógica. En lugar de que sea tu servidor quien pida información, es el servidor de correo (aquí JunkMail) quien empuja la información hacia ti tan pronto como llega.
Es como si el conductor te dijera: "Duerme, te despertaré cuando lleguemos." Es instantáneo (Real-Time) y mucho más económico.
Tutorial: Correo a Slack en 10 minutos
Vamos a usar la API de JunkMail para crear una dirección de correo electrónico y configurar un Webhook que notificará a un endpoint de Slack en cada recepción.
Requisitos previos
- Una cuenta de JunkMail Business (para el acceso a Webhooks).
- Un espacio de trabajo de Slack con derechos de administrador (para crear una App).
- (Opcional) Un servidor simple o un servicio como n8n / Zapier para transformar los datos.
Paso 1: Crear el Incoming Webhook en Slack
- Ve a https://api.slack.com/apps y crea una nueva App.
- Activa "Incoming Webhooks".
- Crea un nuevo Webhook para el canal
#soporte. - Copia la URL (ej:
https://hooks.slack.com/services/T000/B000/XXXX).
Paso 2: Configurar el destino
JunkMail envía un payload JSON bruto (con el remitente, el asunto, el cuerpo). Slack espera un formato específico ({"text": "..."}).
Necesitamos un pequeño traductor en el medio.
Creemos una mini Cloud Function (AWS Lambda o Vercel Function) o un script Node.js express:
// server.js (tu endpoint)
app.post('/webhook/email-to-slack', async (req, res) => {
const email = req.body; // Payload enviado por JunkMail
// Formato para Slack
const slackMessage = {
blocks: [
{
type: "section",
text: {
type: "mrkdwn",
text: `🚨 *Nuevo Ticket de Soporte*\n*De:* ${email.from}\n*Asunto:* ${email.subject}`
}
},
{
type: "section",
text: {
type: "mrkdwn",
text: email.text.substring(0, 500) + "..." // Vista previa del mensaje
}
}
]
};
// Enviar a Slack
await axios.post(SLACK_WEBHOOK_URL, slackMessage);
res.status(200).send('OK');
});Paso 3: Conectar JunkMail
- Ve a tu Dashboard de JunkMail > Developers > Webhooks.
- Haz clic en "Create Webhook".
- URL: La URL de tu servidor (ej:
https://mi-api.com/webhook/email-to-slack). - Evento:
email.received. - Valida.
Paso 4: ¡Prueba!
Envía un correo electrónico desde tu Gmail personal a tu dirección de JunkMail. En el segundo siguiente, tu Slack debería vibrar. Magia. ⚡
¿Por qué elegir Webhooks?
- Latencia Cero: Es inmediato. Para soporte al cliente o alertas de monitoreo, cada segundo cuenta.
- Escalabilidad: Ya sea que recibas 1 correo al día o 10,000 por hora, tu servidor solo trabaja cuando es necesario. No se desperdician ciclos de CPU haciendo polling en el vacío.
- Simplicidad: No es necesario gestionar conexiones IMAP persistentes, tiempos de espera o reconexiones complejas. Es solo HTTP POST estándar.
El momento filosófico: La arquitectura reactiva
Pasar del Polling a los Webhooks es un paso de madurez para un desarrollador. Es entender que el mundo es asíncrono. Los sistemas modernos no son monolitos que cuestionan el mundo constantemente, son redes que reaccionan cuando se les toca.
Construir una arquitectura "Event-Driven" (impulsada por eventos) hace que tus aplicaciones sean más robustas, más desacopladas y más fáciles de mantener.
Conclusión
Conectar el viejo mundo del correo electrónico (SMTP, 1982) con el mundo moderno de ChatOps (Slack, Discord) nunca ha sido tan simple gracias a las API modernas. JunkMail actúa como una puerta de enlace: absorbe la complejidad del protocolo de correo y te entrega JSON limpio a través de HTTP.
¿Listo para automatizar tus flujos? Configura tus Webhooks en JunkMail Developer.