🔷 En este artículo se explica cómo crear una automatización que permite recibir notificaciones de nuevos correos electrónicos directamente en WhatsApp. Utilizando Gmail, la inteligencia artificial Gemini, Zapier y la API de Whaticket, es posible generar un resumen automático del correo recibido y enviarlo como alerta al WhatsApp configurado.
Este flujo es especialmente útil para monitorear correos importantes, detectar oportunidades de negocio o recibir alertas sin necesidad de revisar constantemente la bandeja de entrada.
🟢 ¿Qué permite esta automatización?
Esta integración conecta diferentes herramientas para transformar un correo electrónico en una notificación automática de WhatsApp.
Cada vez que llegue un nuevo correo a Gmail, Zapier activará el flujo, Gemini analizará el contenido del correo utilizando inteligencia artificial y Whaticket enviará el resumen directamente al WhatsApp configurado.
▪️ Recibir alertas de correos importantes en WhatsApp.
▪️ Generar resúmenes automáticos utilizando inteligencia artificial.
▪️ Identificar si un correo requiere acción.
▪️ Automatizar el monitoreo de correos importantes.
🟢 Herramientas utilizadas en la automatización
⚙️ Gmail
Gmail es un servicio de correo electrónico basado en la nube desarrollado por Google. Ofrece una versión gratuita con funciones básicas y planes empresariales dentro de Google Workspace con almacenamiento ampliado, dominios personalizados y herramientas de administración.
⚙️ Gemini IA
Gemini es el modelo de inteligencia artificial desarrollado por Google. Permite analizar texto, generar resúmenes, clasificar contenido y extraer información relevante. Puede integrarse en Zapier mediante API.
⚙️ Zapier
Zapier es una plataforma de automatización sin código que conecta diferentes aplicaciones. Permite crear flujos automáticos llamados Zaps que ejecutan acciones cuando ocurre un evento específico.
⚙️ API Send de Whaticket
La API Send permite enviar mensajes de WhatsApp desde integraciones externas.
▪️ Cada mensaje enviado consume créditos.
▪️ Los créditos se adquieren dentro de los planes disponibles.
▪️ Los créditos no tienen fecha de vencimiento.
🟢 Requisitos antes de comenzar
Antes de iniciar la automatización es necesario contar con:
▪️ Una cuenta en Zapier.
▪️ Una cuenta de Gmail conectada a Zapier.
▪️ Acceso a Whaticket con API Send habilitada.
▪️ Token de API generado en Whaticket.
▪️ ID de conexión de WhatsApp disponible en
Whaticket → Conexiones → Editar → ícono de carpeta.
🟢 Paso a paso de la automatización
🔵 Integrar Gmail en Zapier
- Acceder a Zapier.
- Dirigirse a la sección Zaps.
- Hacer clic en Create para crear una nueva automatización.
- Configurar el evento disparador
Seleccionar la aplicación Gmail.
Trigger Event → New Email
Conectar la cuenta de Gmail con las credenciales correspondientes.
Hacer clic en Continue.
- Seleccionar la bandeja o etiqueta
Elegir el criterio que activará la automatización.
Puede ser por ejemplo:
▪️ Bandeja de entrada.
▪️ Una etiqueta específica.
▪️ Una búsqueda personalizada.
Esto permitirá que la automatización se active cuando llegue un correo que cumpla ese criterio.
Probar el disparador
- Zapier mostrará ejemplos de correos recientes.
Verificar que aparezcan los campos:
▪️ From Email
▪️ Subject
▪️ Body Plain
🟢 Analizar el correo con inteligencia artificial
🔵 Configurar Gemini en Zapier
Agregar un nuevo paso en el flujo utilizando Gemini.
Action Event → Send Prompt
Conectar la cuenta utilizando la API Key de Google AI.

Configuración del paso de Gemini dentro de Zapier.
- Crear la API Key
Ingresar al sitio de Google AI Studio.
Crear una nueva clave de API.
Copiar la clave y pegarla en Zapier.
- Configurar el modelo
Model → gemini-1.5-flash
API Version → dejar valor por defecto.
- Configurar las instrucciones del sistema
El objetivo es que la inteligencia artificial:
▪️ Analice el correo recibido.
▪️ Clasifique el contenido.
▪️ Genere un resumen.
▪️ Extraiga datos importantes.
Ejemplo de instrucción para Gemini:
Eres un asistente que procesa correos de Gmail.
Tu tarea:
Lee el correo recibido.Clasifícalo en una de estas categorías:
SPAMPROMOCIÓNIMPORTANTE
Si el correo es IMPORTANTE, genera un resumen breve (máximo 280 caracteres) y una respuesta sugerida profesional.
Extrae además:
remitente_nombreremitente_emaillinkstelefonosidioma_detectadoprioridadrequiere_accion
- Probar el paso de IA
Ejecutar la prueba.
Verificar que Gemini genere una respuesta en formato JSON.
🟢 Separar los campos generados por la IA
🔵 Añadir paso de código en Zapier
Agregar un nuevo paso utilizando:
App → Code
Action Event → Run Javascript
Este paso permite procesar el JSON generado por Gemini y separar los campos para utilizarlos posteriormente.

Configuración del paso Code by Zapier.
- Configurar los datos de entrada
En Input Data
Agregar un campo llamado:
text
Asignar el campo de salida generado por Gemini.
- Agregar el código JavaScript
Este código se utiliza para:
▪️ limpiar el JSON generado por la IA
▪️ separar los campos
▪️ extraer teléfonos y enlaces
▪️ preparar los datos para el envío a WhatsApp
'use strict';
/**
* Extrae el bloque JSON desde un texto del modelo (Gemini),
* eliminando cercas de código tipo ```json ... ``` o ``` ... ```.
*/
function extractJsonBlock(raw = '') {
let candidate = raw;
const fenceJson = raw.match(/```json\s*([\s\S]*?)```/i);
const fenceAny = raw.match(/```([\s\S]*?)```/);
if (fenceJson) candidate = fenceJson[1].trim();
else if (fenceAny) candidate = fenceAny[1].trim();
return candidate;
}
/** Quita comas finales antes de } o ] para evitar errores de parseo */
function fixTrailingCommas(s = '') {
return s.replace(/,\s*([}\]])/g, '$1');
}
/** Normaliza comillas “tipográficas” a comillas estándar */
function normalizeQuotes(s = '') {
return s.replace(/[“”]/g, '"').replace(/[‘’]/g, "'");
}
/** Deja solo dígitos (útil para teléfonos) */
const onlyDigits = (s) => (s || '').replace(/\D+/g, '');
/** Asegura un array */
const arr = (v) => Array.isArray(v) ? v : (v == null ? [] : [v]);
// ----- Entrada del paso anterior -----
const raw = inputData.text || '';
let candidate = extractJsonBlock(raw);
if (!candidate.trim()) candidate = raw.trim();
// Intentos de parseo (sin romper el contenido)
let data = null;
const attempts = [
(s) => JSON.parse(s),
(s) => JSON.parse(normalizeQuotes(s)),
(s) => JSON.parse(fixTrailingCommas(normalizeQuotes(s))),
];
for (const tryParse of attempts) {
try {
data = tryParse(candidate);
break;
} catch (e) { /* sigue probando */ }
}
// Si no se pudo parsear, devolvemos estructura vacía + crudo para depurar
if (!data || typeof data !== 'object') {
return {
parse_ok: false,
json_pretty: '',
json_raw: candidate,
classification: '',
resumen: '',
respuesta_sugerida: '',
remitente_nombre: '',
remitente_email: '',
asunto_original: '',
idioma_detectado: '',
prioridad: '',
requiere_accion: '',
links: '',
links_json: '[]',
phones_all: '',
phones_json: '[]',
phone_primary_digits: '',
phone_primary_plus: ''
};
}
// ----- Normalización de claves -----
const pick = (...keys) => {
for (const k of keys) {
if (data[k] != null && data[k] !== '') return data[k];
}
return '';
};
const classification = pick('clasificacion', 'clasificación') || '';
const resumen = pick('resumen', 'summary', 'resumo', 'texto');
const respuesta = pick('respuesta_sugerida', 'respuesta', 'reply_sugerida');
const remitenteNombre = pick('remitente_nombre', 'from_name', 'remitente');
const remitenteEmail = pick('remitente_email', 'from_email', 'email');
const asunto = pick('asunto_original', 'subject', 'asunto');
const idioma = pick('idioma_detectado', 'idioma', 'language');
const prioridad = pick('prioridad', 'priority');
let requiereAccion = pick('requiere_accion', 'requiere_acción', 'requires_action');
// Normaliza booleanos escritos como texto
if (typeof requiereAccion === 'string') {
requiereAccion = /true|sí|si|yes/iu.test(requiereAccion);
} else {
requiereAccion = !!requiereAccion;
}
// Links (CSV y JSON)
const linksArr = arr(data.links).filter(Boolean).map(String);
const linksCsv = linksArr.join(', ');
// Teléfonos: solo dígitos, longitud 10–15, sin "+"
let phonesArr = arr(data.telefonos).map(v => onlyDigits(String(v)));
phonesArr = phonesArr.filter(p => p.length >= 10 && p.length <= 15);
// Principal y variante con "+"
const phonePrimary = phonesArr[0] || '';
const phonePlus = phonePrimary ? `+${phonePrimary}` : '';
// ----- Salida lista para mapear en el siguiente paso -----
return {
parse_ok: true,
json_pretty: JSON.stringify(data, null, 2),
json_raw: candidate,
classification: String(classification || ''),
resumen: String(resumen || ''),
respuesta_sugerida: String(respuesta || ''),
remitente_nombre: String(remitenteNombre || ''),
remitente_email: String(remitenteEmail || ''),
asunto_original: String(asunto || ''),
idioma_detectado: String(idioma || ''),
prioridad: String(prioridad || ''),
requiere_accion: requiereAccion,
links: linksCsv,
links_json: JSON.stringify(linksArr),
phones_all: phonesArr.join(','),
phones_json: JSON.stringify(phonesArr),
phone_primary_digits: phonePrimary,
phone_primary_plus: phonePlus
};

- Probar el paso de JavaScript
Ejecutar la prueba.
Verificar que los campos aparezcan correctamente separados en Data Out.
🟢 Implementación de Whaticket
🔵 Agregar acción Webhooks
Añadir un nuevo paso utilizando:
App → Webhooks by Zapier
Event → Custom Request

Configuración de Webhooks en Zapier.
- Configuración principal
MethodPOST
URLhttps://api.whaticket.com/api/v1/messages
Data Pass-Throughfalse
- Cuerpo de la solicitud
Insertar el siguiente JSON en el Body.
Los campos pueden mapearse utilizando los datos obtenidos en los pasos anteriores.
{
"whatsappId": "AQUI_VA_EL_ID_DE_TU_WHATSAPP",
"messages": [
{
"number": "telefono_limpio",
"body": "Mensaje de prueba a enviar por contacto"
}
]
}

🟢 Configuración adicional
Dentro de la acción configurar:
Unflatten → Yes
Headers
Content-Type: application/json
Authorization:
Bearer TU_TOKEN_DE_API_DE_WHATICKET
🟢 Probar la automatización
Hacer clic en Test.
Si la integración funciona correctamente, aparecerá una respuesta similar a:
Message messages scheduled.

Si ocurre un error, Zapier mostrará el motivo para poder corregirlo.
🟢 Publicar la automatización
Si la prueba funciona correctamente:
Activar el Zap haciendo clic en Turn on.
A partir de ese momento:
Cada vez que llegue un correo que cumpla las condiciones configuradas, se enviará automáticamente una notificación a WhatsApp.
🟢 ¿Dónde aparece el mensaje en Whaticket?
El mensaje enviado mediante la API aparecerá dentro de Whaticket como un ticket.
Si no se define asignación específica, el ticket aparecerá inicialmente en la sección de resueltos.
🟢 Recomendaciones importantes
▪️ Verificar que existan créditos disponibles en la API Send.
▪️ Confirmar que el JSON esté correctamente estructurado.
▪️ Revisar que el número de teléfono esté formateado correctamente.
▪️ Probar el flujo completo antes de activarlo en producción.
💡 Recomendación
Si es posible, se recomienda contar con apoyo de un desarrollador para validar el mapeo de campos y la estructura del JSON durante la integración.
🟢 Resumen
▪️ Objetivo: recibir una alerta en WhatsApp cuando llegue un correo importante.
▪️ Herramientas utilizadas:
Gmail → Gemini IA → JavaScript → Whaticket API Send.
▪️ Resultado:
Un resumen automático del correo será enviado a WhatsApp como notificación.
Importante: Whaticket no se responsabiliza por errores de configuración, falta de créditos o costos asociados a plataformas externas utilizadas en la integración.
¿Tienes dudas adicionales? No te preocupes, estamos aquí para ayudarte. Entra en contacto con nuestro equipo presionando el botón de "Soporte" ubicado en el menú izquierdo de nuestra plataforma.














